Hi all,

apache/cloudberry has 21 branches today [1]. Besides main and the release
branches, most were created for a single PR, e.g. fix_issue_1915,
cp_CVE_2025_12817, bp_old_main, reshke-patch-1, and some names don't say
what the branch is for at all (ijjdiew, PG_).

I'd suggest that topic branches live in personal forks by default:

- Branches in apache/* look official to users and packagers.
- Only main and REL_2_STABLE are protected; the rest can be force-pushed
  or deleted by any committer.
- Every push mails commits@ and runs CI on the shared runners (e.g. [2]).
- del_branch_on_merge only cleans up merged PRs, so branches from closed
  or abandoned PRs stay forever.

The trade-offs I can see:

- PRs from forks don't get repository secrets, and first-time
  contributors need a committer to approve the CI run.
- Several people can't easily push to one fork branch, and PRs can't be
  stacked across repositories.

So the proposal:

1. The main repo keeps main, REL_*_STABLE, archive branches, and shared
   feature/* branches for multi-person work agreed on dev@.
2. Everything else goes in forks.
3. One-time cleanup: owners have two weeks to claim branches they still
   need; the rest get deleted (PR history stays in refs/pull/*).

Questions:
- Do any of our CI workflows require running from the main repo?
- Which current branches should be kept?

Thoughts?

[1] https://github.com/apache/cloudberry/branches/active
[2] https://lists.apache.org/thread/wwrx56ms8wgllcyymyqgtw97zlsxd14p


Best regards, Max Yang

Reply via email to