ADR-006: Branching strategy for rhdh-local development - #18
Conversation
Propose a `dev` branch strategy for rhdh-local to unblock next-release development while keeping `main` stable for end users. Assisted-by: Claude
51944a2 to
cbef9c1
Compare
GitHub's Mermaid renderer requires `gitGraph` (camelCase), not `gitgraph` (lowercase). Assisted-by: Claude
Add Slack link for PM requirement, clarify upgrade path for existing users, and improve phrasing in context section. Assisted-by: Claude
Clarify that changing the GitHub default branch does not break existing clones; the real issue is that main would need to carry unstable content. Assisted-by: Claude
Add release-1.10, release-2.2 branches and patch tags (v1.10.2, v2.1.1) to all diagrams to show the full branching strategy across multiple release cycles. Assisted-by: Claude
9a8d3f5 to
b175f41
Compare
Add main merges for v2.1.1 and v2.2 GA, add v1.10.3 patch tag, extend dev to 2.3 work, and remove duplicate commit id text where a tag already shows the same version. Assisted-by: Claude
b175f41 to
3f15d4e
Compare
Shorten labels to reduce text overlap and add ★ default markers to Alt 1 and Alt 3 diagrams to clarify which branch is the default at each point. Assisted-by: Claude
Update Alt 1 diagram with release-1.10 as current default, add ★ default markers to Alt 1 and Alt 3, tighten Alt 2 rejection rationale, consolidate divergence negatives, add integration point positive, and trim outdated points. Assisted-by: Claude
Move v1.10.0 tag to release-1.10 branch with default marker, and lowercase "Alternatives considered" heading. Assisted-by: Claude
Interleave release-1.10 patch tags with dev/main 2.1 work to make it clear that maintenance releases happen in parallel with new development. Assisted-by: Claude
Use mainBranchName init config to show "main (default)" in diagrams where the default branch does not change. Assisted-by: Claude
Both the Decision and Alt 2 diagrams used mainBranchName config to rename main to "main (default)" but had no initial commit before the first branch statement, causing GitHub to error with "Current branch (main (default)) has no commits". Assisted-by: Claude
Alt 1: clarify that existing users would need to switch branches at each GA, defeating the simple "pull to upgrade" workflow. Alt 2: focus on the practical downside that the development target branch changes every release cycle, vs. a stable dev branch. Assisted-by: Claude
Assisted-by: Claude
Consistent with Decision and Alt 2 diagrams that label the default branch explicitly. Assisted-by: Claude
Assisted-by: Claude
gazarenkov
left a comment
There was a problem hiding this comment.
There is one important difference between "usual" flow and rhdh-local we need to emphasize (it may look obvious now):
We fix bugs right do not provide any bug-fix releases
|
|
||
| **Cherry-pick policy**: | ||
| - Version-independent changes (documentation, GitHub Actions dependency updates) can target `main` directly or be cherry-picked between `dev` and `main` | ||
| - RHDH-specific or configuration changes remain on `dev` until the corresponding RHDH version is GA and the `release-x.y` branch is merged into `main` |
There was a problem hiding this comment.
What about bug fixes, are they classified as "RHDH-specific or configuration changes"?
I think it is important to mention (even if may look obvious) - we do not provide bug-fix releases?
There was a problem hiding this comment.
Fixes just land on the corresponding branch and users git pull. It happened in the past that we needed to add some RHDH-Local-specific configuration changes to fix an issue in the release branch.
There was a problem hiding this comment.
Not sure I get it, sorry, let me rephrase.
We suppose majority of local-rhdh users use main branch, right?
They clone and run it any time
So, I guess main branch should receive the fixes as soon as it is ready to merge, in contrast to releasing latest z-version?
There was a problem hiding this comment.
Yes, most rhdh-local users would use the main branch. New users would indeed clone and run it, no issue for that.
But existing users (who already cloned main) cannot just git pull as they might get breaking changes, which might be problematic especially for the plugin development use cases.
While main and release-1.10 are "quite" similar (they point to the same stable RHDH version, which appears to be the latest 1.10 at this time), fixes are currently merged to main and cherry-picked into release-1.10 (or the other way around). But because 1.9 is still supported, the release-1.9 branch might also receive fixes if needed. So to me, yes, we do provide bug-fix releases.
Does that clarify?
| **Cherry-pick policy**: | ||
| - Version-independent changes (documentation, GitHub Actions dependency updates) can target `main` directly or be cherry-picked between `dev` and `main` | ||
| - RHDH-specific or configuration changes remain on `dev` until the corresponding RHDH version is GA and the `release-x.y` branch is merged into `main` | ||
| - Fixes to `release-x.y` branches should be cherry-picked to both `main` and `dev` |
There was a problem hiding this comment.
Do we need to maintain older releases?
There was a problem hiding this comment.
I think so (example of discussion here). Besides trying out the latest stable release of RHDH locally, users also rely on RHDH Local for plugin development before moving to production. So they may stay on a specific release-x.y branch to develop plugins against that (supported) RHDH version.
I've added a few lines about that.
…eases - Add context that rhdh-local is also used for local plugin development - Clarify cherry-pick policy for bug fixes - Note that older release branches are maintained for plugin development Assisted-by: Claude
Assisted-by: Claude
- Remove "one release ahead" constraint on dev - Clarify release branch maintenance tied to RHDH support lifecycle - Remove incorrect Alt 3 claim about release branch creation timing Assisted-by: Claude
Summary
devbranch strategy for rhdh-local to unblock next-release development (e.g., PR #256) while keepingmainstable for end userslatest/nextrename scheme) with Mermaid diagrams for eachTest plan
Assisted-by: Claude