Hello Jorg,
Thanks for the bug report. I've fixed the error for the next version of ProGet (4.7.11) [PG-1018]
Hello Jorg,
Thanks for the bug report. I've fixed the error for the next version of ProGet (4.7.11) [PG-1018]
Hello Oliver,
Starting with the next version of ProGet (4.7.11) the connectors overview page will require permissions to access: PG-1017
Hello Jim,
Is there anything in Event Viewer → System from Service Control Manager, or anything from ProGet in the Application section of the event viewer?
Hello Tony,
It sounds like the ProGet service can't access the Amazon extension for some reason. In %ProgramData%\ProGet\ExtensionsTemp\Service
there should be three folders by default: Amazon
, Azure
, and VorSecurity
. Is Amazon
missing?
Hello Jason,
I would suggest making two plans, one with the first two pseudo-code steps and a second with just the third step. Then, use pipeline stages to run the build stage once on the BuildMaster server and the deploy stage on both web servers after the artifact is built.
You can set the build stage to automatically advance to the deploy stage when it succeeds.
Hello Marcus,
In IIS Manager, select your ProGet site and open the configuration editor.
In the section named system.webServer/security/requestFiltering
, expand requestLimits
. Set maxAllowedContentLength
to at least the maximum size of uploads you expect in bytes.
In the section named system.web/httpRuntime
, set maxRequestLength
to at least the maximum size of uploads you expect in kilobytes.
Hello Yannick,
Telerik is using a custom NPM repository that has two incompatibilities with ProGet:
The remote server returned an error: (404) Not Found.
in it, but you should still be able to download packages if you know their name (once ProGet 4.7.10 is released).Here's a PowerShell (File → Open Windows PowerShell) script that will move all the files to the root of the drop path:
Get-ChildItem -Recurse -File | ForEach-Object {Move-Item $_.FullName .}
Make sure you run that inside your drop path, because it could do damage somewhere else.
If you set --targetDirectory
on the pack command to an empty or nonexistent directory, the .upack file will be the only file in there, and you can use myDirectory\*.upack
to select the upack file for the push command.
Hello Aris,
If you click on the release number (the leftmost column) the user that created the release is displayed in the Details section.
Hello Mario,
I've added resetadminpassword to ProGet.Service.exe for the next minor release (4.7.10) - PG-1009
For now, you can reset the password in the database to Admin
by setting the Salt_Bytes and Password_Bytes to 0x26CF0B87A338C08CA30F
and 0x5868049613BC1ED1E4E3C2E404D8B85684B53263
respectively.
Ok, I noticed that in your log, npm isn't authenticating. Is the anonymous user allowed to access the feed in ProGet?
Hello Marcus,
There was a bug in our HTTP library that caused uploads larger than 2GB to fail or be truncated. It will be fixed for the next version of ProGet, 4.7.10.
Hello Michael,
NPM feeds don't currently support an API key, but you can share a single ProGet user between all of the users who need to upload to the feed to simulate the same thing.
The Publish Packages task group on the NPM feed is all you need to upload a package. If you want to replace an already-uploaded package, you need the Overwrite Package task, which is available on the Administer and Manage Feed task groups by default, but you can create a new task group with just Overwrite Package on the Customize Tasks page (/administration/security/customize-tasks).
Hello Matt,
It looks like the PostgreSQL version of Feeds_SetLastSyncDate was not updated when the MSSQL version was. I've logged this as PG-1006 and it will be fixed in the next version of ProGet.
A vulnerability version range can be:
(any)
(any)
)single
single, single
single, single, single
single, single, single, single
A single vulnerability version range can be:
version
>version
>=version
<version
<=version
>version <version
>=version <version
>version <=version
>=version <=version
The format of version
is defined by the feed type.
On ProGet 4.7.9:
$ npm install @angular/platform-browser --loglevel verbose
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/nodejs',
npm verb cli '/usr/bin/npm',
npm verb cli 'install',
npm verb cli '@angular/platform-browser',
npm verb cli '--loglevel',
npm verb cli 'verbose' ]
npm info using npm@3.5.2
npm info using node@v4.2.6
npm verb request uri http://proget/npm/npm-test/@angular%2fplatform-browser
npm verb request always-auth set; sending authorization
npm info attempt registry request try #1 at 2:38:23 PM
npm verb request id 6e455c4d3dbe2135
npm http request GET http://proget/npm/npm-test/@angular%2fplatform-browser
npm http 200 http://proget/npm/npm-test/@angular%2fplatform-browser
npm verb headers { 'cache-control': 'private',
npm verb headers 'content-type': 'application/json; charset=utf-8',
npm verb headers 'content-encoding': 'gzip',
npm verb headers vary: 'Accept-Encoding',
npm verb headers server: 'Microsoft-IIS/10.0',
npm verb headers 'x-ua-compatible': 'IE=edge',
npm verb headers 'x-proget-version': '4.7.9.2',
npm verb headers 'x-aspnet-version': '4.0.30319',
npm verb headers 'x-powered-by': 'ASP.NET',
npm verb headers date: 'Thu, 06 Apr 2017 19:38:15 GMT',
npm verb headers 'content-length': '11462' }
npm verb get saving @angular/platform-browser to /home/ben/.npm/proget/npm/npm-test/_40angular_252fplatform-browser/.cache.json
npm verb makeDirectory /home/ben/.npm creation not in flight; initializing
npm verb cache add spec @angular/platform-browser
npm verb addNamed "latest" is being treated as a dist-tag for @angular/platform-browser
npm info addNameTag [ '@angular/platform-browser', 'latest' ]
npm verb addNameTag registry:http://proget/npm/npm-test/@angular%2fplatform-browser not in flight; fetching
npm verb get http://proget/npm/npm-test/@angular%2fplatform-browser not expired, no request
npm verb addNamed "4.0.1" is a plain semver version for @angular/platform-browser
npm verb addRemoteTarball http://proget/npm/npm-test/@angular/platform-browser/-/platform-browser-4.0.1.tgz not in flight; adding
npm verb addRemoteTarball [ 'http://proget/npm/npm-test/@angular/platform-browser/-/platform-browser-4.0.1.tgz',
npm verb addRemoteTarball '4b9efbeb2fbb900de188743b988802d3aa2b33ff' ]
npm info retry fetch attempt 1 at 2:38:24 PM
npm info attempt registry request try #1 at 2:38:24 PM
npm http fetch GET http://proget/npm/npm-test/@angular/platform-browser/-/platform-browser-4.0.1.tgz
npm http fetch 200 http://proget/npm/npm-test/@angular/platform-browser/-/platform-browser-4.0.1.tgz
npm verb addTmpTarball /tmp/npm-26991-a64070af/proget/npm/npm-test/_40angular/platform-browser/-/platform-browser-4.0.1.tgz not in flight; adding
npm verb addTmpTarball already have metadata; skipping unpack for @angular/platform-browser@4.0.1
npm verb afterAdd /home/ben/.npm/@angular/platform-browser/4.0.1/package/package.json not in flight; writing
npm verb afterAdd /home/ben/.npm/@angular/platform-browser/4.0.1/package/package.json written
npm verb makeDirectory /home/ben/.npm/_locks creation not in flight; initializing
npm verb lock using /home/ben/.npm/_locks/staging-e45475a342ae353f.lock for /home/ben/npm_test/node_modules/.staging
npm verb unbuild node_modules/.staging/@angular/platform-browser-688e40ec
npm verb gentlyRm don't care about contents; nuking /home/ben/npm_test/node_modules/.staging/@angular/platform-browser-688e40ec
npm verb tar unpack /home/ben/.npm/@angular/platform-browser/4.0.1/package.tgz
npm verb tar unpacking to /home/ben/npm_test/node_modules/.staging/@angular/platform-browser-688e40ec
npm verb gentlyRm don't care about contents; nuking /home/ben/npm_test/node_modules/.staging/@angular/platform-browser-688e40ec
npm verb gentlyRm don't care about contents; nuking /home/ben/npm_test/node_modules/.staging/@angular/platform-browser-688e40ec/node_modules
npm info lifecycle @angular/platform-browser@4.0.1~preinstall: @angular/platform-browser@4.0.1
npm info linkStuff @angular/platform-browser@4.0.1
npm verb linkBins @angular/platform-browser@4.0.1
npm verb linkMans @angular/platform-browser@4.0.1
npm info lifecycle @angular/platform-browser@4.0.1~install: @angular/platform-browser@4.0.1
npm info lifecycle @angular/platform-browser@4.0.1~postinstall: @angular/platform-browser@4.0.1
npm verb unlock done using /home/ben/.npm/_locks/staging-e45475a342ae353f.lock for /home/ben/npm_test/node_modules/.staging
npm_test@1.0.0 /home/ben/npm_test
├── UNMET PEER DEPENDENCY @angular/common@4.0.1
├── UNMET PEER DEPENDENCY @angular/core@4.0.1
└── @angular/platform-browser@4.0.1 extraneous
npm WARN @angular/platform-browser@4.0.1 requires a peer of @angular/core@4.0.1 but none was installed.
npm WARN @angular/platform-browser@4.0.1 requires a peer of @angular/common@4.0.1 but none was installed.
npm WARN npm_test@1.0.0 No description
npm WARN npm_test@1.0.0 No repository field.
npm verb exit [ 0, true ]
npm info ok
Are you getting something different?
Version 1.1.0 of the upack command line tool is now available from http://inedo.com/support/documentation/proget/reference/upack. The chocolatey version has been submitted and will be available once it's approved.
There's a bug we haven't been able to figure out where the Linux version of ProGet doesn't respond to requests for URLs with colons in them.
NUnit 5.1.2 has been released now, so you can update it from inside BuildMaster at any time.
Hello Patrick,
Yes, this is a bug in the NUnit BuildMaster plugin. It will be fixed in the next release of the plugin, 5.1.2.
I haven't been able to figure out the solution or what part of the code is choking, but the problem is that there's a colon in the URL.
For example, going to http://proget/%3A
also hangs forever for the Linux version of ProGet.
I've logged this as PG-769.
Correct. Output variables don't need to be specially declared.
However, the next version of the Windows plugin for BuildMaster and Otter will add support for [ref] parameters as output variables in the editor.
It looks like this was fixed back in November as [PG-646] but the updated EXE was never published with the update.
I'll see if I can get that done.
I'm on ProGet Version 4.7.8 (Build 4) (locally hosted, not on EC2) and I'm able to upload universal packages to an S3-backed feed using the upack.exe tool with both the latest published release of the Amazon plugin and a debug build from source code.
Can you still reproduce the error on the latest version of ProGet?
You have the order of the output parameter reversed. It goes PowerShellVariableName => OtterScriptVariableName
, so it should be hashlist => %items
.
MaxResponseLength was missing a ScriptAlias. It'll be fixed in the next release.
The latest version of Windows.bmx is 5.6.3, which doesn't include the fix:
https://github.com/Inedo/inedox-windows/compare/BuildMaster-5.6.3.1...master
I'll see if I can get someone to publish it.
Hmm, if you rebooted the host, that's probably not it.
Hmm, I just tried it locally and Docker gives a very different error message for my hypothesis:
docker: Error response from daemon: driver failed programming external connectivity on endpoint proget (559abf94e7064e2fa65b27ebf9c334b517927912b0eb73763a0875c6c060d4a7): Error starting userland proxy: listen tcp 0.0.0.0:8081: bind: address already in use.
Is it possible something is still holding one end of a connection open to port 8081 on the host?
I can't get the Visual Studio 2012 or 2013 SDK to install. In the meantime, you could try building the extension locally with the reference to the 2015 DLL changed to the 2012 or 2013 version:
The npm endpoint to get all packages is /-/all
, so in your case:
http://dr-tj-pkgsvr01/npm/npm/-/all
Is something else listening on port 8081 on the host? ProGet's docker image only tries to listen using a System.Net.HttpListener with the prefix "http://*:80/"
, which ends up listening on port 80 on all available interfaces in the container.
I tried with secp256k1_openssl_vc120
and the JSON API works as expected. Is there a specific package name that exhibits this problem that you can share?
Ok, I've found the problem: Docker image manifests have a really complicated way to compute their digest:
The problem was that on Windows, ProGet re-encoded the new root object with CRLF newlines.
This is fixed for the next version. (4.7.7)
This seems to be caused by there being no feeds defined. In previous versions of ProGet, setup created a NuGet feed by default, but this is no longer the case. Adding a feed will make the Add Package button on the Packages tab work as expected.
Ah, that's my fault. I had assumed that marking it as compatible with Community would also mark it as compatible with anything with a superset of Community's features.
I've marked it as supporting Visual Studio Professional and Visual Studio Enterprise. The update should come out later today or tomorrow.
I am able to reproduce this locally. It looks like you are correct about the root cause being artifactId-version
not being a prefix of the filename.
This is a bug. I have fixed the behavior in inedox-git, along with a few edge cases where it would ignore certain parameters.
What you're describing is called a pipeline gate in BuildMaster. For this specifically, I created PipelineStagePromotionRequirement, which can be compiled using the BuildMaster SDK.
The environment on a raft affects who can access it, but not which raft is accessed. Asset names with no RaftName::
part always use the Default
raft.
There's a bug in the implementation of OtterScript in the current version of Otter that makes it unable to call templates from a non-Default
raft.
Running a plan from a non-Default
raft is also slightly broken in that it brings up the wrong preselected plan, but selecting the correct plan afterwards works.
You can make an AfterPushPackageAdapter in a plugin. There's an example of an adapter on GitHub.
It looks like running a pipeline on a server role does not correctly set the $RoleName
variable.
I've filed this as BM-2381
and it is fixed for the next version of BuildMaster.
I have filed this as PG-757
and it is fixed for the next version.
I can't reproduce the problem you're having. Here's a log of what I tried with ProGet 4.7.4, Docker Machine 0.9.0, and Docker 1.13.1:
PS C:\> docker-machine create --driver virtualbox --engine-insecure-registry 192.168.1.100:83 swarm-manager
Running pre-create checks...
Creating machine...
(swarm-manager) Copying C:\Users\Owner\.docker\machine\cache\boot2docker.iso to C:\Users\Owner\.docker\machine\machines\swarm-manager\boot2docker.iso...
(swarm-manager) Creating VirtualBox VM...
(swarm-manager) Creating SSH key...
(swarm-manager) Starting the VM...
(swarm-manager) Check network to re-create if needed...
(swarm-manager) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(swarm-manager) Found a new host-only adapter: "VirtualBox Host-Only Ethernet Adapter #2"
(swarm-manager) Windows might ask for the permission to configure a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(swarm-manager) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(swarm-manager) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: C:\ProgramData\choco
latey\lib\docker-machine\bin\docker-machine.exe env swarm-manager
PS C:\> docker-machine create --driver virtualbox --engine-insecure-registry 192.168.1.100:83 swarm-worker
Running pre-create checks...
Creating machine...
(swarm-worker) Copying C:\Users\Owner\.docker\machine\cache\boot2docker.iso to C:\Users\Owner\.docker\machine\machines\swarm-worker\boot2docker.iso...
(swarm-worker) Creating VirtualBox VM...
(swarm-worker) Creating SSH key...
(swarm-worker) Starting the VM...
(swarm-worker) Check network to re-create if needed...
(swarm-worker) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: C:\ProgramData\chocolatey\lib\docker-machine\bin\docker-machine.exe env swarm-worker
PS C:\> docker-machine env swarm-manager | iex
PS C:\> docker swarm init --advertise-addr 192.168.99.100
time="2017-03-03T11:28:40-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
Swarm initialized: current node (kb681q841gbm18jno2ktf157u) is now a manager.
.
To add a worker to this swarm, run the following command:
.
docker swarm join \
--token SWMTKN-1-2q02a4egqsnybt7mjb7108zipjwvony48c8iad2kk6dobzt4k8-6ozavuh9gr7vpk1brracn5h6o \
192.168.99.100:2377
.
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
.
PS C:\> docker-machine env swarm-worker | iex
PS C:\> docker swarm join --token SWMTKN-1-2q02a4egqsnybt7mjb7108zipjwvony48c8iad2kk6dobzt4k8-6ozavuh9gr7vpk1brracn5h6o 192.168.99.100:2377
time="2017-03-03T11:29:38-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
This node joined a swarm as a worker.
PS C:\> docker-machine env swarm-manager | iex
PS C:\> docker pull nginx
time="2017-03-03T11:31:42-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
Using default tag: latest
latest: Pulling from library/nginx
693502eb7dfb: Pull complete
6decb850d2bc: Pull complete
c3e19f087ed6: Pull complete
Digest: sha256:52a189e49c0c797cfc5cbfe578c68c225d160fb13a42954144b29af3fe4fe335
Status: Downloaded newer image for nginx:latest
PS C:\> docker tag nginx 192.168.1.100:83/dockertest/nginx
time="2017-03-03T11:33:11-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
PS C:\> docker login 192.168.1.100:83
time="2017-03-03T11:33:20-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
Username: Admin
Password:
Login Succeeded
PS C:\> docker push 192.168.1.100:83/dockertest/nginx
time="2017-03-03T11:33:40-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
The push refers to a repository [192.168.1.100:83/dockertest/nginx]
e3a86ffb1c45: Pushed
cf0d2468e726: Pushed
d17d48b2382a: Pushed
latest: digest: sha256:32e3cf2703f4e8f99426884247f9e0d4d5acdde4914fe7df70f74c76ba6216fe size: 6300
PS C:\> docker service create --name q-6011 --replicas 1 --constraint 'node.hostname==swarm-worker' --with-registry-auth 192.168.1.100:83/dockertest/nginx:latest
time="2017-03-03T11:35:29-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
unable to pin image 192.168.1.100:83/dockertest/nginx:latest to digest: missing or empty Content-Length header
5x9ctqpt9d2duv8gblzpws4ed
PS C:\> docker service ps q-6011
time="2017-03-03T11:36:19-06:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
lcsz1x2ndgda q-6011.1 192.168.1.100:83/dockertest/nginx:latest swarm-worker Running Running 58 seconds ago
The patch I submitted makes PSCall able to use output variables that are %
and @
in addition to the $
variables it already supports.
It looks like that @PSEval
call is returning the string "System.Collections.Hashtable
".
I did some research and the reason is that PSEval returns the output of the script as a string.
Using this PowerShell script:
$var1 = 'serviceName'
$var2 = 'type'
$serviceList = @{}
for ($i=1;$i -le 5; $i++) {
$serviceList.Add($var1+$i,$var2+$i)
}
And this OtterScript:
pscall PsScript
(
serviceList => %serviceList
);
foreach $key in @MapKeys(%serviceList)
{
set $value = $MapItem(%serviceList, $key);
Log-Information Key: $key;
Log-Information Value: $value;
}
I've submitted a patch that will make it do what you want.