Skip to content
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

[Fail] add test for https://github.com/fsprojects/Paket/issues/2294 (Cannot pin NETStandard.Library = 1.6.0) #2305

Closed
wants to merge 7 commits into from

Conversation

0x53A
Copy link
Contributor

@0x53A 0x53A commented Apr 28, 2017

No description provided.

@0x53A 0x53A changed the title add test for https://github.com/fsprojects/Paket/issues/2294 (Cannot pin NETStandard.Library = 1.6.0) [Fail] add test for https://github.com/fsprojects/Paket/issues/2294 (Cannot pin NETStandard.Library = 1.6.0) Apr 30, 2017
@0x53A 0x53A force-pushed the unit-test-for-2294 branch from 1d1e52f to b76bc97 Compare April 30, 2017 04:29
@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

  1. Error : Paket.IntegrationTests.ResolverSkipsConflictsFastSpecs.Cannot pin NETStandard.Library = 1.6.0 #2294 Cannot pin NETStandard.Library = 1.6.0
    System.Exception : Paket failed with:
    same package 'PackageName ("Microsoft.NETCore.Platforms","microsoft.netcore.platforms")' in runtime '1.1.0' and regular '1.0.1' resolution with different versions

    at Paket.IntegrationTests.TestHelpers.directPaketInPath(String command, String scenarioPath) in C:\projects\paket\integrationtests\Paket.IntegrationTests\TestHelper.fs:line 69
    at Paket.IntegrationTests.TestHelpers.update(String scenario) in C:\projects\paket\integrationtests\Paket.IntegrationTests\TestHelper.fs:line 87
    at Paket.IntegrationTests.ResolverSkipsConflictsFastSpecs.Cannot pin NETStandard.Library = 1.6.0 #2294 Cannot pin NETStandard.Library = 1.6.0() in C:\projects\paket\integrationtests\Paket.IntegrationTests\ResolverSkipsConflictsFastSpecs.fs:line 31

@matthid
Copy link
Member

matthid commented Apr 30, 2017

Yes this needs to be fixed as indicated by my comment here: https://github.com/fsprojects/Paket/blob/master/src/Paket.Core/PaketConfigFiles/DependenciesFile.fs#L273-L275

I wasn't sure if this case actually happens in real-file (therefore I left it as is for now). Apparently it happens and we need to provide the second resolving step with the info from the first...

@matthid
Copy link
Member

matthid commented Apr 30, 2017

I was a bit careful there and would love to hear comments about what the best way to do it actually is (would my suggestion of hooking the getVersions callback work and be a good idea?).

@matthid
Copy link
Member

matthid commented Apr 30, 2017

maybe its a bit clearer with code. Let me quickly try to provide a fix with what I mean and then we can discuss (will push on your branch)

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

please don't push on the performance pr, I think forki want's to get that merged asap.

Feel free to branch off it and create a second pr?

@matthid
Copy link
Member

matthid commented Apr 30, 2017

@0x53A I meant this one "unit-test-for-2294"?

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

ah, yeah, sure =)

@matthid
Copy link
Member

matthid commented Apr 30, 2017

For me locally its timing out. Which makes me wonder because resolution should now be a lot easier in the second run :/ (because we basically lock a lot of version already)

@matthid
Copy link
Member

matthid commented Apr 30, 2017

Most likely I'm doing it all wrong ...

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

I think #2299 should make it slightly faster (but it still fails at the end), so you could merge that into your local branch.

@matthid
Copy link
Member

matthid commented Apr 30, 2017

@0x53A I meant: First I could properly reproduce the error. And after my changes (see commit 936d7ad) its timing out now. Which doesn't make a lot of sense, because I reduced the search tree for the resolver, right?

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

It also times out for me without the performance pr, no idea how the CI got a result, maybe microsoft pushed new package versions which make the situation even worse? :D

@matthid
Copy link
Member

matthid commented Apr 30, 2017

You mean without my commit its timing out as well now?

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

Seems like it ...

@cloudRoutine do you remember which version of paket you used when you could resolve #2294 (comment) in 2 minutes? For me it didn't finish even after half an hour without the performance pr (5.alpha release), and finishes after 5 minutes with the performance pr.

@matthid
Copy link
Member

matthid commented Apr 30, 2017

@cloudRoutine @0x53A

This is what I get when I run it:

Resolving packages for group Main:
 - runtime.any.System.Diagnostics.Tracing 4.3.0
 - runtime.any.System.IO 4.3.0
 - runtime.any.System.Reflection 4.3.0
 - runtime.any.System.Runtime 4.3.0
 - runtime.any.System.Runtime.InteropServices 4.3.0
 - runtime.aot.System.IO 4.3.0
 - runtime.unix.System.Net.Sockets 4.3.0
 - runtime.unix.System.Runtime.Extensions 4.3.0
 - runtime.win.System.Net.Sockets 4.3.0
 - runtime.win.System.Runtime.Extensions 4.3.0
 - runtime.aot.System.Diagnostics.Tracing 4.3.0
 - runtime.aot.System.Runtime 4.3.0
 - runtime.aot.System.Runtime.InteropServices 4.3.0
 - runtime.any.System.Collections 4.3.0
 - runtime.any.System.Globalization 4.3.0
 - runtime.any.System.Text.Encoding 4.3.0
 - runtime.any.System.Text.Encoding.Extensions 4.3.0
 - runtime.any.System.Threading.Tasks 4.3.0
 - runtime.aot.System.Globalization 4.3.0
 - runtime.aot.System.Text.Encoding 4.3.0
 - runtime.aot.System.Text.Encoding.Extensions 4.3.0
 - runtime.aot.System.Threading.Tasks 4.3.0
 - runtime.unix.System.Diagnostics.Debug 4.3.0
 - runtime.unix.System.Net.Primitives 4.3.0
 - runtime.win.System.Diagnostics.Debug 4.3.0
 - runtime.win.System.Net.Primitives 4.3.0
 - runtime.aot.System.Collections 4.3.0
 - runtime.aot.System.Reflection 4.3.0
 - runtime.any.System.Diagnostics.Tools 4.3.0
 - runtime.any.System.Globalization.Calendars 4.3.0
 - runtime.any.System.Reflection.Extensions 4.3.0
 - runtime.any.System.Reflection.Primitives 4.3.0
 - runtime.any.System.Resources.ResourceManager 4.3.0
 - runtime.any.System.Runtime.Handles 4.3.0
 - runtime.any.System.Threading.Timer 4.3.0
 - runtime.aot.System.Diagnostics.Tools 4.3.0
 - runtime.aot.System.Globalization.Calendars 4.3.0
 - runtime.aot.System.Runtime.Handles 4.3.0
 - runtime.aot.System.Threading.Timer 4.3.0
 - runtime.unix.Microsoft.Win32.Primitives 4.3.0
 - runtime.unix.System.IO.FileSystem 4.3.0
 - runtime.win.Microsoft.Win32.Primitives 4.3.0
 - runtime.win.System.IO.FileSystem 4.3.0
 - runtime.win10-arm-aot.runtime.native.System.IO.Compression 4.0.1
 - runtime.win10-x64-aot.runtime.native.System.IO.Compression 4.0.1
 - runtime.win10-x86-aot.runtime.native.System.IO.Compression 4.0.1
 - runtime.win7-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.win7-x86.runtime.native.System.IO.Compression 4.3.0
 - runtime.win8-arm.runtime.native.System.IO.Compression 4.3.0
 - runtime.aot.System.Reflection.Extensions 4.3.0
 - runtime.aot.System.Reflection.Primitives 4.3.0
 - runtime.aot.System.Resources.ResourceManager 4.3.0
 - runtime.unix.System.Console 4.3.0
 - runtime.win.System.Console 4.3.0
 - runtime.debian.8-x64.runtime.native.System 4.3.0
 - runtime.debian.8-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.debian.8-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.debian.8-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.fedora.23-x64.runtime.native.System 4.3.0
 - runtime.fedora.23-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.fedora.23-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.rhel.7-x64.runtime.native.System 4.3.0
 - runtime.rhel.7-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.rhel.7-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.ubuntu.16.04-x64.runtime.native.System 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System 1.0.1
 - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.rhel.7-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.rhel.7-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.rhel.7-x64.runtime.native.System 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System 1.0.1
 - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.fedora.23-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.fedora.23-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.fedora.23-x64.runtime.native.System 1.0.1
 - runtime.debian.8-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.debian.8-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.debian.8-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.debian.8-x64.runtime.native.System 1.0.1
 - runtime.win.System.Console 4.0.0
 - runtime.unix.System.Console 4.0.0
 - runtime.aot.System.Resources.ResourceManager 4.0.0
 - runtime.aot.System.Reflection.Primitives 4.0.0
 - runtime.aot.System.Reflection.Extensions 4.0.0
  Could not resolve package System.Diagnostics.Debug >= 4.3:
   - runtime.aot.System.IO 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.aot.System.Reflection.Extensions 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - runtime.unix.System.IO.FileSystem 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.unix.System.Net.Sockets 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.win.System.IO.FileSystem 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.win.System.Net.Sockets 4.3.0 requested package System.Diagnostics.Debug: >= 4.3

The process is taking longer than expected.
Paket may still find a valid resolution, but this might take a while.
 - runtime.win8-arm.runtime.native.System.IO.Compression 4.0.1
 - runtime.win7-x86.runtime.native.System.IO.Compression 4.0.1
 - runtime.win7-x64.runtime.native.System.IO.Compression 4.0.1
 - runtime.win.System.IO.FileSystem 4.0.1
 - runtime.win.Microsoft.Win32.Primitives 4.0.1
 - runtime.unix.System.IO.FileSystem 4.0.1
 - runtime.unix.Microsoft.Win32.Primitives 4.0.1
 - runtime.aot.System.Threading.Timer 4.0.1
 - runtime.aot.System.Runtime.Handles 4.0.1
 - runtime.aot.System.Globalization.Calendars 4.0.1
 - runtime.aot.System.Diagnostics.Tools 4.0.1
 - runtime.any.System.Threading.Timer 4.0.1
...

This is probably why it times out with my (partial) other runtime puzzle. If first takes all the 4.3 versions of the packages and later notices that these aren't the correct ones (notice how I don't have NetStandard in the runtime resolution).

Because System.Diagnostics.Debug 4.0.11 is part of my first resolution -> Therefore GetVersionF only returns 4.0.11 (but the resolver does notice this a bit late).

This might be a good dependencies file for performance testing (however I'd need to print the packages its trying to resolve to actually know what it is trying to resolve...).
The ... at the end indicates that it is resolving a new package every minute or so and really is kind of stuck.

For now the solution is probably quite simple: In the second runtime resolution I will add all the packages again, but lock their versions (like = or == in dependencies file). This way this stuff should be a lot of faster, than just limiting the versions...

@matthid
Copy link
Member

matthid commented Apr 30, 2017

And the unit tests are red because we need to add some extra logic to detect runtime dependencies when we just resolve everything in the second step ... (I'm just looking at the failing test case atm)

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

It looks like you know how to fix this, which is great because I have no clue =)

@matthid
Copy link
Member

matthid commented Apr 30, 2017

@0x53A I know how to make it work with the last commit (and that one actually works. But the solution I suggested doesn't work (I really have no idea why the resolver sometimes runs into this "slow mode of operations" state and sometimes not. So the answer is I can make it green but I have no clue why :)

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

I really have no idea why the resolver sometimes runs into this "slow mode of operations" state and sometimes not

The issue is that if it finds a conflict, it backtracks ONE.
But the requirement that actually introduced the conflict may have been resolved 1000 steps before.
So it will re-resolve the last step, until it exhausts all possibilities, then go back another one .... until it finally reaches the correct one.

In the performance PR I added a heuristic to go back NOT one, but to the last requirement that has the same name. But that is still not perfect.

Let's take a requirement list:

Foo < 4

... another 100 requirements ...

Foo > 3 // not actually a conflict, will just resolve to 3 < Foo < 4

... another 100 requirements ...

Foo > 4 // CONFLICT!

Previously, it would exhaust all previous 201 requirements, until it finally finds Foo < 4.

Now it will go to Foo > 3 and exhaust all requirements, but that still doesn't solve the issue, it would need to skip that and re-resolve the first one (it would need to reresolve the requirement that transitively brought in the conflicting requirement).

@matthid
Copy link
Member

matthid commented Apr 30, 2017

We have way more information the second time (runtime resolution) can I tell it to start with some packages before doing others?

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

No idea, it took me about a day to figure out the above. That was my first foray into the resolver.

I want to look into ordering next, but haven't found out anything yet.

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

Can you try to introduce additional requirements?

E.g. if package Foo was resolved to be version 3.6.1, then add an artificial requirement Foo=3.6.1?

@matthid
Copy link
Member

matthid commented Apr 30, 2017

Tried that. Its still starting with all the 4.3.0 versions :/

Resolving packages for group Main:
 - Microsoft.NET.Test.Sdk is pinned to 15.0.0
 - Microsoft.TestPlatform.ObjectModel is pinned to 15.0.0
 - Microsoft.TestPlatform.TestHost is pinned to 15.0.0
 - Newtonsoft.Json is pinned to 9.0.1
 - System.Security.Cryptography.Algorithms is pinned to 4.2.0
 - System.Security.Cryptography.Cng is pinned to 4.2.0
 - System.Numerics.Vectors is pinned to 4.1.1
 - System.Runtime.Serialization.Primitives is pinned to 4.1.1
 - runtime.native.System.IO.Compression is pinned to 4.1.0
 - System.AppContext is pinned to 4.1.0
 - System.ComponentModel.Primitives is pinned to 4.1.0
 - System.ComponentModel.TypeConverter is pinned to 4.1.0
 - System.Diagnostics.Tracing is pinned to 4.1.0
 - System.IO is pinned to 4.1.0
 - System.IO.Compression is pinned to 4.1.0
 - System.Linq is pinned to 4.1.0
 - System.Linq.Expressions is pinned to 4.1.0
 - System.Net.Http is pinned to 4.1.0
 - System.Net.Sockets is pinned to 4.1.0
 - System.Reflection is pinned to 4.1.0
 - System.Reflection.TypeExtensions is pinned to 4.1.0
 - System.Runtime is pinned to 4.1.0
 - System.Runtime.Extensions is pinned to 4.1.0
 - System.Runtime.InteropServices is pinned to 4.1.0
 - System.Security.Cryptography.X509Certificates is pinned to 4.1.0
 - System.Text.RegularExpressions is pinned to 4.1.0
 - System.Collections.Concurrent is pinned to 4.0.12
 - System.ObjectModel is pinned to 4.0.12
 - System.Collections is pinned to 4.0.11
 - System.Diagnostics.Debug is pinned to 4.0.11
 - System.Dynamic.Runtime is pinned to 4.0.11
 - System.Globalization is pinned to 4.0.11
 - System.Net.Primitives is pinned to 4.0.11
 - System.Net.Requests is pinned to 4.0.11
 - System.Text.Encoding is pinned to 4.0.11
 - System.Text.Encoding.Extensions is pinned to 4.0.11
 - System.Threading is pinned to 4.0.11
 - System.Threading.Tasks is pinned to 4.0.11
 - System.Xml.ReaderWriter is pinned to 4.0.11
 - System.Xml.XDocument is pinned to 4.0.11
 - System.Threading.ThreadPool is pinned to 4.0.10
 - Microsoft.CSharp is pinned to 4.0.1
 - Microsoft.Win32.Primitives is pinned to 4.0.1
 - runtime.native.System.Net.Http is pinned to 4.0.1
 - System.Collections.NonGeneric is pinned to 4.0.1
 - System.Collections.Specialized is pinned to 4.0.1
 - System.ComponentModel is pinned to 4.0.1
 - System.Diagnostics.Contracts is pinned to 4.0.1
 - System.Diagnostics.StackTrace is pinned to 4.0.1
 - System.Diagnostics.Tools is pinned to 4.0.1
 - System.Globalization.Calendars is pinned to 4.0.1
 - System.Globalization.Extensions is pinned to 4.0.1
 - System.IO.Compression.ZipFile is pinned to 4.0.1
 - System.IO.FileSystem is pinned to 4.0.1
 - System.IO.FileSystem.Primitives is pinned to 4.0.1
 - System.Net.WebHeaderCollection is pinned to 4.0.1
 - System.Reflection.Emit is pinned to 4.0.1
 - System.Reflection.Emit.ILGeneration is pinned to 4.0.1
 - System.Reflection.Emit.Lightweight is pinned to 4.0.1
 - System.Reflection.Extensions is pinned to 4.0.1
 - System.Reflection.Primitives is pinned to 4.0.1
 - System.Resources.ResourceManager is pinned to 4.0.1
 - System.Runtime.Handles is pinned to 4.0.1
 - System.Runtime.Numerics is pinned to 4.0.1
 - System.Security.Claims is pinned to 4.0.1
 - System.Security.Principal is pinned to 4.0.1
 - System.Threading.Overlapped is pinned to 4.0.1
 - System.Threading.Timer is pinned to 4.0.1
 - runtime.native.System is pinned to 4.0.0
 - runtime.native.System.Security.Cryptography is pinned to 4.0.0
 - System.Buffers is pinned to 4.0.0
 - System.Console is pinned to 4.0.0
 - System.Diagnostics.DiagnosticSource is pinned to 4.0.0
 - System.IO.FileSystem.Watcher is pinned to 4.0.0
 - System.Net.WebSockets is pinned to 4.0.0
 - System.Runtime.InteropServices.RuntimeInformation is pinned to 4.0.0
 - System.Security.Cryptography.Csp is pinned to 4.0.0
 - System.Security.Cryptography.Encoding is pinned to 4.0.0
 - System.Security.Cryptography.OpenSsl is pinned to 4.0.0
 - System.Security.Cryptography.Primitives is pinned to 4.0.0
 - System.Text.Encodings.Web is pinned to 4.0.0
 - System.Threading.Tasks.Extensions is pinned to 4.0.0
 - System.Threading.Thread is pinned to 4.0.0
 - AWSSDK.Core is pinned to 3.3.0
 - AWSSDK.Extensions.NETCore.Setup is pinned to 3.3.0
 - AWSSDK.S3 is pinned to 3.3.0
 - xunit is pinned to 2.3.0-beta1-build3642
 - xunit.assert is pinned to 2.3.0-beta1-build3642
 - xunit.core is pinned to 2.3.0-beta1-build3642
 - xunit.extensibility.core is pinned to 2.3.0-beta1-build3642
 - xunit.extensibility.execution is pinned to 2.3.0-beta1-build3642
 - xunit.runner.visualstudio is pinned to 2.3.0-beta1-build1309
 - xunit.abstractions is pinned to 2.0.1
 - Libuv is pinned to 1.9.0
 - NETStandard.Library is pinned to 1.6.0
 - FluentAssertions is pinned to 1.3.0.1
 - System.Reflection.Metadata is pinned to 1.3.0
 - System.Collections.Immutable is pinned to 1.2.0
 - Microsoft.DotNet.PlatformAbstractions is pinned to 1.1.0
 - Microsoft.Extensions.DependencyModel is pinned to 1.1.0
 - Microsoft.NETCore.Platforms is pinned to 1.0.1
 - Microsoft.NETCore.Targets is pinned to 1.0.1
 - FakeItEasy is pinned to 1.0.0.5
 - Amazon.Lambda.APIGatewayEvents is pinned to 1.0.0
 - Amazon.Lambda.Core is pinned to 1.0.0
 - Amazon.Lambda.Logging.AspNetCore is pinned to 1.0.0
 - Amazon.Lambda.Serialization.Json is pinned to 1.0.0
 - Microsoft.AspNetCore.Authorization is pinned to 1.0.0
 - Microsoft.AspNetCore.Hosting is pinned to 1.0.0
 - Microsoft.AspNetCore.Hosting.Abstractions is pinned to 1.0.0
 - Microsoft.AspNetCore.Hosting.Server.Abstractions is pinned to 1.0.0
 - Microsoft.AspNetCore.Http is pinned to 1.0.0
 - Microsoft.AspNetCore.Http.Abstractions is pinned to 1.0.0
 - Microsoft.AspNetCore.Http.Extensions is pinned to 1.0.0
 - Microsoft.AspNetCore.Http.Features is pinned to 1.0.0
 - Microsoft.AspNetCore.Mvc.Abstractions is pinned to 1.0.0
 - Microsoft.AspNetCore.Mvc.Core is pinned to 1.0.0
 - Microsoft.AspNetCore.Routing is pinned to 1.0.0
 - Microsoft.AspNetCore.Routing.Abstractions is pinned to 1.0.0
 - Microsoft.AspNetCore.Server.Kestrel is pinned to 1.0.0
 - Microsoft.AspNetCore.WebUtilities is pinned to 1.0.0
 - Microsoft.Extensions.Configuration is pinned to 1.0.0
 - Microsoft.Extensions.Configuration.Abstractions is pinned to 1.0.0
 - Microsoft.Extensions.Configuration.Binder is pinned to 1.0.0
 - Microsoft.Extensions.Configuration.EnvironmentVariables is pinned to 1.0.0
 - Microsoft.Extensions.Configuration.FileExtensions is pinned to 1.0.0
 - Microsoft.Extensions.Configuration.Json is pinned to 1.0.0
 - Microsoft.Extensions.DependencyInjection is pinned to 1.0.0
 - Microsoft.Extensions.DependencyInjection.Abstractions is pinned to 1.0.0
 - Microsoft.Extensions.FileProviders.Abstractions is pinned to 1.0.0
 - Microsoft.Extensions.FileProviders.Physical is pinned to 1.0.0
 - Microsoft.Extensions.FileSystemGlobbing is pinned to 1.0.0
 - Microsoft.Extensions.Logging is pinned to 1.0.0
 - Microsoft.Extensions.Logging.Abstractions is pinned to 1.0.0
 - Microsoft.Extensions.ObjectPool is pinned to 1.0.0
 - Microsoft.Extensions.Options is pinned to 1.0.0
 - Microsoft.Extensions.Options.ConfigurationExtensions is pinned to 1.0.0
 - Microsoft.Extensions.PlatformAbstractions is pinned to 1.0.0
 - Microsoft.Extensions.Primitives is pinned to 1.0.0
 - Microsoft.Net.Http.Headers is pinned to 1.0.0
 - Amazon.Lambda.AspNetCoreServer is pinned to 0.8.0-preview1
 - runtime.any.System.Diagnostics.Tracing 4.3.0
 - runtime.any.System.IO 4.3.0
 - runtime.any.System.Reflection 4.3.0
 - runtime.any.System.Runtime 4.3.0
 - runtime.any.System.Runtime.InteropServices 4.3.0
 - runtime.aot.System.IO 4.3.0
 - runtime.unix.System.Net.Sockets 4.3.0
 - runtime.unix.System.Runtime.Extensions 4.3.0
 - runtime.win.System.Net.Sockets 4.3.0
 - runtime.win.System.Runtime.Extensions 4.3.0
 - runtime.aot.System.Diagnostics.Tracing 4.3.0
 - runtime.aot.System.Runtime 4.3.0
 - runtime.aot.System.Runtime.InteropServices 4.3.0
 - runtime.any.System.Collections 4.3.0
 - runtime.any.System.Globalization 4.3.0
 - runtime.any.System.Text.Encoding 4.3.0
 - runtime.any.System.Text.Encoding.Extensions 4.3.0
 - runtime.any.System.Threading.Tasks 4.3.0
 - runtime.aot.System.Globalization 4.3.0
 - runtime.aot.System.Text.Encoding 4.3.0
 - runtime.aot.System.Text.Encoding.Extensions 4.3.0
 - runtime.aot.System.Threading.Tasks 4.3.0
 - runtime.unix.System.Diagnostics.Debug 4.3.0
 - runtime.unix.System.Net.Primitives 4.3.0
 - runtime.win.System.Diagnostics.Debug 4.3.0
 - runtime.win.System.Net.Primitives 4.3.0
 - runtime.aot.System.Collections 4.3.0
 - runtime.aot.System.Reflection 4.3.0
 - runtime.any.System.Diagnostics.Tools 4.3.0
 - runtime.any.System.Globalization.Calendars 4.3.0
 - runtime.any.System.Reflection.Extensions 4.3.0
 - runtime.any.System.Reflection.Primitives 4.3.0
 - runtime.any.System.Resources.ResourceManager 4.3.0
 - runtime.any.System.Runtime.Handles 4.3.0
 - runtime.any.System.Threading.Timer 4.3.0
 - runtime.aot.System.Diagnostics.Tools 4.3.0
 - runtime.aot.System.Globalization.Calendars 4.3.0
 - runtime.aot.System.Runtime.Handles 4.3.0
 - runtime.aot.System.Threading.Timer 4.3.0
 - runtime.unix.Microsoft.Win32.Primitives 4.3.0
 - runtime.unix.System.IO.FileSystem 4.3.0
 - runtime.win.Microsoft.Win32.Primitives 4.3.0
 - runtime.win.System.IO.FileSystem 4.3.0
 - runtime.win10-arm-aot.runtime.native.System.IO.Compression 4.0.1
 - runtime.win10-x64-aot.runtime.native.System.IO.Compression 4.0.1
 - runtime.win10-x86-aot.runtime.native.System.IO.Compression 4.0.1
 - runtime.win7-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.win7-x86.runtime.native.System.IO.Compression 4.3.0
 - runtime.win8-arm.runtime.native.System.IO.Compression 4.3.0
 - runtime.aot.System.Reflection.Extensions 4.3.0
 - runtime.aot.System.Reflection.Primitives 4.3.0
 - runtime.aot.System.Resources.ResourceManager 4.3.0
 - runtime.unix.System.Console 4.3.0
 - runtime.win.System.Console 4.3.0
 - runtime.debian.8-x64.runtime.native.System 4.3.0
 - runtime.debian.8-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.debian.8-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.debian.8-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.fedora.23-x64.runtime.native.System 4.3.0
 - runtime.fedora.23-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.fedora.23-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.rhel.7-x64.runtime.native.System 4.3.0
 - runtime.rhel.7-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.rhel.7-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography 4.3.0
 - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.ubuntu.16.04-x64.runtime.native.System 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.ubuntu.14.04-x64.runtime.native.System 1.0.1
 - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.rhel.7-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.rhel.7-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.rhel.7-x64.runtime.native.System 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.osx.10.10-x64.runtime.native.System 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.opensuse.13.2-x64.runtime.native.System 1.0.1
 - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.fedora.23-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.fedora.23-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.fedora.23-x64.runtime.native.System 1.0.1
 - runtime.debian.8-x64.runtime.native.System.Security.Cryptography 1.0.1
 - runtime.debian.8-x64.runtime.native.System.Net.Http 1.0.1
 - runtime.debian.8-x64.runtime.native.System.IO.Compression 1.0.1
 - runtime.debian.8-x64.runtime.native.System 1.0.1
 - runtime.win.System.Console 4.0.0
 - runtime.unix.System.Console 4.0.0
 - runtime.aot.System.Resources.ResourceManager 4.0.0
 - runtime.aot.System.Reflection.Primitives 4.0.0
 - runtime.aot.System.Reflection.Extensions 4.0.0
  Could not resolve package System.Diagnostics.Debug 4.0.11:
   - AWSSDK.Core 3.3.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.AspNetCore.Server.Kestrel 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.CSharp 4.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.Configuration 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.DependencyInjection.Abstractions 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.DependencyModel 1.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.Logging.Abstractions 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.ObjectPool 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.Options 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - NETStandard.Library 1.6.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Newtonsoft.Json 9.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - runtime.aot.System.Collections 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.aot.System.IO 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.aot.System.Reflection.Extensions 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - runtime.unix.System.IO.FileSystem 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.unix.System.Net.Sockets 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.win.System.IO.FileSystem 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.win.System.Net.Sockets 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - System.Buffers 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Collections.Concurrent 4.0.12 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Collections.Immutable 1.2.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Collections.NonGeneric 4.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Dynamic.Runtime 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.IO.Compression 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Linq 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Linq.Expressions 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Net.Http 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Net.Requests 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.ObjectModel 4.0.12 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Reflection.Metadata 1.3.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Reflection.TypeExtensions 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Security.Cryptography.Primitives 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Security.Cryptography.X509Certificates 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Text.Encodings.Web 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Xml.ReaderWriter 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Xml.XDocument 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11

The process is taking longer than expected.
Paket may still find a valid resolution, but this might take a while.
 - runtime.win8-arm.runtime.native.System.IO.Compression 4.0.1
 - runtime.win7-x86.runtime.native.System.IO.Compression 4.0.1
 - runtime.win7-x64.runtime.native.System.IO.Compression 4.0.1
 - runtime.win.System.IO.FileSystem 4.0.1
 - runtime.win.Microsoft.Win32.Primitives 4.0.1
 - runtime.unix.System.IO.FileSystem 4.0.1
  Could not resolve package System.Diagnostics.Debug 4.0.11:
   - AWSSDK.Core 3.3.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.AspNetCore.Server.Kestrel 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.CSharp 4.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.Configuration 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.DependencyInjection.Abstractions 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.DependencyModel 1.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.Logging.Abstractions 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.ObjectPool 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Microsoft.Extensions.Options 1.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - NETStandard.Library 1.6.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - Newtonsoft.Json 9.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - runtime.aot.System.Collections 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.aot.System.IO 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.aot.System.Reflection.Extensions 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.unix.System.IO.FileSystem 4.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - runtime.unix.System.Net.Sockets 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - runtime.win.System.IO.FileSystem 4.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - runtime.win.System.Net.Sockets 4.3.0 requested package System.Diagnostics.Debug: >= 4.3
   - System.Buffers 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Collections.Concurrent 4.0.12 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Collections.Immutable 1.2.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Collections.NonGeneric 4.0.1 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Dynamic.Runtime 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.IO.Compression 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Linq 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Linq.Expressions 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Net.Http 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Net.Requests 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.ObjectModel 4.0.12 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Reflection.Metadata 1.3.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Reflection.TypeExtensions 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Security.Cryptography.Primitives 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Security.Cryptography.X509Certificates 4.1.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Text.Encodings.Web 4.0.0 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Xml.ReaderWriter 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11
   - System.Xml.XDocument 4.0.11 requested package System.Diagnostics.Debug: >= 4.0.11

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

Then the ordering of how the requirements are solved is definitely .... suboptimal.

I will see if I can figure out anything in the evening, no time atm.

@matthid
Copy link
Member

matthid commented Apr 30, 2017

This is a dependencies file where this should happen. One would assume paket could find a resolution easily considering all the pinned versions:

nuget runtime.unix.Microsoft.Win32.Primitives >= 4.0.1 
nuget runtime.win.Microsoft.Win32.Primitives >= 4.0.1 
nuget runtime.debian.8-x64.runtime.native.System >= 1.0.1 
nuget runtime.fedora.23-x64.runtime.native.System >= 1.0.1 
nuget runtime.opensuse.13.2-x64.runtime.native.System >= 1.0.1 
nuget runtime.osx.10.10-x64.runtime.native.System >= 1.0.1 
nuget runtime.rhel.7-x64.runtime.native.System >= 1.0.1 
nuget runtime.ubuntu.14.04-x64.runtime.native.System >= 1.0.1 
nuget runtime.ubuntu.16.04-x64.runtime.native.System >= 1.0.1 
nuget runtime.debian.8-x64.runtime.native.System.IO.Compression >= 1.0.1 
nuget runtime.fedora.23-x64.runtime.native.System.IO.Compression >= 1.0.1 
nuget runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression >= 1.0.1 
nuget runtime.osx.10.10-x64.runtime.native.System.IO.Compression >= 1.0.1 
nuget runtime.rhel.7-x64.runtime.native.System.IO.Compression >= 1.0.1 
nuget runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression >= 1.0.1 
nuget runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression >= 1.0.1 
nuget runtime.win10-arm-aot.runtime.native.System.IO.Compression >= 4.0.1 
nuget runtime.win10-x64-aot.runtime.native.System.IO.Compression >= 4.0.1 
nuget runtime.win10-x86-aot.runtime.native.System.IO.Compression >= 4.0.1 
nuget runtime.win7-x64.runtime.native.System.IO.Compression >= 4.0.1 
nuget runtime.win7-x86.runtime.native.System.IO.Compression >= 4.0.1 
nuget runtime.win8-arm.runtime.native.System.IO.Compression >= 4.0.1 
nuget runtime.debian.8-x64.runtime.native.System.Net.Http >= 1.0.1 
nuget runtime.fedora.23-x64.runtime.native.System.Net.Http >= 1.0.1 
nuget runtime.opensuse.13.2-x64.runtime.native.System.Net.Http >= 1.0.1 
nuget runtime.osx.10.10-x64.runtime.native.System.Net.Http >= 1.0.1 
nuget runtime.rhel.7-x64.runtime.native.System.Net.Http >= 1.0.1 
nuget runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http >= 1.0.1 
nuget runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http >= 1.0.1 
nuget runtime.debian.8-x64.runtime.native.System.Security.Cryptography >= 1.0.1 
nuget runtime.fedora.23-x64.runtime.native.System.Security.Cryptography >= 1.0.1 
nuget runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography >= 1.0.1 
nuget runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography >= 1.0.1 
nuget runtime.rhel.7-x64.runtime.native.System.Security.Cryptography >= 1.0.1 
nuget runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography >= 1.0.1 
nuget runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography >= 1.0.1 
nuget runtime.any.System.Collections >= 4.0.11 
nuget runtime.aot.System.Collections >= 4.0.10 
nuget runtime.unix.System.Console >= 4.0 
nuget runtime.win.System.Console >= 4.0 
nuget runtime.unix.System.Diagnostics.Debug >= 4.0.11 
nuget runtime.win.System.Diagnostics.Debug >= 4.0.11 
nuget runtime.any.System.Diagnostics.Tools >= 4.0.1 
nuget runtime.aot.System.Diagnostics.Tools >= 4.0.1 
nuget runtime.any.System.Diagnostics.Tracing >= 4.1 
nuget runtime.aot.System.Diagnostics.Tracing >= 4.0.20 
nuget runtime.any.System.Globalization >= 4.0.11 
nuget runtime.aot.System.Globalization >= 4.0.11 
nuget runtime.any.System.Globalization.Calendars >= 4.0.1 
nuget runtime.aot.System.Globalization.Calendars >= 4.0.1 
nuget runtime.any.System.IO >= 4.1 
nuget runtime.aot.System.IO >= 4.1 
nuget runtime.unix.System.IO.FileSystem >= 4.0.1 
nuget runtime.win.System.IO.FileSystem >= 4.0.1 
nuget runtime.unix.System.Net.Primitives >= 4.0.11 
nuget runtime.win.System.Net.Primitives >= 4.0.11 
nuget runtime.unix.System.Net.Sockets >= 4.1 
nuget runtime.win.System.Net.Sockets >= 4.1 
nuget runtime.any.System.Reflection >= 4.1 
nuget runtime.aot.System.Reflection >= 4.0.10 
nuget runtime.any.System.Reflection.Extensions >= 4.0.1 
nuget runtime.aot.System.Reflection.Extensions >= 4.0 
nuget runtime.any.System.Reflection.Primitives >= 4.0.1 
nuget runtime.aot.System.Reflection.Primitives >= 4.0 
nuget runtime.any.System.Resources.ResourceManager >= 4.0.1 
nuget runtime.aot.System.Resources.ResourceManager >= 4.0 
nuget runtime.any.System.Runtime >= 4.1 
nuget runtime.aot.System.Runtime >= 4.0.20 
nuget runtime.unix.System.Runtime.Extensions >= 4.1 
nuget runtime.win.System.Runtime.Extensions >= 4.1 
nuget runtime.any.System.Runtime.Handles >= 4.0.1 
nuget runtime.aot.System.Runtime.Handles >= 4.0.1 
nuget runtime.any.System.Runtime.InteropServices >= 4.1 
nuget runtime.aot.System.Runtime.InteropServices >= 4.0.20 
nuget runtime.any.System.Text.Encoding >= 4.0.11 
nuget runtime.aot.System.Text.Encoding >= 4.0.11 
nuget runtime.any.System.Text.Encoding.Extensions >= 4.0.11 
nuget runtime.aot.System.Text.Encoding.Extensions >= 4.0.11 
nuget runtime.any.System.Threading.Tasks >= 4.0.11 
nuget runtime.aot.System.Threading.Tasks >= 4.0.11 
nuget runtime.any.System.Threading.Timer >= 4.0.1 
nuget runtime.aot.System.Threading.Timer >= 4.0.1 

nuget Microsoft.NET.Test.Sdk 15.0.0
nuget Microsoft.TestPlatform.ObjectModel 15.0.0
nuget Microsoft.TestPlatform.TestHost 15.0.0
nuget Newtonsoft.Json 9.0.1
nuget System.Security.Cryptography.Algorithms 4.2.0
nuget System.Security.Cryptography.Cng 4.2.0
nuget System.Numerics.Vectors 4.1.1
nuget System.Runtime.Serialization.Primitives 4.1.1
nuget runtime.native.System.IO.Compression 4.1.0
nuget System.AppContext 4.1.0
nuget System.ComponentModel.Primitives 4.1.0
nuget System.ComponentModel.TypeConverter 4.1.0
nuget System.Diagnostics.Tracing 4.1.0
nuget System.IO 4.1.0
nuget System.IO.Compression 4.1.0
nuget System.Linq 4.1.0
nuget System.Linq.Expressions 4.1.0
nuget System.Net.Http 4.1.0
nuget System.Net.Sockets 4.1.0
nuget System.Reflection 4.1.0
nuget System.Reflection.TypeExtensions 4.1.0
nuget System.Runtime 4.1.0
nuget System.Runtime.Extensions 4.1.0
nuget System.Runtime.InteropServices 4.1.0
nuget System.Security.Cryptography.X509Certificates 4.1.0
nuget System.Text.RegularExpressions 4.1.0
nuget System.Collections.Concurrent 4.0.12
nuget System.ObjectModel 4.0.12
nuget System.Collections 4.0.11
nuget System.Diagnostics.Debug 4.0.11
nuget System.Dynamic.Runtime 4.0.11
nuget System.Globalization 4.0.11
nuget System.Net.Primitives 4.0.11
nuget System.Net.Requests 4.0.11
nuget System.Text.Encoding 4.0.11
nuget System.Text.Encoding.Extensions 4.0.11
nuget System.Threading 4.0.11
nuget System.Threading.Tasks 4.0.11
nuget System.Xml.ReaderWriter 4.0.11
nuget System.Xml.XDocument 4.0.11
nuget System.Threading.ThreadPool 4.0.10
nuget Microsoft.CSharp 4.0.1
nuget Microsoft.Win32.Primitives 4.0.1
nuget runtime.native.System.Net.Http 4.0.1
nuget System.Collections.NonGeneric 4.0.1
nuget System.Collections.Specialized 4.0.1
nuget System.ComponentModel 4.0.1
nuget System.Diagnostics.Contracts 4.0.1
nuget System.Diagnostics.StackTrace 4.0.1
nuget System.Diagnostics.Tools 4.0.1
nuget System.Globalization.Calendars 4.0.1
nuget System.Globalization.Extensions 4.0.1
nuget System.IO.Compression.ZipFile 4.0.1
nuget System.IO.FileSystem 4.0.1
nuget System.IO.FileSystem.Primitives 4.0.1
nuget System.Net.WebHeaderCollection 4.0.1
nuget System.Reflection.Emit 4.0.1
nuget System.Reflection.Emit.ILGeneration 4.0.1
nuget System.Reflection.Emit.Lightweight 4.0.1
nuget System.Reflection.Extensions 4.0.1
nuget System.Reflection.Primitives 4.0.1
nuget System.Resources.ResourceManager 4.0.1
nuget System.Runtime.Handles 4.0.1
nuget System.Runtime.Numerics 4.0.1
nuget System.Security.Claims 4.0.1
nuget System.Security.Principal 4.0.1
nuget System.Threading.Overlapped 4.0.1
nuget System.Threading.Timer 4.0.1
nuget runtime.native.System 4.0.0
nuget runtime.native.System.Security.Cryptography 4.0.0
nuget System.Buffers 4.0.0
nuget System.Console 4.0.0
nuget System.Diagnostics.DiagnosticSource 4.0.0
nuget System.IO.FileSystem.Watcher 4.0.0
nuget System.Net.WebSockets 4.0.0
nuget System.Runtime.InteropServices.RuntimeInformation 4.0.0
nuget System.Security.Cryptography.Csp 4.0.0
nuget System.Security.Cryptography.Encoding 4.0.0
nuget System.Security.Cryptography.OpenSsl 4.0.0
nuget System.Security.Cryptography.Primitives 4.0.0
nuget System.Text.Encodings.Web 4.0.0
nuget System.Threading.Tasks.Extensions 4.0.0
nuget System.Threading.Thread 4.0.0
nuget AWSSDK.Core 3.3.0
nuget AWSSDK.Extensions.NETCore.Setup 3.3.0
nuget AWSSDK.S3 3.3.0
nuget xunit 2.3.0-beta1-build3642
nuget xunit.assert 2.3.0-beta1-build3642
nuget xunit.core 2.3.0-beta1-build3642
nuget xunit.extensibility.core 2.3.0-beta1-build3642
nuget xunit.extensibility.execution 2.3.0-beta1-build3642
nuget xunit.runner.visualstudio 2.3.0-beta1-build1309
nuget xunit.abstractions 2.0.1
nuget Libuv 1.9.0
nuget NETStandard.Library 1.6.0
nuget FluentAssertions 1.3.0.1
nuget System.Reflection.Metadata 1.3.0
nuget System.Collections.Immutable 1.2.0
nuget Microsoft.DotNet.PlatformAbstractions 1.1.0
nuget Microsoft.Extensions.DependencyModel 1.1.0
nuget Microsoft.NETCore.Platforms 1.0.1
nuget Microsoft.NETCore.Targets 1.0.1
nuget FakeItEasy 1.0.0.5
nuget Amazon.Lambda.APIGatewayEvents 1.0.0
nuget Amazon.Lambda.Core 1.0.0
nuget Amazon.Lambda.Logging.AspNetCore 1.0.0
nuget Amazon.Lambda.Serialization.Json 1.0.0
nuget Microsoft.AspNetCore.Authorization 1.0.0
nuget Microsoft.AspNetCore.Hosting 1.0.0
nuget Microsoft.AspNetCore.Hosting.Abstractions 1.0.0
nuget Microsoft.AspNetCore.Hosting.Server.Abstractions 1.0.0
nuget Microsoft.AspNetCore.Http 1.0.0
nuget Microsoft.AspNetCore.Http.Abstractions 1.0.0
nuget Microsoft.AspNetCore.Http.Extensions 1.0.0
nuget Microsoft.AspNetCore.Http.Features 1.0.0
nuget Microsoft.AspNetCore.Mvc.Abstractions 1.0.0
nuget Microsoft.AspNetCore.Mvc.Core 1.0.0
nuget Microsoft.AspNetCore.Routing 1.0.0
nuget Microsoft.AspNetCore.Routing.Abstractions 1.0.0
nuget Microsoft.AspNetCore.Server.Kestrel 1.0.0
nuget Microsoft.AspNetCore.WebUtilities 1.0.0
nuget Microsoft.Extensions.Configuration 1.0.0
nuget Microsoft.Extensions.Configuration.Abstractions 1.0.0
nuget Microsoft.Extensions.Configuration.Binder 1.0.0
nuget Microsoft.Extensions.Configuration.EnvironmentVariables 1.0.0
nuget Microsoft.Extensions.Configuration.FileExtensions 1.0.0
nuget Microsoft.Extensions.Configuration.Json 1.0.0
nuget Microsoft.Extensions.DependencyInjection 1.0.0
nuget Microsoft.Extensions.DependencyInjection.Abstractions 1.0.0
nuget Microsoft.Extensions.FileProviders.Abstractions 1.0.0
nuget Microsoft.Extensions.FileProviders.Physical 1.0.0
nuget Microsoft.Extensions.FileSystemGlobbing 1.0.0
nuget Microsoft.Extensions.Logging 1.0.0
nuget Microsoft.Extensions.Logging.Abstractions 1.0.0
nuget Microsoft.Extensions.ObjectPool 1.0.0
nuget Microsoft.Extensions.Options 1.0.0
nuget Microsoft.Extensions.Options.ConfigurationExtensions 1.0.0
nuget Microsoft.Extensions.PlatformAbstractions 1.0.0
nuget Microsoft.Extensions.Primitives 1.0.0
nuget Microsoft.Net.Http.Headers 1.0.0
nuget Amazon.Lambda.AspNetCoreServer 0.8.0-preview1

@matthid
Copy link
Member

matthid commented Apr 30, 2017

hm maybe this is a bug. How can the resolver even take - runtime.unix.System.IO.FileSystem 4.3.0 see here when - System.Diagnostics.Debug is pinned to 4.0.11 that doesn't make any sense. Maybe a bug?

@cloudRoutine
Copy link
Member

It took 2m36s with paket.exe built from 3347802

@0x53A
Copy link
Contributor Author

0x53A commented Apr 30, 2017

edit: version numbers are confusing, I am confused

@matthid
Copy link
Member

matthid commented Apr 30, 2017

I think the case I found needs to be fixed for this to work properly. I think in https://github.com/fsprojects/Paket/blob/master/src/Paket.Core/Dependencies/PackageResolver.fs#L769 we should not just take "head" instead we should filter with the restrictions we already know...

@matthid
Copy link
Member

matthid commented Apr 30, 2017

image

@matthid
Copy link
Member

matthid commented Apr 30, 2017

OK this should work and be slightly faster in theory. The problem was that the strategy in the dependency file was not applied to runtime dependencies as well -> Therefore we had this other case where our resolver currently is really bad at....

If you remove

strategy: min
lowest_matching: true

From the dependency file in the #2294 test case the resolver should still be able to resolve it properly, but it isn't. Therefore this was just another manifestation of this.

@@ -693,7 +695,7 @@ let Resolve (getVersionsF, getPackageDetailsF, groupName:GroupName, globalStrate
currentStep.CurrentResolution.Count
(currentStep.CurrentResolution |> Seq.map (fun x -> sprintf "\n - %O, %O" x.Key x.Value.Version) |> String.Concat)
currentStep.OpenRequirements.Count
(currentStep.OpenRequirements |> Seq.map (fun x -> sprintf "\n - %O, %O" x.Parent x.VersionRequirement) |> String.Concat)
(currentStep.OpenRequirements |> Seq.map (fun x -> sprintf "\n - %O, %O (from %O)" x.Name x.VersionRequirement x.Parent) |> String.Concat)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed this unrelated output. It seems like it was wrong before?

runtimeResolutionDeps
|> Seq.fold (fun (deps:DependenciesFile) dep -> deps.AddAdditionalPackage(Constants.MainDependencyGroup, dep.Name, dep.VersionRequirement, dep.ResolverStrategyForTransitives, dep.Settings)) runtimeDepsFile

tracefn "Depsfile: \n%O" runtimeDepsFile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This helps printing out the deps file we resolve when handling runtime dependencies, this might help in the future...

@matthid
Copy link
Member

matthid commented Apr 30, 2017

Closing in favor of #2307, thanks for the test! Sorry for my bad handling of branches :)

@matthid matthid closed this Apr 30, 2017
@0x53A
Copy link
Contributor Author

0x53A commented May 1, 2017

If we are on the topic of branches, do you think you or @forki could maybe clean them up?

It's slighly impossible to find anything, and it doesn't look like most are actually still worked at:

image

image

@matthid
Copy link
Member

matthid commented May 2, 2017

I totally agree. Question is if I get in trouble if I just start deleting stuff :P

@forki
Copy link
Member

forki commented May 2, 2017 via email

@matthid
Copy link
Member

matthid commented May 6, 2017

@0x53A @forki I (quite radically) cleaned the house :)

@0x53A 0x53A deleted the unit-test-for-2294 branch June 2, 2017 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants