Skip to content

ADR-006: Branching strategy for rhdh-local development - #18

Open
rm3l wants to merge 21 commits into
redhat-developer:mainfrom
rm3l:feat/rhdh-local-branches-and-rhdh-versions
Open

ADR-006: Branching strategy for rhdh-local development#18
rm3l wants to merge 21 commits into
redhat-developer:mainfrom
rm3l:feat/rhdh-local-branches-and-rhdh-versions

Conversation

@rm3l

@rm3l rm3l commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary

  • Proposes a dev branch strategy for rhdh-local to unblock next-release development (e.g., PR #256) while keeping main stable for end users
  • Documents three rejected alternatives (rotating default branch, early release branch, latest/next rename scheme) with Mermaid diagrams for each
  • Includes cherry-pick policy and honest trade-off analysis (merge complexity, divergence risk)

Test plan

  • Review ADR content for accuracy against current rhdh-local release process
  • Verify Mermaid diagrams render correctly on GitHub. Preview
  • Confirm cherry-pick policy aligns with team expectations
  • Validate with RHDH productization team that FF script changes are feasible

Assisted-by: Claude

Propose a `dev` branch strategy for rhdh-local to unblock
next-release development while keeping `main` stable for
end users.

Assisted-by: Claude
@rm3l
rm3l force-pushed the feat/rhdh-local-branches-and-rhdh-versions branch from 51944a2 to cbef9c1 Compare July 8, 2026 11:23
rm3l added 4 commits July 8, 2026 13:24
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
@rm3l
rm3l force-pushed the feat/rhdh-local-branches-and-rhdh-versions branch 3 times, most recently from 9a8d3f5 to b175f41 Compare July 8, 2026 12:20
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
@rm3l
rm3l force-pushed the feat/rhdh-local-branches-and-rhdh-versions branch from b175f41 to 3f15d4e Compare July 8, 2026 12:22
rm3l added 10 commits July 8, 2026 14:28
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
Consistent with Decision and Alt 2 diagrams that label the
default branch explicitly.

Assisted-by: Claude

@gazarenkov gazarenkov left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

@rm3l rm3l Jul 13, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

@rm3l rm3l Jul 23, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to maintain older releases?

@rm3l rm3l Jul 13, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

rm3l added 3 commits July 13, 2026 11:34
…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
- 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
@rm3l
rm3l marked this pull request as ready for review July 13, 2026 09:51
@rm3l
rm3l requested review from a team and gazarenkov July 20, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants