Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
80e94ed
start fixing #2317 because #2333 shows that its relevant.
matthid May 13, 2017
624c71e
initial (probably broken) compiling version.
matthid May 14, 2017
1e187c8
we need to find all platforms supporting us in restriction logic.
matthid May 14, 2017
a97805b
parsing nuspec is a bit more complicated than expected. We properly n…
matthid May 20, 2017
b246942
generating a generic description is not as easy as it should be :/
matthid May 20, 2017
127a175
proper handling in addFrameworkRestrictionsToDependencies.
matthid May 20, 2017
98d3ab8
refactor
matthid May 20, 2017
7f86897
make sure formulars are always in dnf (which makes writing the simpli…
matthid May 21, 2017
7f27225
refactor FrameworkIdentifier, remove V4_Client (if still needed we ne…
matthid May 21, 2017
c91e856
refactor handling of portable profiles
matthid May 21, 2017
4623d5d
properly implement SupportedPlatforms for PCL and start to fix test s…
matthid May 21, 2017
d1646af
fix several bugs and tests
matthid May 22, 2017
e4c0f89
cleanup and more test fixes
matthid May 22, 2017
6951693
increase cache version
matthid May 22, 2017
8d15286
more cleanup and more test fixes.
matthid May 22, 2017
281b221
cleanup and support for unknown portable profiles.
matthid May 22, 2017
d02e5a0
cleanup and fix almost everything but the parser.
matthid May 22, 2017
9318160
unit tests green again
matthid May 22, 2017
8245a16
Cleanup and some code-simplifications.
matthid May 22, 2017
9d3831f
use sets for targetprofiles.
matthid May 23, 2017
20c1ae6
add some very basic profiling capabilites.
matthid May 23, 2017
4dd7398
performance improvements by using sets and caches
matthid May 23, 2017
4d2adeb
Merge remote-tracking branch 'origin/master' into fix_restrictions
matthid May 23, 2017
c37374c
add profile to netcore
matthid May 23, 2017
70a268c
no more verbose for you
matthid May 23, 2017
c9ed5c5
another round of performance by improving the equals implementation
matthid May 23, 2017
1390a07
more performance by using sets and removing some conversations
matthid May 23, 2017
613b750
REVIEW: select another conflict
matthid May 23, 2017
1d6088d
REVIEW: compare restrictions at least (because it is slowest)
matthid May 23, 2017
2fff14b
Change Profile-Code to work in parallel and thread changing environme…
matthid May 23, 2017
e6a7cf6
preload dependency information, such that the resolver doesn't need t…
matthid May 23, 2017
7373ae6
change the keys for the cache and delete an old cache.
matthid May 23, 2017
a4e4d77
bugfix in new stats
matthid May 23, 2017
a481dea
add getPreferredVersionF to properly handle caching and preloading in…
matthid May 23, 2017
d7d39f8
let the user overwrite restriction globally
matthid May 24, 2017
e5fe351
fix some tests and a bug in the simplifier.
matthid May 24, 2017
4a4090c
improve performance output
matthid May 24, 2017
306e06d
more performance data & fix test
matthid May 24, 2017
9dd5336
another test fixed
matthid May 24, 2017
09220ea
fix a parser bug and another test
matthid May 24, 2017
dfbd104
another test
matthid May 24, 2017
364a5f4
Fix Stackoverflows in DEBUG mode by increasing the Stack-Size (in a n…
matthid May 24, 2017
cb2f0ee
fix tests
matthid May 24, 2017
ea40687
add warning when something is not working as it should and fix caching.
matthid May 24, 2017
0ffa1d6
fix test code
matthid May 24, 2017
3874a3b
fix test code
matthid May 24, 2017
bba0419
Cleanup stuff
matthid May 24, 2017
cf5c947
Merge pull request #2356 from fsprojects/parallel_requests
matthid May 24, 2017
148d73b
update documentation and RELEASE_NOTES.
matthid May 24, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
cleanup and more test fixes
  • Loading branch information
matthid committed May 22, 2017
commit e4c0f8941a40bfea160d1d1db94ddcd3b2e127dc
417 changes: 1 addition & 416 deletions src/Paket.Core/Versioning/Requirements.fs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion tests/Paket.Tests/InstallModel/FrameworkIdentifierSpecs.fs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ let ``should serialize basic framework versions net20, net40, net45 ...``() =

[<Test>]
let ``should serialize silverlight framework identifier correctly``() =
(Silverlight SilverlightVersion.V5).ToString() |> shouldEqual "sl50"
(Silverlight SilverlightVersion.V5).ToString() |> shouldEqual "sl5"

[<Test>]
let ``should understand basic dnx``() =
Expand Down
4 changes: 2 additions & 2 deletions tests/Paket.Tests/InstallModel/ProcessingSpecs.fs
Original file line number Diff line number Diff line change
Expand Up @@ -281,8 +281,8 @@ let ``should install not use net40-full for client profile``() =
|> Seq.map (fun f -> f.Path) |> shouldContain @"..\Newtonsoft.Json\lib\net35\Newtonsoft.Json.dll"
model.GetLegacyReferences(SinglePlatform (DotNetFramework FrameworkVersion.V4))
|> Seq.map (fun f -> f.Path) |> shouldContain @"..\Newtonsoft.Json\lib\net40-full\Newtonsoft.Json.dll"
model.GetLegacyReferences(SinglePlatform (DotNetFramework FrameworkVersion.V4))
|> Seq.map (fun f -> f.Path) |> shouldNotContain @"..\Newtonsoft.Json\lib\net40-full\Newtonsoft.Json.dll"
//model.GetLegacyReferences(SinglePlatform (DotNetFramework FrameworkVersion.V4))
// |> Seq.map (fun f -> f.Path) |> shouldNotContain @"..\Newtonsoft.Json\lib\net40-full\Newtonsoft.Json.dll"

[<Test>]
let ``should handle lib install of Microsoft.Net.Http for .NET 4.5``() =
Expand Down
4 changes: 2 additions & 2 deletions tests/Paket.Tests/InstallModel/Xml/LibGit2Sharp.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ open Paket.Requirements

let expectedReferenceNodes = """<?xml version="1.0" encoding="utf-16"?>
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="LibGit2Sharp">
<HintPath>..\..\..\LibGit2Sharp\lib\net40\LibGit2Sharp.dll</HintPath>
Expand All @@ -22,7 +22,7 @@ let expectedReferenceNodes = """<?xml version="1.0" encoding="utf-16"?>

let expectedPropertyDefinitionNodes = """<?xml version="1.0" encoding="utf-16"?>
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<PropertyGroup>
<__paket__LibGit2Sharp_props>net40\LibGit2Sharp</__paket__LibGit2Sharp_props>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion tests/Paket.Tests/InstallModel/Xml/Plossum.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ open Paket.Requirements

let expected = """
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="Plossum CommandLine">
<HintPath>..\..\..\Plossum.CommandLine\lib\net40\Plossum CommandLine.dll</HintPath>
Expand Down
2 changes: 1 addition & 1 deletion tests/Paket.Tests/InstallModel/Xml/RxXaml.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ open Paket.Requirements

let expected = """
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3')">
<ItemGroup>
<Reference Include="WindowsBase">
<Paket>True</Paket>
Expand Down
4 changes: 2 additions & 2 deletions tests/Paket.Tests/InstallModel/Xml/SQLite.fs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ let expectedReferenceNodes = """
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3')">
<ItemGroup>
<Reference Include="System.Data.SQLite">
<HintPath>..\..\..\System.Data.SQLite.Core\lib\net40\System.Data.SQLite.dll</HintPath>
Expand Down Expand Up @@ -59,7 +59,7 @@ let expectedPropertyDefinitionNodes = """
<__paket__System_Data_SQLite_Core_targets>net20\System.Data.SQLite.Core</__paket__System_Data_SQLite_Core_targets>
</PropertyGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3')">
<PropertyGroup>
<__paket__System_Data_SQLite_Core_targets>net40\System.Data.SQLite.Core</__paket__System_Data_SQLite_Core_targets>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion tests/Paket.Tests/InstallModel/Xml/System.Spatial.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ open Paket.Requirements

let expected = """
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Spatial">
<HintPath>..\..\..\System.Spatial\lib\net40\System.Spatial.dll</HintPath>
Expand Down
2 changes: 1 addition & 1 deletion tests/Paket.Tests/InstallModel/Xml/SystemNetHttp.fs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ let expected = """
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3')">
<ItemGroup>
<Reference Include="System.Net.Http">
<HintPath>..\..\..\Microsoft.Net.Http\lib\net40\System.Net.Http.dll</HintPath>
Expand Down
2 changes: 1 addition & 1 deletion tests/Paket.Tests/InstallModel/Xml/SystemNetHttpForNet4.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ open Paket.Requirements

let expected = """
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3')">
<ItemGroup>
<Reference Include="System.Net.Http">
<HintPath>..\..\..\Microsoft.Net.Http\lib\net40\System.Net.Http.dll</HintPath>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ open Paket.Requirements

let expected = """
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3')">
<ItemGroup>
<Reference Include="System.Net.Http">
<HintPath>..\..\..\Microsoft.Net.Http\lib\net40\System.Net.Http.dll</HintPath>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ open Paket.Requirements

let expected = """
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3')">
<ItemGroup>
<Reference Include="System.Net.Http">
<HintPath>..\..\..\Microsoft.Net.Http\lib\net40\System.Net.Http.dll</HintPath>
Expand Down
2 changes: 1 addition & 1 deletion tests/Paket.Tests/InstallModel/Xml/xunit.runner.fs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ let expectedPropertyNodes = """<?xml version="1.0" encoding="utf-16"?>

let expectedPropertyDefinitionNodes = """<?xml version="1.0" encoding="utf-16"?>
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v2.0' Or $(TargetFrameworkVersion) == 'v3.0' Or $(TargetFrameworkVersion) == 'v3.5' Or $(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v2.0' Or $(TargetFrameworkVersion) == 'v3.0' Or $(TargetFrameworkVersion) == 'v3.5' Or $(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.0.3' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<PropertyGroup>
<__paket__xunit_runner_visualstudio_props>net20\xunit.runner.visualstudio</__paket__xunit_runner_visualstudio_props>
</PropertyGroup>
Expand Down
8 changes: 4 additions & 4 deletions tests/Paket.Tests/Lockfile/GenerateWithOptionsSpecs.fs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ let graph1 =

let expected1 = """REFERENCES: STRICT
COPY-LOCAL: FALSE
RESTRICTION: >= NET45
RESTRICTION: >= net45
NUGET
remote: http://www.nuget.org/api/v2
Castle.Windsor-log4net (3.2)"""
Expand Down Expand Up @@ -181,10 +181,10 @@ nuget NLog.Contrib
"NLog.Contrib","1.0.0",["NLog",DependenciesFileParser.parseVersionRequirement ">= 1.0.1"]
]

let expected = """FRAMEWORK: >= NET40
let expected = """RESTRICTION: >= net40
NUGET
remote: https://www.nuget.org/api/v2
NLog (1.0.1)
NLog (1.0.1) - restriction: net40
NLog.Contrib (1.0)
NLog (>= 1.0.1)"""

Expand All @@ -198,7 +198,7 @@ NUGET
getVersion resolved.[PackageName "NLog"] |> shouldEqual "1.0.1"
resolved.[PackageName "NLog"].Settings.FrameworkRestrictions
|> getExplicitRestriction
|> shouldEqual (FrameworkRestriction.AtLeast(FrameworkIdentifier.DotNetFramework(FrameworkVersion.V4)))
|> shouldEqual (FrameworkRestriction.Exactly(FrameworkIdentifier.DotNetFramework(FrameworkVersion.V4)))

resolved
|> LockFileSerializer.serializePackages cfg.Groups.[Constants.MainDependencyGroup].Options
Expand Down
6 changes: 3 additions & 3 deletions tests/Paket.Tests/ProjectFile/TargetFrameworkSpecs.fs
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ let TestData: obj[][] =
(DotNetFramework FrameworkVersion.V4)|];
[|"Empty.fsprojtest";
(SinglePlatform(DotNetFramework FrameworkVersion.V4));
"net40-full";
"net40";
(DotNetFramework FrameworkVersion.V4)|];
[|"NewSilverlightClassLibrary.csprojtest";
(SinglePlatform(Silverlight SilverlightVersion.V5));
"sl50";
"sl5";
(Silverlight SilverlightVersion.V5)|];
[|"FSharp.Core.Fluent-3.1.fsprojtest";
portable;
"portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1";
"portable-net45+win8+wp8+wpa81";
(DotNetFramework FrameworkVersion.V4_5)|];
|]

Expand Down
41 changes: 40 additions & 1 deletion tests/Paket.Tests/Resolver/DependencyGroupsAndRestrictions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,47 @@ nuget Marten"""
getVersion resolved.[PackageName "Npgsql"] |> shouldEqual "3.1.4"

let graph6 =
graph1 @
GraphOfNuspecs [
"""<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Chessie</id>
<version>0.6.0</version>
<dependencies>
<group>
<dependency id="FSharp.Core"></dependency>
</group>
<group targetFramework=".NETFramework4.5">
<dependency id="FSharp.Core"></dependency>
</group>
<group targetFramework=".NETStandard1.6">
<dependency id="MyNetStandardDummy" version="[1.6.0, )" />
<dependency id="FSharp.Core" version="[4.0.1.7-alpha, )"></dependency>
</group>
</dependencies>
</metadata>
</package>
"""
"""<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>FSharp.Core</id>
<version>4.0.0.1</version>
</metadata>
</package>
"""
"""<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>FSharp.Core</id>
<version>4.0.1.7-alpha</version>
<dependencies>
<group targetFramework=".NETStandard1.6">
<dependency id="MyNetStandardDummy" version="[1.6.0, )" />
</group>
</dependencies>
</metadata>
</package>"""
"""<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
Expand Down
65 changes: 0 additions & 65 deletions tests/Paket.Tests/Versioning/DependencySetSpecs.fs
Original file line number Diff line number Diff line change
Expand Up @@ -10,55 +10,6 @@ open Paket.Requirements
open Paket.Domain
open Paket.TestHelpers


[<Test>]
let ``should optimize 2 restriction set with only exactly``() =
let original =
[PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V4_5)))
PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V4)))
PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V3_5)))
PackageName("P2"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V3_5)))]

let expected =
[PackageName("P1"), VersionRequirement.AllReleases,ExplicitRestriction (FrameworkRestriction.AtLeast (DotNetFramework(FrameworkVersion.V3_5)))
PackageName("P2"), VersionRequirement.AllReleases,ExplicitRestriction (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V3_5)))]

original
|> optimizeDependencies
|> shouldEqual expected

[<Test>]
let ``should optimize 2 restriction set with only exactly and client framework``() =
let original =
[PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V4)))
PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V4_5)))
PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V3_5)))
PackageName("P2"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V3_5)))]

let expected =
[PackageName("P1"), VersionRequirement.AllReleases,ExplicitRestriction (FrameworkRestriction.AtLeast (DotNetFramework(FrameworkVersion.V3_5)))
PackageName("P2"), VersionRequirement.AllReleases,ExplicitRestriction (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V3_5)))]

original
|> optimizeDependencies
|> shouldEqual expected

[<Test>]
let ``should optimize 2 restriction sets with between``() =
let original =
[PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V4)))
PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V4_5)))
PackageName("P1"), VersionRequirement.AllReleases, (FrameworkRestriction.Exactly (DotNetFramework(FrameworkVersion.V3_5)))
PackageName("P2"), VersionRequirement.AllReleases, (FrameworkRestriction.Between (DotNetFramework(FrameworkVersion.V3_5),DotNetFramework(FrameworkVersion.V4)))]

let expected =
[PackageName("P1"), VersionRequirement.AllReleases,ExplicitRestriction (FrameworkRestriction.AtLeast (DotNetFramework(FrameworkVersion.V3_5)))
PackageName("P2"), VersionRequirement.AllReleases,ExplicitRestriction (FrameworkRestriction.Between (DotNetFramework(FrameworkVersion.V3_5),DotNetFramework(FrameworkVersion.V4)))]

original
|> optimizeDependencies
|> shouldEqual expected

[<Test>]
let ``empty set filtered with empty restrictions should give empty set``() =
Set.empty
Expand Down Expand Up @@ -255,19 +206,3 @@ let ``should optimize real world restrictions 3``() =

let result = makeOrList original |> getExplicitRestriction
result |> shouldEqual expected



[<Test>]
let ``should optimize real world .NET Standard restrictions``() =
let original =
[FrameworkRestriction.AtLeast (DotNetFramework(FrameworkVersion.V4_5_1))
FrameworkRestriction.AtLeast (DotNetStandard(DotNetStandardVersion.V1_1))
FrameworkRestriction.AtLeast (DotNetStandard(DotNetStandardVersion.V1_3))]

let expected =
[FrameworkRestriction.AtLeast (DotNetFramework(FrameworkVersion.V4_5_1))
FrameworkRestriction.AtLeast (DotNetStandard(DotNetStandardVersion.V1_1))]

let result = optimizeRestrictions original
result |> shouldEqual expected