Skip to content

Document non-squash release back-merge procedure (#226)#284

Merged
kirich1409 merged 1 commit into
developfrom
chore/226-release-branching-docs
Jun 13, 2026
Merged

Document non-squash release back-merge procedure (#226)#284
kirich1409 merged 1 commit into
developfrom
chore/226-release-branching-docs

Conversation

@kirich1409

@kirich1409 kirich1409 commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Documents the correct release procedure in CONTRIBUTING.md to fix the recurring history-divergence problem described in #226.

Root cause: developmain and back-merges were previously squash-merged. Squash collapses the merge, so the release commit and the bot's Package.swift commit on main never become ancestors of develop. Each release leaves main "ahead" and periodically requires manual reconciliation.

Solution (Approach A — linear develop, real merge into main):

  • developmain is performed with a real merge commit (git merge --no-ff develop, pushed directly — main has no ruleset). This makes all develop commits ancestors of main; history no longer diverges.
  • Back-merge maindevelop stays a squash-PR (next -SNAPSHOT bump + Package.swift sync), so develop remains linear and the required_linear_history ruleset is untouched.

No code/CI/GitHub-settings changes — documentation only.

Changes to CONTRIBUTING.md

  • New Branching Model section: branch roles + per-operation merge policy table.
  • Releasing a New Version rewritten as a 4-step procedure (prepare on develop → real merge into main → tag → back-merge squash-PR).
  • Fixed stale facts verified against current publish.yml:
    • Package.swift bot commit lands directly in main on v* tag push.
    • SNAPSHOT publishing on branch push is disabled; now only via workflow_dispatch.
    • Maven Central publish is USER_MANAGED (manual promote in Portal UI).
  • Submitting Changes: branch from / PR against develop, not main.

Verification

Pure documentation edit — build/test gates inapplicable (spotless covers only .kt/.kts). Reviewed for internal consistency and against publish.yml facts; the documented git merge --no-ff + direct push to main is valid under main's empty ruleset, and the flow does not violate required_linear_history on develop (back-merge = squash-PR).

🤖 Generated with Claude Code

Review in cubic

@kirich1409 kirich1409 marked this pull request as ready for review June 13, 2026 05:24
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No issues found across 1 file

Re-trigger cubic

Closes #226

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kirich1409 kirich1409 force-pushed the chore/226-release-branching-docs branch from dbcf9f8 to 24261dd Compare June 13, 2026 05:58
@kirich1409 kirich1409 merged commit 9c915e6 into develop Jun 13, 2026
6 checks passed
@kirich1409 kirich1409 deleted the chore/226-release-branching-docs branch June 13, 2026 06:16
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.

1 participant