Skip to content

Commit

Permalink
Bump version to 7.0.0-alpha011
Browse files Browse the repository at this point in the history
  • Loading branch information
forki committed Feb 7, 2022
1 parent 90d548a commit 6ee8f54
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 36 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-alpha010 - 2022-12-07
#### 7.0.0-alpha011 - 2022-12-07
* Support as .NET 6.0 tool
* Auto-Restore after paket install an paket update

Expand Down
21 changes: 17 additions & 4 deletions src/Paket.Core/Common/Utils.fs
Original file line number Diff line number Diff line change
Expand Up @@ -451,8 +451,19 @@ type PackagesFolderGroupConfig =
parentPath () |> ResolvedPackagesFolder.ResolvedFolder
static member Default = DefaultPackagesFolder


let RunInLockedAccessMode(lockedFolder,action) =
let runDotnet arguments =
let result =
let p = new System.Diagnostics.Process()
p.StartInfo.FileName <- "dotnet"
p.StartInfo.Arguments <- arguments
p.Start() |> ignore
p.WaitForExit()
p.ExitCode

if result <> 0 then
failwithf "dotnet %s failed" arguments

let RunInLockedAccessMode(lockedFolder,lockedAction: unit -> bool) =
if not (Directory.Exists lockedFolder) then
Directory.CreateDirectory lockedFolder |> ignore

Expand Down Expand Up @@ -523,10 +534,12 @@ let RunInLockedAccessMode(lockedFolder,action) =
try
acquireLock DateTime.Now (TimeSpan.FromMinutes 10.) 100

let result = action()
let runDotNetRestore = lockedAction()

releaseLock 5
result
if runDotNetRestore then
tracefn "Calling dotnet restore"
runDotnet "restore"
with
| _ ->
releaseLock 5
Expand Down
14 changes: 9 additions & 5 deletions src/Paket.Core/Installation/RestoreProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -594,14 +594,15 @@ let RestoreNewSdkProject lockFile resolved groups (projectFile:ProjectFile) targ
let projectFileInfo = FileInfo projectFile.FileName
let objDirectory = objDirectory(projectFileInfo, outputPath)

RunInLockedAccessMode(
RunInLockedAccessMode (
objDirectory.FullName,
(fun () ->
createAlternativeNuGetConfig (projectFileInfo, objDirectory)
createProjectReferencesFiles lockFile projectFile referencesFile resolved groups targetFrameworks objDirectory
referencesFile
createProjectReferencesFiles lockFile projectFile referencesFile resolved groups targetFrameworks objDirectory
false
)
)
)
referencesFile

