Closed MattiSG closed 1 year ago
OpenFisca-Core[web-api] >= 35.0.0, < 36.0.0
to OpenFisca-Core[web-api] >= 35.0.0, < 37.0.0
, publish OpenFisca-Country-Template@4
.OpenFisca-Country-Template >= 3.8.0, < 4
to OpenFisca-Country-Template >= 3.8.0, < 5
, publish OpenFisca-Extension-Template@2
.Add a dependency group in Country Template and Extension Template called something like future
that removes the upper bound version constraint on the Core, making it easier to test upgrades by changing the dependency in Core from openfisca-country-template
to openfisca-country-template[future]
.
future
(or testing
, or optimistic
, or latest-core
) that overrides the dependency to OpenFisca-Core[web-api] >= 35.0.0, < 36.0.0
to OpenFisca-Core[web-api] >= 35.0.0
.OpenFisca-Country-Template
to OpenFisca-Country-Template[future]
.OpenFisca-Core[web-api] >= 35.0.0, < 36.0.0
to OpenFisca-Core[web-api] >= 35.0.0, < 37.0.0
, publish OpenFisca-Country-Template@4
.I like suggestion 2 as it imposes less constraints at each step of the process and report those efforts to where knowledge can be found (I use core but do not use the web-api for example).
Remove constraint on packages (#1160)
For smoke testing purposes, the Core has a dependency on both Country Template and Extension Template. This enables running their test suites with the latest Core code.
While powerful and useful, this technique leads to a major obstacle in delivering major releases of the Core. Indeed, both of these packages in turn have a dependency to the core, and this dependency is pinned to a specific major version to ensure stability.
These two points combined create a circular dependency that prevents testing major releases: if I bump the major Core version to version N, the Template dependencies bring irresolvable constraints to version N-1.
This is typically handled by creating a new branch for each repository, relaxing the version constraint, and updating the core dependency to these new branches. This means that every such change needs temporary modifications on at least three repositories, making them very impractical. See for example https://github.com/openfisca/openfisca-core/pull/989, leading to https://github.com/openfisca/country-template/pull/128 and https://github.com/openfisca/extension-template/pull/47.
A solution to enable testing from the Core with any Core version would significantly ease the delivery of new major versions, which will be needed to finally unblock many PRs and features that have been waiting for way too long.