-
Notifications
You must be signed in to change notification settings - Fork 525
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slow when multiple repos #1085
Comments
For the convert-from-nuget issue I created #1098 Regarding feed queries: we query all configured feeds that are written above a nuget package line in the dependencies file. An easy workaround is the following:
"which would probe for supported version upon first call and than use only the successful protocol for given repository" yes that is some I have planned for long time. Hope to implement that soon |
first results are coming in. 2.5.0-alpha002 is 4.2x faster on such a scenario with multiple feeds. try it out |
I've tried e317a91. Marginally faster. Still 55min.
], Trying source 'https://www.nuget.org/api/v2' |
could you please mail me your dependencies and lock files? sforkmann @ gmail 1h update is very very unusal. Maybe I can find the issue. |
latest version runs all calls against different NuGet protocols in parallel and takes the fastest response. But please still send the dependencies and lock files. |
It is convert-from-nuget command. <?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositorypath" value="$(Solutiondir)\..\packages" />
</config>
<disabledPackageSources>
<add key="nuget.org" value="true" />
<add key="mirror" value="true" />
<add key="NTent" value="true" />
</disabledPackageSources>
<packageSources>
<add key="nuget-proxy" value="http://localhost:8081/nexus/service/local/nuget/ntent/" />
</packageSources>
</configuration> As you see, all sources except nexus is disabled
4 "source" is more than I'd like to have, and because it is created during the import, there is no opportunity to edit them out until import is complete :( I am going to use Sonatype's Nexus server, which is more known for Maven support, but it has very good nuget server implementation, in particular, so called "group server", which is a proxy which will do requests to multiple sources and cache result. So it would be extremely benefitial to avoid requests to disabled servers. BTW, I'm at today's build, 8e4a0e3 Is there any way to redirect output to a text file? Import from nuget will ask for some confirmations on console which makes it impossible to redirect output :( |
ah so you are complaining about the (For the convert-from-nuget issue I created #1098 and @theimowski will take a look) |
@vchekan do I understand correctly that those feeds listed in disabled section are defined in different, higher-level nuget.config file and are identified by the key attribute? |
@theimowski yes, that's correct. |
Ok I think I know how it could be fixed. Gonna try send a fix this weekend |
@vchekan Paket 2.7.2 has fixed convert-from-nuget. Thanks to @theimowski |
Measured my benchmark project, it takes now 2 minutes and 8 seconds to import a project which took 1hr before. Great job! |
When I have many repositories, paket works quite slow because it seems to me, paket does evaluation of every source with all supported protocols until one response is successful.
The worst case I experienced, was converting from nuget of a large project, which use our internal nuget repo mirror of nuget.org and another one, based on CI server. In process of conversion, paket ignored disable section of nuget.config, and added back nuget.org for both v2 and v3. Thus, import ended up with 4 servers, nuget v2,v3 and 2 of our internal ones. Repeating every protocol for every repository for every package in large project took >1hr :(
I'm thinking, would it be possible to have lazily evaluated member in repository object, which would probe for supported version upon first call and than use only the successful protocol for given repository? This way it will eliminate a lot of failed http requests and save time.
The text was updated successfully, but these errors were encountered: