Skip to content

Commit 2ceaccb

Browse files
authored
Merge pull request #4244 from schleupen/alias-fix
Aliases should not be inherited.
2 parents fafe6d0 + 0c1473b commit 2ceaccb

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/Paket.Core/PaketConfigFiles/LockFile.fs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,8 @@ type LockFile (fileName:string, groups: Map<GroupName,LockFileGroup>) =
938938
let groupName,_packageName = visitKey
939939
for dep in deps do
940940
let deps = this.GetDirectDependenciesOfSafe(groupName,dep,referencesFile.FileName)
941-
toVisit := Set.add ((groupName,dep),p,deps) !toVisit
941+
let packagageSettings = { p with Settings = { p.Settings with Aliases = Map.empty }}
942+
toVisit := Set.add ((groupName,dep),packagageSettings,deps) !toVisit
942943

943944
let emitted = HashSet<_>()
944945
[while visited.Count > 0 do

tests/Paket.Tests/InstallModel/PaketPropsTests.fs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,43 @@ group Other1
102102
| l ->
103103
Assert.Fail(sprintf "expected one ItemGroup but was '%A'" l)
104104

105+
106+
[<Test>]
107+
let ``should not inherit alias settings``() =
108+
109+
let lockFile = """NUGET
110+
remote: https://api.nuget.org/v3/index.json
111+
Argu (4.2.1)
112+
FSharp.Core (>= 3.1.2)
113+
FSharp.Core (3.1.2.5)
114+
Newtonsoft.Json (>= 11.0.2)
115+
Newtonsoft.Json (11.0.5)
116+
"""
117+
118+
let refFileContent = """
119+
Argu
120+
alias Argu.dll Argu_Alias
121+
122+
"""
123+
124+
let lockFile = LockFile.Parse("", toLines lockFile)
125+
126+
let refFile = ReferencesFile.FromLines(toLines refFileContent)
127+
128+
let packages =
129+
[ for kv in refFile.Groups do
130+
let packagesInGroup,_ = lockFile.GetOrderedPackageHull(kv.Key, refFile)
131+
yield! packagesInGroup ]
132+
133+
let (_, p, _) = packages[0]
134+
Assert.Zero(p.Settings.Aliases.Count)
135+
136+
let (_, p, _) = packages[1]
137+
Assert.Zero(p.Settings.Aliases.Count)
138+
139+
let (_, p, _) = packages[2]
140+
Assert.AreEqual(1, p.Settings.Aliases.Count)
141+
105142
[<Test>]
106143
let ``should create props file for design mode with group restrictions``() =
107144

0 commit comments

Comments
 (0)