Skip to content

Commit ab24c2f

Browse files
mdellwegggainey
andauthored
Apply suggestions from code review
Co-authored-by: Grant Gainey <[email protected]>
1 parent e6ea4a8 commit ab24c2f

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

docs/sections/blog/posts/2025/release_whenever.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
date: 2025-01-03T00:00:00Z
3-
title: Whenever, Whatever based Release Cycle
3+
title: Whenever, Whatever-based Release Cycle
44
author: Matthias Dellweg
55
tags:
66
- CI/CD
@@ -10,7 +10,7 @@ tags:
1010

1111
"Release fast, release often!" is not a metaphor, it is a mantra.
1212

13-
Pulp used to be a service mainly running on premises as part of products with extremely long release cycles.
13+
Pulp used to be a service mainly running on-premises as part of products with extremely long release cycles.
1414
About two years ago, we heard rumors to add highly volatile cloud service style installations to the mix.
1515
Because releasing a new version of pulpcore or any of its many plugins was a herculean task, the rumors were accompanied by very concerning sentences like:
1616
_"We will run this service off of main branches of all the plugins."_
@@ -43,15 +43,15 @@ They asked exactly the right questions and let me shatter a fair amount of unspo
4343
Fast forward to now, they have fully adopted the idea and actively supported the effort to ultimate success.
4444

4545
But to set the stage right, we didn't start from nothing.
46-
Our project ecosystem already had the so called plugin template, that helps us to keep all the CI/CD infrastructure in a dozent of git repositories in sync.
46+
Our project ecosystem already had the so called plugin template, that helps us to keep all the CI/CD infrastructure in a dozen git repositories in sync.
4747
Also a huge amount of work has been done to turn the manual half a day per version release process into a completely automated one.
4848

4949
So standing on the shoulders of these giants, we needed to adjust the following things:
5050

5151
- Pull requests against plugins must be developed against the last released version of pulpcore, as you would do with any other library.
52-
- Not only do we not use the main branch of pulpcore in a plugins CI anymore, but also stopped using the `Required-PR` feature that, for the benefit to run against uncommitted changes, required fragile coordination of merges spanning multiple repositories.
52+
- Not only do we not use the main branch of pulpcore in a plugin's CI anymore, but also stopped using the `Required-PR` feature that, for the benefit to run against uncommitted changes, required fragile coordination of merges spanning multiple repositories.
5353
- In fact, this policy forces us to better coordinate the deprecation schedules for breaking changes and make sure other changes are additive in nature.
54-
- Since `pulp_file` and `pulp_certguard` are poster childs for `pulpcore` tests having a circular test dependency, these three components were merged into a single repository.
54+
- Since `pulp_file` and `pulp_certguard` are poster children for `pulpcore` tests having a circular test dependency, these three components were merged into a single repository.
5555
- All tests must be run on pull requests (for code changes) and nightly on main (for unexpected changes in the environment).
5656
- Performance tests are the exception here, because developer experience is very important too.
5757
- The criterion for inclusion in the main branch must be "shippable". No dependencies on unreleased code are allowed. The pull request review therefore is the last gate to inclusion in the next release.
@@ -64,7 +64,7 @@ So standing on the shoulders of these giants, we needed to adjust the following
6464
- The results of the nightlies must be made aware to the team. Being red must lead to an all hands on deck call.
6565

6666
The most astonishing side effect in all of this is, when we realized, we stopped spending about six engineer hours per week in a crowded meeting on discussing whether performing the next release is worth doing or we should delay once more.
67-
We now simply release a new y-Release of Pulpcore every tuesday given a feature is pending in main, and a z-Release on all the supported branches that recieved any backports or dependency updates.
67+
We now simply release a new Y-release of Pulpcore every Tuesday given a feature is pending in main, and a Z-release on all the supported branches that received any backports or dependency updates.
6868
We can also release a new bugfix release at any time if asked to do so.
6969
Another sign of the team fully supporting the idea is the prompt contribution of a `check_release` script to replace the manual examination of these conditions.
7070
We even automated preparing a new release branch (y-stream) and managing the patchback-labels for supported branches.
@@ -81,7 +81,7 @@ Also we still allow ourselves to delay a breaking change release (recurring ever
8181
Nothing comes for free though.
8282
The fact that we produce so many y-Releases now made it an absolute necessity to reduce the number of supported release branches.
8383
But we managed to negotiate with our downstream products that we keep a small set of them alive for their lifetime in a supported product.
84-
The ones inbetween are simply abandoned.
84+
The ones in between are simply abandoned.
8585

8686
Once again I want to express a heartfelt thank you to my team, including management, and end with reciting two very reassuring, quoteworthy and related phases I came accross on the way:
8787

0 commit comments

Comments
 (0)