yonaskolb / Mint

A package manager that installs and runs executable Swift packages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Allow pinning of Mint version?

bdrelling opened this issue · comments

Is there a way we can pin the Mint version within our Mintfile?

A big concern of using homebrew is that it is installed globally and without much restriction project-to-project. As new changes roll out, it would be nice to pin the version of mint without requiring the use of Brewfile or otherwise.

An example would be how Gemfile allows us to pin the version of Ruby that is run.

Missing pinning in Homebrew is one of the main reasons I created Mint 😄
Are you proposing Mint auto updating/downgrading itself?

For my purposes I usually just have a script that check what version of mint is installed and if it's not what I expect it downloads that version from Github releases.

I'm trying to think through this but without convoluting the scope of the project, but I'm not sure of the best way that we could do it.

We have a dozen repositories at SpotHero with potentially more to come, so I'm trying to think of ways to help align our tooling. We do steady but regular upgrades of our tools, so being able to have the Mintfile look something like:

Mint@0.14.2

nicklockwood/SwiftFormat@0.44.7
Realm/SwiftLint@0.39.2 

Where Mint@0.14.2 is just using the existing syntax to pin a specific version. When mint is run within a directory where a Mintfile is found, it can detect the version if applied.

I would say for starters, it can be an explicit version and not do any kind of "up to latest major" syntax, but that would also be ideal.

We could also do Mint@master for pinning to a branch.

I'm happy to try to think this through more and potentially open a PR with a proposal. What are your thoughts on having something like this?