-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Have komodo build a release from root packages #148
Comments
Thanks for the nice write up 👏 Probably a stupid question, but if you then need to deploy a bug fix in libres; how would you go about it? |
Alternative proposal: Keep dependency list as is:
However, package that has versions which have incompatible versions are marked as such:
Then komodo goes over every dependency of To generate a new release file from scratch, we can use the "public" packages as described in
Dealing with semver breakage: We just don't. If libres 10.0 is released and is incompatible with current ert, then don't add it to All other problems can be found during testing. Backporting fixes: |
You would have to create a new ERT release as well. |
I back @dotfloat's proposal. If we have a way to share our algorithm for creating the dependency tree, tooling can easily be built on top of it. |
Rationale:
For any given root package (like
ert-2.4.0
), its dependencies are not deducible from a repository alone. Currently, a repository only describes dependencies as sets of packages, and the actual packages in that set of dependencies are defined in a release.This is unfortunate for a bunch of reasons, but mostly social. For example, if
ert-2.4.0
is to depend onlibres-4.1.1
, a bump fromlibres-4.1.0
, a release manager can and will not bumpert
, but simply bumplibres
. I.e.ert-2.4.0
depends not only onlibres-4.1.0
but alsolibres-4.1.1
. This creates ambiguity; what is the reallibres
dependency ofert-2.4.0
? This varies from release to release, such that to reason aboutert
you also need to reason about any given release in which it reside.Technically, it is cumbersome, because without releases, the dependency graph is woefully incomplete.
Proposal:
Ideally, a release is a set of root packages (ert-2.4.9, everest-4.5.6), and all the root dependencies are deduced from a repository.
For the case above, in order to have
ert-2.4.0
depend on a newerlibres
, you would need to edit the repository directly, which will be severely frowned upon. If the released packages in the repository are considered immutable, and you can only create releases of root packages, you're forced to bumpert
as well.For this to work, we need to
- libres: 2.4.0
or- libres: 2.4
ert
will thusly look like this:#70 would be easier to solve, since we get a concept of a root package.
The text was updated successfully, but these errors were encountered: