Tool Versioning
See original GitHub issueTo make sure builds are repeatable for all users and that upstream changes don’t impact the build process I always peg tools to particular versions, e.g:
#tool nuget:?package=Foo.Bar.Baz&version=1.0.0
This works well except in one particular case. Assume upstream makes significant backwards-incompatible changes and I update the build to support those changes. In that case I’ll bump the version number as necessary:
#tool nuget:?package=Foo.Bar.Baz&version=2.0.0
This will then work fine for fresh clones of the project, but for anyone updating an existing clone, the installed 1.0.0
version of the tool will persist. Thus their build will break until they delete the tools/Foo.Bar.Baz
directory to force an update to 2.0.0
An “easy” solution would be to add the version to the directory so that instead of just tools/Foo.Bar.Baz
you would have tools/Foo.Bar.Baz.1.0.0
and tools/Foo.Bar.Baz.2.0.0
. However, that complicates resolving which tool to use if multiple copies may exist. #736 may be relevant here.
Thoughts?
Issue Analytics
- State:
- Created 8 years ago
- Reactions:3
- Comments:13 (7 by maintainers)
Top GitHub Comments
@saasen this was the issue that I was referring to: https://github.com/cake-build/cake/issues/787 but it got bumped from 0.18.0 to 0.19.0.
@saasen This is solved by putting tool dependencies in the
packages.config
and using the latest bootstrapper from here. Changes to thepackages.config
and now MD5 checked and tools and re-downloaded if the versions change.