Skip to content

Commit

Permalink
Bump version to 7.0.0-alpha014
Browse files Browse the repository at this point in the history
  • Loading branch information
forki committed Feb 9, 2022
1 parent 12bb526 commit cacd61f
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 17 deletions.
2 changes: 1 addition & 1 deletion RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#### 7.0.0-alpha013 - 2022-12-08
#### 7.0.0-alpha014 - 2022-12-09
* Support as .NET 6.0 tool
* Auto-Restore after paket install an paket update

Expand Down
4 changes: 2 additions & 2 deletions src/Paket.Core/Installation/InstallProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ let installForDotnetSDK root (project:ProjectFile) =
project.AddImportForPaketTargets(relativePath)

/// Installs all packages from the lock file.
let InstallIntoProjects(options : InstallerOptions, forceTouch, dependenciesFile, lockFile : LockFile, projectsAndReferences : (ProjectFile * ReferencesFile) list, updatedGroups, touchedPackages:((GroupName * PackageName) list) option) =
let InstallIntoProjects(options : InstallerOptions, forceTouch, dependenciesFile, lockFile : LockFile, projectsAndReferences : (ProjectFile * ReferencesFile) list, updatedGroups, touchedPackages:((GroupName * PackageName * (SemVerInfo option) * (SemVerInfo option)) list) option) =
let packagesToInstall =
if options.OnlyReferenced then
projectsAndReferences
Expand Down Expand Up @@ -505,7 +505,7 @@ let InstallIntoProjects(options : InstallerOptions, forceTouch, dependenciesFile
| Some touchedPackages ->
let packageInstalled =
touchedPackages
|> Seq.exists project.HasPackageInstalled
|> Seq.exists (fun (g,p,_,_) -> project.HasPackageInstalled (g,p))
if packageInstalled then
touchedProjects.Add project.FileName |> ignore
| _ ->
Expand Down
36 changes: 24 additions & 12 deletions src/Paket.Core/Installation/UpdateProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -231,36 +231,48 @@ let SelectiveUpdate(dependenciesFile : DependenciesFile, alternativeProjectRoot,
let hasChanged = lockFile.Save()
let touchedPackages =
[
for group1 in oldLockFile.Groups do
for group1 in oldLockFile.Groups do
for package1 in group1.Value.Resolution do
match lockFile.Groups |> Map.tryFind group1.Key with
| None -> group1.Key, package1.Key
| None ->
group1.Key, package1.Key, Some package1.Value.Version, None
| Some group2 ->
match group2.Resolution |> Map.tryFind package1.Key with
| Some package2 when package2.Version <> package1.Value.Version ->
| Some package2 when package2.Version = package1.Value.Version ->
()
| Some package2 ->
group1.Key, package1.Key, Some package1.Value.Version, Some package2.Version
| _ ->
group1.Key, package1.Key
for group1 in lockFile.Groups do
group1.Key, package1.Key, Some package1.Value.Version, None

for group1 in lockFile.Groups do
for package1 in group1.Value.Resolution do
match oldLockFile.Groups |> Map.tryFind group1.Key with
| None -> group1.Key, package1.Key
| None ->
group1.Key, package1.Key, None, Some package1.Value.Version
| Some group2 ->
match group2.Resolution |> Map.tryFind package1.Key with
| Some package2 when package2.Version <> package1.Value.Version ->
| Some package2 when package2.Version = package1.Value.Version ->
()
| Some package2 ->
group1.Key, package1.Key, Some package2.Version, Some package1.Value.Version
| _ ->
group1.Key, package1.Key
group1.Key, package1.Key, None, Some package1.Value.Version
]
|> List.distinct
|> List.sort

if not (List.isEmpty touchedPackages) then
tracefn "Updated packages:"
for g,packages in touchedPackages |> List.groupBy fst do
for g,packages in touchedPackages |> List.groupBy (fun (g,_,_,_) -> g) do
tracefn " Group: %O" g
for p in packages do
tracefn " - %O" p
for _,p,oldVersion,newVersion in packages do
match oldVersion, newVersion with
| Some oldV, Some newV -> tracefn " - %O: %O -> %O" p oldV newV
| None, Some newV -> tracefn " - %O: %O (added)" p newV
| Some oldV, None -> tracefn " - %O: %O (removed)" p oldV
| None, None -> tracefn " - %O" p

lockFile,hasChanged,updatedGroups,touchedPackages

/// Smart install command
Expand All @@ -270,7 +282,7 @@ let SmartInstall(dependenciesFile:DependenciesFile, updateMode, options : Update
let root = Path.GetDirectoryName dependenciesFile.FileName
let projectsAndReferences = RestoreProcess.findAllReferencesFiles root |> returnOrFail

if not options.NoInstall then
if not options.NoInstall then
tracefn "Installing into projects:"
let forceTouch = hasChanged && options.Common.TouchAffectedRefs
InstallProcess.InstallIntoProjects(options.Common, forceTouch, dependenciesFile, lockFile, projectsAndReferences, updatedGroups, Some touchedPackages)
Expand Down
15 changes: 13 additions & 2 deletions src/Paket.Core/PackageManagement/AddProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ let private add installToProjects addToProjectsF dependenciesFileName groupName
existingDependenciesFile
.Add(groupName,package,version, Requirements.InstallSettings.Default, packageKind)

let projects = seq { for p in ProjectFile.FindAllProjects(Path.GetDirectoryName dependenciesFile.FileName) -> p } // lazy sequence in case no project install required
let projects =
seq { for p in ProjectFile.FindAllProjects(Path.GetDirectoryName dependenciesFile.FileName) -> p } // lazy sequence in case no project install required
|> Seq.cache

if not runResolver then
dependenciesFile.Save()
Expand All @@ -59,8 +61,17 @@ let private add installToProjects addToProjectsF dependenciesFileName groupName
match lockFile with
| None -> ()
| Some lockFile ->
let newVersion =
match lockFile.Groups |> Map.tryFind groupName with
| None ->
None
| Some group ->
match group.Resolution |> Map.tryFind package with
| Some package -> Some package.Version
| None -> None

let touchedGroups = Map.empty.Add(groupName,"")
InstallProcess.Install(options, false, dependenciesFile, lockFile, touchedGroups, Some [groupName, package])
InstallProcess.Install(options, false, dependenciesFile, lockFile, touchedGroups, Some [groupName, package, None, newVersion])
GarbageCollection.CleanUp(dependenciesFile, lockFile)
else
let updateMode = PackageResolver.UpdateMode.InstallGroup groupName
Expand Down

0 comments on commit cacd61f

Please sign in to comment.