This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new f0dd5c6aaf chore: document the backport targets in the project rules
f0dd5c6aaf is described below
commit f0dd5c6aaf13c54bbcdade022d690f68f887c1ba
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Sep 1 12:34:18 2026 +0200
chore: document the backport targets in the project rules
project-guidelines.md described branch naming and commit formats but said
nothing about which release lines a fix should be backported to, so the
question had to be answered from scratch each time.
Record the maintained lines - main, 3.39.x, and the 3.33.x and 3.27.x LTS
lines - along with the cherry-pick convention, the check that the defect and
not merely the file exists on the target, and the migration guide policy.
Every 3.N.x branch ever released is still present in git branch -r, so the
listing is not evidence of support. The included snippet sorts by committer
date rather than author date, since a cherry-picked backport keeps the
original author date and makes a maintained line look stale.
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
---
.oss-ai-helper-rules/project-guidelines.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/.oss-ai-helper-rules/project-guidelines.md
b/.oss-ai-helper-rules/project-guidelines.md
index 48dd6d5271..d42d9adbc0 100644
--- a/.oss-ai-helper-rules/project-guidelines.md
+++ b/.oss-ai-helper-rules/project-guidelines.md
@@ -12,6 +12,19 @@ This rule file contains branching, commit, PR, and
task-finding conventions for
- **CI-issue branch:** `ci-issue/<short-slug>`
- **Commit format (ci-issue):** `ci: <brief description>`
- **PR creation:** always
+- **Backport targets:** `main`, `3.39.x` (current release line), `3.33.x`
(LTS), `3.27.x` (LTS). Camel Quarkus follows the **Quarkus LTS cadence**, so
each line pairs with a Quarkus version (3.33.x ↔ Quarkus 3.33.x, 3.27.x ↔
Quarkus 3.27.x). `3.20.x` and `3.15.x` are older LTS lines that are no longer
routinely maintained — do not open backport PRs against them without checking
first. **A branch existing in `git branch -r` is not evidence that it is
supported**: every `3.N.x` branch ever [...]
+
+ ```sh
+ # %cd (committer date), not %ad: a cherry-picked backport keeps the original
+ # author date, so %ad makes an actively maintained line look stale.
+ for b in $(git branch -r | grep -oE 'origin/3\.[0-9]+\.x' | sort -u); do
+ printf "%-16s %s\n" "${b#origin/}" "$(git log -1 --format='%cd %s'
--date=short "$b")"
+ done | sort -k2 -r
+ ```
+
+- **Backport method:** cherry-pick, preserving the original author and commit
message. The backport lands as a new SHA on the target branch.
+- **Backport applicability check:** confirm the *defect* exists on the target,
not just the file — extensions differ between lines (for example
`extensions-jvm/diagram` does not exist on `3.33.x` or `3.27.x`). Use `git show
origin/<branch>:<path>`.
+- **Backport migration-guide policy:**
`docs/modules/ROOT/pages/migration-guide/<version>.adoc` is per release line. A
change carrying a migration note on `main` must not backport that file; write
an equivalent note for the target line's own version and add it to
`migration-guide/index.adoc` on that branch.
- **Find-task source:** GitHub labels
- **Find-task beginner label:** `good first issue`
- **Find-task experienced label:** `help wanted`