let internal getStringHash (s:string) =
use sha256 = System.Security.Cryptography.SHA256.Create()
Expand Down Expand Up @@ -856,6 +857,7 @@ let Restore(dependenciesFileName,projectFile:RestoreProjectOptions,force,group,i
let updatedCache, cache, lockFileHash, canEarlyExit = readCache()
if canEarlyExit then
tracefn "The last restore was successful. Nothing left to do."
false
else
if verbose then
verbosefn "Checking if restore hash is up-to-date"
Expand All @@ -882,5 +884,7 @@ let Restore(dependenciesFileName,projectFile:RestoreProjectOptions,force,group,i
let restoreCacheFile = Path.Combine(root, Constants.PaketRestoreHashFilePath)
writeRestoreCache restoreCacheFile updatedCache
writeGitignore restoreCacheFile
| None -> ())
| None ->
()
false)
)
20 changes: 3 additions & 17 deletions src/Paket.Core/Installation/UpdateProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -231,18 +231,6 @@ let SelectiveUpdate(dependenciesFile : DependenciesFile, alternativeProjectRoot,
let hasChanged = lockFile.Save()
lockFile,hasChanged,updatedGroups

let runDotnet arguments =
let result =
let p = new System.Diagnostics.Process()
p.StartInfo.FileName <- "dotnet"
p.StartInfo.Arguments <- arguments
p.Start() |> ignore
p.WaitForExit()
p.ExitCode

if result <> 0 then
failwithf "dotnet %s failed" arguments

/// Smart install command
let SmartInstall(dependenciesFile:DependenciesFile, updateMode, options : UpdaterOptions) =
let lockFile,hasChanged,updatedGroups = SelectiveUpdate(dependenciesFile, options.Common.AlternativeProjectRoot, updateMode, options.Common.SemVerUpdateMode, options.Common.Force)
Expand Down Expand Up @@ -279,16 +267,14 @@ let SmartInstall(dependenciesFile:DependenciesFile, updateMode, options : Update
let scripts = LoadingScripts.ScriptGeneration.constructScriptsFromData depCache groupsToGenerate options.Common.ProvidedFrameworks options.Common.ProvidedScriptTypes
for script in scripts do
script.Save rootDir


let mutable runDotNetRestore = false
if not options.NoInstall then
let mutable runDotNetRestore = false
for project, _ in projectsAndReferences do
let toolsVersion = project.GetToolsVersion()
if toolsVersion >= 15.0 then
runDotNetRestore <- true
if runDotNetRestore then
tracefn "Calling dotnet restore"
runDotnet "restore"
runDotNetRestore

/// Update a single package command
let UpdatePackage(dependenciesFileName, groupName, packageName : PackageName, newVersion, options : UpdaterOptions) =
Expand Down
1 change: 1 addition & 0 deletions src/Paket.Core/PackageManagement/AddProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ let private add installToProjects addToProjectsF dependenciesFileName groupName
tracefn "Resolved package '%s' to version %s" package.Name resolved.Version.AsString
| None ->
traceWarnfn "Could not find package %s in group %s" package.Name groupName.Name
installAfter

// Add a package with the option to add it to a specified project.
let AddToProject(dependenciesFileName, groupName, package, version, options : InstallerOptions, projectName, installAfter, runResolver, packageKind) =
Expand Down
1 change: 1 addition & 0 deletions src/Paket.Core/PackageManagement/RemoveProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ let private remove removeFromProjects (dependenciesFileName: string) alternative
let updatedGroups = Map.add groupName 0 Map.empty
InstallProcess.Install(InstallerOptions.CreateLegacyOptions(force, Requirements.BindingRedirectsSettings.Off, false, false, SemVerUpdateMode.NoRestriction, false, false, [], [], None), false, dependenciesFile, lockFile, updatedGroups)
GarbageCollection.CleanUp(dependenciesFile, lockFile)
installAfter

/// Removes a package with the option to remove it from a specified project.
let RemoveFromProject(dependenciesFileName, groupName, packageName:PackageName, force, projectName, installAfter) =
Expand Down
24 changes: 15 additions & 9 deletions src/Paket.Core/PublicAPI.fs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ type Dependencies(dependenciesFileName: string) =
fun () ->
emptyDir (Path.Combine(dependencies.RootPath,Constants.DefaultPackagesFolderName))
emptyDir (Path.Combine(dependencies.RootPath,Constants.PaketFilesFolderName))
false
)

emptyDir Constants.UserNuGetPackagesFolder
Expand Down Expand Up @@ -90,6 +91,7 @@ type Dependencies(dependenciesFileName: string) =
fun () ->
PaketEnv.init directory
|> returnOrFail
false
)

#if !NO_BOOTSTRAPPER
Expand All @@ -106,6 +108,7 @@ type Dependencies(dependenciesFileName: string) =
fun () ->
PaketEnv.initWithContent sources additional directory
|> returnOrFail
false
)

#if !NO_BOOTSTRAPPER
Expand Down Expand Up @@ -138,8 +141,8 @@ type Dependencies(dependenciesFileName: string) =
>>= PaketEnv.ensureNotInStrictMode
>>= Simplifier.simplify interactive
|> returnOrFail

