-
Notifications
You must be signed in to change notification settings - Fork 9
[associated vote ended on 2022-11-04] Change release cadence of Ansible from 'every 3 weeks' to 'every 4 weeks' #151
Comments
@felixfontein Thank you for bringing this up! I see two main benefits with aligning the ansible-core and Ansible community release cadence:
With that second point in mind, I put together an alternate potential schedule which aligns them sooner (we can refer to it as Idea B).
With this approach:
Another option (Idea C), which would consolidate release days would be having the community release on the 3 weeks after the corresponding core GA release (meaning it would correspond with the following RC). Thoughts? |
+1 for aligning with ansible-core releases and releasing every 4 weeks |
I think it's a good idea to align our releases with ansible-core, so +1 from me.
I think it might be too much to release the same day. But I don't see why we should wait a week. How about:
That is, one day after the ansible-core release? |
I'm +1 for releasing both every four weeks and making them aligned, but I don't like a three weeks (or even two weeks) delay between ansible-core and Ansible releases. I think that delay should be one day to at most a week. (I'd prefer something like 1-2 days, but if there's a majority or "let's wait longer" I think it shouldn't be more than a week.) In any case, I would avoid having the Ansible release too close (i.e. on the same day) as the ansible-core release, mainly to avoid having the Ansible release on Monday or Tuesday morning (at least Europe time). The main idea here is that collections who want to release in time for Ansible have a bit of time to finish their release; if Ansible would also be released on Monday, these collections would have to make sure thay are released by then. Since community.general is one of these collections (maybe even the only one strictly syncing to Ansible) and I'm doing the releases there, I'd prefer to be able to do them on Monday evening or even Tuesday morning (both Europe time), which would be problematic if the Ansible release would happen on Monday afternoon/evening (US time). Once it happens on Tuesday (and not in the early morning) in US time, or even later than that, there would be no potential problem :) (Of course for specific releases there can always be a longer delay, due to vacations, folks being sick, or other unforseen circumstances. That's always possible and this topic isn't about that, but more about the general idea. I hope everyone agrees :) ) |
1-2 days sounds good. One week is a bit on the late side imho. @felixfontein If one day is OK for you, I'd prefer this. But if 2 days are better for you to handle community.general releases, I won't object. But I think it should be 1 or 2 days, not more. |
I agree with @mariolenz. FWIW, this schedule is better for me as the the ansible{,-core} package maintainer in Fedora. I appreciate a predictable release schedule with ansible being released shortly after ansible-core. This way, I can locally build and test the two together and push one update. It takes more of my time when they're over a week apart, because I can't do everything together. When they're closer to 4-5 days apart, that ends up delaying the ansible-core update, because I have to reset the ansible-core update to add ansible to it, as stable Fedora package updates have a mandatory testing period. |
I don't really care much about the distance between ansible-core and Ansible releases, but more on when the Ansible release happens in the week :) As long as the release doesn't start on Tuesday early morning (US time) or before, it's fine for me (i.e. I have Tuesday morning or lunchtime to do the release, European time). Since ansible-core releases usually happen on Mondays, +1 day is fine for me. In case the ansible-core release happens only on Tuesday (sometimes it's delayed, for example if AZP has problems), I also don't mind if Ansible is released on the same day, as long as c.g is out ;-) |
@gotmax23 what you write also sounds very reasonable, I agree that the releases should generally happen soon after each other. This will definitely help all packagers (including you). @mariolenz about your schedule, the main drawback I see is that the delay between 7.0.0 and 7.1.0 would be very short - namely only one week:
What do folks think about this? We could delay 7.1.0 by a week, but then we're again making life harder for packagers. Maybe we should just try to decrease the time between ansible-core 'major' release and Ansible major release shorter (two weeks instead of the three we're currently giving it? or maybe even less eventually?). |
+1 to making the gap shorter. I don't think we should block users and distribution packagers who follow the version constraints from updating to the new ansible-core major version. |
@felixfontein +1 to your proposal and releasing Ansible close to ansible-core GA makes it easier for packagers. |
Good point @felixfontein! How about keeping the release cadence to every 3 weeks until 7.3.0 and then switch to 4 weeks? If I got the dates right, it should look like this:
This means we would release as planned until 7.3.0 and then switch to 4 weeks. No need to release sooner or later until then, and with 7.3.0 we automatically get the ansible-core release date + day. |
I agree with having the Ansible releases 1-2 days after the ansible-core release, especially given the logistics/timing reasons mentioned above. I am more in favor of having a shorter gap between ansible-core 2.14.0 and Ansible 7.0.0 (2 weeks instead of 3), and having 7.1.0 a day after 2.14.1, which I think is what @felixfontein was suggesting. That way ansible-core and Ansible community are aligned as early as possible (by 7.1.0), which makes things easier to track. |
@rooftopcellist You mean like this:
|
Including Beta/RC1 this would be:
This sounds fine with me, but we might want to add a precaution like "If we find out we need another release candidate, it will be made on 2022-11-22 and the 7.0.0 release will be delayed by a week". That way we can still react if after the RC some important enough problems are found. In any case, if we want to make this modification already now, we should vote on this as soon as possible :) |
Good point, let's add this. However, since it looks like we are more or less agreed on releasing the community package a day after ansible-core, we maybe should also make clear that "this will not delay the 7.1.0 release".
I agree, you should open a vote for this. Maybe ending November 1, so people have a few days to react on the next Bullhorn issue? |
Hmm, we still haven't started a vote, so the vote must go at least until November 3rd anyway. |
Proposal:
Does this sound good? Should we vote on it? @rooftopcellist @Andersson007 @mariolenz @gotmax23 @Ompragash If everyone is fine with it, I can start a vote tomorrow morning. (If someone thinks the vote should start before then, feel free to start the process yourself :) ) |
@felixfontein Sounds good, let's vote on it! |
Voting on this has now started: #157 |
@ansible-community/steering-committee please don't forget #157. This vote on the Ansible release cadence ends on November 4th and hasn't many votes yet. |
I did not vote on that because I am ok with any option. Posted this to ack that I read it. |
+1 for alignment |
I counted votes: 7 x +1 from SC (felixfontein markuman mariolenz gotmax23 Andersson007 russoz gundalow), 1 x + 1 from community (cybette) edit: And a +1 from @maxamillion here, but I'm not sure if we count this if it's not done in the official vote. |
@mariolenz That's the count I got as well. 👍 |
Looks like I just missed the vote, I am also in favor of that proposed schedule. I am really happy with this change, and I think it will make the ansible-core and community releases easier to manage, for many of the reasons @gotmax23 mentioned earlier. Thank you @felixfontein for bringing up and leading the discussion, and thanks to all of you for your involvement! It looks like there are some dates that need to be updated on https://docs.ansible.com/ansible/devel//roadmap/COLLECTIONS_7.html (specifically the 7.0.0 release date itself from Nov 29 --> Nov 22) I'll request that to be updated. |
@felixfontein I've opened ansible/ansible#79307 to change the roadmap. Would be great if you could check that I really got the new dates right. I would remove the |
I can confirm this. |
ansible/ansible#79307 is merged, so I think we can close this. |
Thanks everyone! |
Summary
Right now we are releasing new minor Ansible versions every three weeks (with some exceptions, like holiday seasons etc.). We originally chose the number 3 since Ansible 2.9 was also releasing every three weeks. After we decided for every three weeks, but before Ansible 2.10 got released, the core team adjusted their release schedule (for Ansible 2.9 and back then ansible-base 2.10) to release every four weeks, with a release candidate three weeks after the previous release. Back then we decided to stick to a 3-week cycle for Ansible, also to make it more obvious that ansible-base and Ansible versions can be different (back then that was brand new). We stuck to this 3-week cycle since then.
Now the version numbers of Ansible and ansible-core are sufficiently different, so we could also start to re-align the ansible-core and Ansible releases. Obviously a new major release of Ansible shouldn't happen exactly when the ansible-core 'major' release happens, but we already reduced that to three weeks (https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/roadmap/COLLECTIONS_7.rst#release-schedule), as opposed to the five weeks we had for ansible-core 2.13 / Ansible 6, and even longer durations before.
So one potential idea would be to start releasing Ansible every four weeks, to align with ansible-core releases. Due to the three-week duration between the two major releases, one could also first start with new releases every three weeks until the releases are back aligned, and then release every four weeks.
With three weeks between Ansible releases, the schedule for Ansible 7 / ansible-core 2.14 looks as follows:
As you can see after a few releases Ansible catches up with ansible-core, and could from that point on be released always after a ansible-core release.
What do you think?
CC @Ompragash @rooftopcellist
The text was updated successfully, but these errors were encountered: