Problem
At the moment we can install Paket as a global .Net Core tool with dotnet tool install paket -g. It's really nice delivery strategy consistent with the direction in which whole .Net world is moving and consistent with the tool distribution strategies in many other ecosystems.
However it currently installs particular version of Paket which means
- You can't pin version of Paket in the repo - it's not respecting Paket version pinning in
paket.dependecies file
- You don't get updates if you don't pin Paket - getting updates often was thing in Paket since I started using it - either by old school build scripts calling
paket.bootstrapper.exe back in the days, or by using Bootstrapper in magic mode nowadays.
This is hugely problematic because it's different from the "normal" Paket behavior.
Proposed Solution
My proposal would be distributing Paket.Bootstrapper (in magic mode, called paket) instead of Paket as a global tool.
This would solve per-repo versioning problem we have right now - Bootstrapper in magic mode is either respecting pinning in paket.dependencies files or getting latest version. In such case updates of the Paket .Net Tool (dotnet tool update paket -g) would be necessary only when we have Bootstrapper update (which is not as often as Paket update)
Work plan
CC: @forki @isaacabraham @baronfel @vbfox @enricosada
Problem
At the moment we can install Paket as a global .Net Core tool with
dotnet tool install paket -g. It's really nice delivery strategy consistent with the direction in which whole .Net world is moving and consistent with the tool distribution strategies in many other ecosystems.However it currently installs particular version of Paket which means
paket.dependeciesfilepaket.bootstrapper.exeback in the days, or by using Bootstrapper in magic mode nowadays.This is hugely problematic because it's different from the "normal" Paket behavior.
Proposed Solution
My proposal would be distributing Paket.Bootstrapper (in magic mode, called
paket) instead of Paket as a global tool.This would solve per-repo versioning problem we have right now - Bootstrapper in magic mode is either respecting pinning in
paket.dependenciesfiles or getting latest version. In such case updates of the Paket .Net Tool (dotnet tool update paket -g) would be necessary only when we have Bootstrapper update (which is not as often as Paket update)Work plan
paket(due to behavior of the Bootstrapper Magic Mode this shouldn't be a breaking change for users)CC: @forki @isaacabraham @baronfel @vbfox @enricosada