|> Simplifier.updateEnvironment
false
)

/// Get path to dependencies file
Expand Down Expand Up @@ -199,7 +202,7 @@ type Dependencies(dependenciesFileName: string) =
RunInLockedAccessMode(
Path.Combine(this.RootPath,Constants.PaketFilesFolderName),
fun () ->
AddProcess.AddGithub(dependenciesFileName, groupName, repository, file, version, options))
AddProcess.AddGithub(dependenciesFileName, groupName, repository, file, version, options); false)

/// Adds the given git repository to the dependencies file
member this.AddGit(groupName, repository) =
Expand All @@ -214,7 +217,7 @@ type Dependencies(dependenciesFileName: string) =
RunInLockedAccessMode(
this.RootPath,
fun () ->
AddProcess.AddGit(dependenciesFileName, groupName, repository, version, options))
AddProcess.AddGit(dependenciesFileName, groupName, repository, version, options); false)

/// Adds the given package with the given version to the dependencies file.
member this.AddToProject(groupName, package: string,version: string,force: bool, withBindingRedirects: bool, cleanBindingRedirects: bool, createNewBindingFiles:bool, projectName: string, installAfter: bool, semVerUpdateMode, touchAffectedRefs): unit =
Expand All @@ -237,19 +240,19 @@ type Dependencies(dependenciesFileName: string) =
member this.AddCredentials(source: string, username: string, password : string, authType : string) : unit =
RunInLockedAccessMode(
Path.Combine(this.RootPath,Constants.PaketFilesFolderName),
fun () -> ConfigFile.askAndAddAuth source username password authType false |> returnOrFail )
fun () -> ConfigFile.askAndAddAuth source username password authType false |> returnOrFail; false)

/// Adds credentials for a Nuget feed
member this.AddCredentials(source: string, username: string, password : string, authType : string, verify : bool) : unit =
RunInLockedAccessMode(
Path.Combine(this.RootPath,Constants.PaketFilesFolderName),
fun () -> ConfigFile.askAndAddAuth source username password authType verify |> returnOrFail )
fun () -> ConfigFile.askAndAddAuth source username password authType verify |> returnOrFail; false)

/// Adds a token for a source
member this.AddToken(source : string, token : string) : unit =
RunInLockedAccessMode(
Path.Combine(this.RootPath,Constants.PaketFilesFolderName),
fun () -> ConfigFile.AddToken(source, token) |> returnOrFail)
fun () -> ConfigFile.AddToken(source, token) |> returnOrFail; false)

/// Installs all dependencies.
member this.Install(force: bool) = this.Install(force, false, false, false, false, SemVerUpdateMode.NoRestriction, false, false, [], [], None)
Expand Down Expand Up @@ -456,20 +459,23 @@ type Dependencies(dependenciesFileName: string) =
if paketFileName.Exists then
paketFileName.Delete()
File.Move(bootStrapperFileName,paketFileName.FullName)
false
with
| _ ->())
| _ ->
false
)

/// Pulls new paket.targets and bootstrapper and puts them into .paket folder.
member this.TurnOnAutoRestore(): unit =
RunInLockedAccessMode(
Path.Combine(this.RootPath,Constants.PaketFilesFolderName),
fun () -> VSIntegration.TurnOnAutoRestore |> this.Process)
fun () -> VSIntegration.TurnOnAutoRestore |> this.Process; false)

/// Removes paket.targets file and Import section from project files.
member this.TurnOffAutoRestore(): unit =
RunInLockedAccessMode(
Path.Combine(this.RootPath,Constants.PaketFilesFolderName),
fun () -> VSIntegration.TurnOffAutoRestore |> this.Process)
fun () -> VSIntegration.TurnOffAutoRestore |> this.Process; false)

/// Returns the installed version of the given package.
member this.GetInstalledVersion(packageName: string): string option =
Expand Down

0 comments on commit 6ee8f54

Please sign in to comment.