Switch to using nightly images#424
Conversation
|
This is included in #280 as foreman_rh_cloud is needed |
|
Yes, please :) |
|
@evgeni @stejskalleos @arvind4501 -- #391 presents a solid reason to switch to using nightly images where the code base has an architectural deviation from release-based images. As more developers start contributing here, I think we need to be able to pull in the nightly code bases. |
|
I think having nightly pinned is good for development. Thinking out loud, at some point we need to think how can we ship foremanctl with stable images(3.18, 3.19) or maybe align foremanctl releases with foreman, but not necessarily today. |
|
Please keep in mind that this change means:
That shouldn't mean I am against that change, quite the opposite. But it's more than one line :/ |
Arguably,
Do I translate this correctly to "foremanctl needs to be in the branching procedure for Foreman releases" ?
This translates to, we gotta make this nifty version thing nightly aware?
|
The code should be used in CI, yes.
Correct
Yes, albeit I am not sure this is actually possible. |
I have an initial attempt at that: theforeman/foreman-oci-images#27 Nightly has changed behavior, so a test is failing. However, that change can't be made here until the repository relies on the nightly images. However, we can't build the nightly images because the tests fail.... |
I am not following how this is affected by using images built based on the "nightly" code bases. |
Not the images, but the fact we use stable branches. Probably easiest is to go back to a normal |
In forklift, we worked around this by annotating the tests with data which component versions they apply to. Should we do something similar here? Or just drop the |
I think you are asking a big question here: do we want For tests, I feel like they should be smarter and only execute if the feature is present. This is what I tried to do with |
|
Yes and no. "Run IOP tests only if IOP feature is enabled" makes sense, but what if the set of tests for said feature vary by version? |
Good question. I think that goes back to my other question: do we want |
If I run make, right now I get I get that means we cannot pre-emptively update the version to indicate what the next target version is. However, if we always work from the viewpoint that if there is a git hash it's saying it's version X + some amount of nightly git bits. I think that works pretty good for a mental model. |
I think we don't need it to be multi version if we branch accordingly.
It should be 2.0.0-… - you probably are missing a rebase, but that's not important for the argument.
And exactly this won't work (automatically) once we move to stable branches as |
|
Thinking and playing around with this more I see two strategies: Direct Version ManagementThis would be reverting to the classical approach of keeping the version number in Keeping
|
|
Given that both strategies involve touching |
For Foreman I already thought about this and we have the same problem. There we have commits like theforeman/foreman@ba8f268 and I'd suggest to re-implement those as git tags when using Big question: what is that develop version? Do we want to start tying the foremanctl version numbers to Foreman or stick to foremanctl's own versions? It would be easier for users to see what Foreman version they will get when they install it. |
Seeing if I follow. You are proposing to tag the repo when we "bump" the version to a development version. So we might have:
|
Kind of yes. Perhaps this helps ---
config:
gitGraph:
mainBranchName: develop
---
gitGraph
commit tag: "3.18-develop"
commit
commit
branch 3.18-stable
checkout 3.18-stable
commit
commit tag: "3.18.0-rc1"
checkout develop
commit tag: "3.19-develop"
commit
So at the end I'd expect |
7aeaf71 to
c6a0d73
Compare
c6a0d73 to
22cfae0
Compare
|
Updated with a release process. I'd like to propose the order of operations:
|
| git push --set-upstream origin HEAD | ||
| ``` | ||
|
|
||
| 2. Update `src/vars/images.yml` on the stable branch to reference the release images (e.g., `foreman-3.18`). |
There was a problem hiding this comment.
Perhaps suggest a command?
sed -i '/container_tag_stream/ s/nightly/foreman-3.18/' src/vars/images.yml
The mainline development branch for the installer should use the most up to date images as we iterate. This would change to use the nightly image tags going foward.