Skip to content

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

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

ADR-006: Branching strategy for rhdh-local development#18
rm3l wants to merge 16 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?

**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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants