Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Update specifying version does not pin version in paket.dependencies
  • Loading branch information
mrinaldi committed Aug 13, 2015
commit c06cdc9352a53c5647b2e2bd57541154036386ef
2 changes: 1 addition & 1 deletion src/Paket.Core/PublicAPI.fs
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ type Dependencies(dependenciesFileName: string) =
member private this.Install(options: InstallerOptions): unit =
Utils.RunInLockedAccessMode(
this.RootPath,
fun () -> UpdateProcess.SmartInstall(dependenciesFileName, false, None,
fun () -> UpdateProcess.SmartInstall(DependenciesFile.ReadFromFile(dependenciesFileName), false, None,
{ UpdaterOptions.Default with Common = options }))

/// Creates a paket.dependencies file with the given text in the current directory and installs it.
Expand Down
29 changes: 15 additions & 14 deletions src/Paket.Core/UpdateProcess.fs
Original file line number Diff line number Diff line change
Expand Up @@ -118,31 +118,32 @@ let SelectiveUpdate(dependenciesFile : DependenciesFile, updateAll, exclude, for
lockFile

/// Smart install command
let SmartInstall(dependenciesFileName, updateAll, exclude, options : UpdaterOptions) =
let root = Path.GetDirectoryName dependenciesFileName
let projects = InstallProcess.findAllReferencesFiles root |> returnOrFail
let dependenciesFile = DependenciesFile.ReadFromFile(dependenciesFileName)

let SmartInstall(dependenciesFile, updateAll, exclude, options : UpdaterOptions) =
let lockFile = SelectiveUpdate(dependenciesFile, updateAll, exclude, options.Common.Force)

let root = Path.GetDirectoryName dependenciesFile.FileName
let projects = InstallProcess.findAllReferencesFiles root |> returnOrFail

if not options.NoInstall then
InstallProcess.InstallIntoProjects(
dependenciesFile.GetAllPackageSources(),
options.Common, lockFile, projects)

/// Update a single package command
let UpdatePackage(dependenciesFileName, packageName : PackageName, newVersion, options : UpdaterOptions) =
match newVersion with
| Some v ->
DependenciesFile.ReadFromFile(dependenciesFileName)
.UpdatePackageVersion(packageName, v)
.Save()
| None -> tracefn "Updating %s in %s" (packageName.ToString()) dependenciesFileName
let dependenciesFile = DependenciesFile.ReadFromFile(dependenciesFileName)

SmartInstall(dependenciesFileName, false, Some(NormalizedPackageName packageName), options)
let dependenciesFile =
match newVersion with
| Some v -> dependenciesFile.UpdatePackageVersion(packageName, v)
| None ->
tracefn "Updating %s in %s" (packageName.ToString()) dependenciesFileName
dependenciesFile

SmartInstall(dependenciesFile, false, Some(NormalizedPackageName packageName), options)

/// Update command
let Update(dependenciesFileName, options : UpdaterOptions) =
let lockFileName = DependenciesFile.FindLockfile dependenciesFileName
let dependenciesFile = DependenciesFile.ReadFromFile(dependenciesFileName)

SmartInstall(dependenciesFileName, true, None, options)
SmartInstall(dependenciesFile, true, None, options)