Description
Verification
- This issue's title and/or description do not reference a single formula e.g.
brew install wget
. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.
Provide a detailed description of the proposed feature
Formulae should have an (optional?) compatibility_version
field. Alternative suggested names for this field are api_version
or abi_version
.
The compatibility_version
field should capture suitability for use as a dependency. In particular, if a formula has a compatibility_version
of 1
, then it need not be upgraded when installing or upgrading dependencies as long as dependencies are known to work with versions of the formula that have compatibility_version 1
.
A crucial part of this feature involves including CI testing so that:
compatibility_version
is bumped whenever neededcompatibility_version
is not bumped when a bump is not needed
To do the above, we would likely need to run the following dependent tests (or something similar to them):
If compatibility_version
is bumped, we need to check that each dependent is broken when using the previous compatibility_version
, but is not broken under the newer compatibility_version
.
If compatibility_version
is not bumped, then we need to check that each dependent still works when using the oldest bottles that have the same compatibility_version
.
What is the motivation for the feature?
This should help minimise the number of formulae that brew {install,upgrade} foo
needs to upgrade to ensure that user installs are not broken.
How will the feature be relevant to at least 90% of Homebrew users?
This should help address a pain point that many users have expressed many times over the years.
What alternatives to the feature have been considered?
Doing nothing.