WillAbides / bindown

MIT License
14 stars 2 forks source link

Version config files #162

Open WillAbides opened 1 year ago

WillAbides commented 1 year ago

bindown needs a way to determine which bindown versions a config file will work with.

This will come up in #161 because adding {{ .microArch }} to a template will cause earlier bindown versions to error.

This won't be a big deal for individual repositories because you can simply not add features before you start using a version of bindown that handles them. However template repositories like https://github.com/WillAbides/bindown-templates should be able to signal that they don't support older versions of bindown.

Options

bindown_version

Add something like bindown_version: '>= 4.3.0' to the config and fail with a message to upgrade when reading a config file from a version of bindown that doesn't meet the constraint.

I think this will work for non-breaking changes like #161 where new functionality is added, but this doesn't work when something is removed.

It would also be difficult to figure out what value to use for bindown_version when writing a config file.

config_version

Similar to api_version but it's about config files instead.

gedw99 commented 8 months ago

This is a good thing.

if the config version in a project is higher than the version on bindiwn then bindiwn should update to the version that that specific project needs.

if you have 2 projects at different versions then as you change into different projects the bin down is flipped.

https://github.com/kevincobain2000/gobrew Does this pattern and it’s pretty clean.