I think this is a good plan, the 26 trivial branches serve no purpose at all.

On 6/10/2024 9:09 am, Julian Hyde wrote:
The Calcite git repository seems to be cluttered with unused branches.
I am especially tired of 'maint-0.4.12', which is eleven years old but
comes up every time I type 'git log origin/mai<TAB>'.

I analyzed our branches. There are 37 branches in origin (see
https://github.com/apache/calcite/branches/all).

4 branches have a specific purpose:
  * HEAD (points to main)
  * main
  * master (deprecated, redirects to main)
  * site

29 release branches, prefixed either maint- or branch-:
  * branch-1.0
  * branch-1.1
  * ...
  * branch-1.24
  * branch-avatica-1.8
  * branch-avatica-1.9
  * maint-0.4.12
  * maint-0.4.15

3 seem to be orphans, pushed by mistake:
  * review
  * master
  * issue6607

1 is related to dependabot PR
  * dependabot/bundler/site/nokogiri-1.15.6

Of the 29 release branches, 26 might be called 'trivial'. They are
direct ancestors of current HEAD and are exactly one commit after a
tag, because that is how the Maven release process worked. For example
branch-1.12 is one commit after the tag calcite-1.12.0:

$ git log --abbrev-commit --pretty=format:'%h -%d %s (%cr) <%an>' -n3
origin/branch-1.12
0f92251082 - (origin/branch-1.12) [maven-release-plugin] prepare for
next development iteration (8 years ago) <Julian Hyde>
ea7ace18cd - (tag: calcite-1.12.0) [maven-release-plugin] prepare
release calcite-1.12.0 (8 years ago) <Julian Hyde>
baa13d696f - [CALCITE-1657] Release Calcite 1.12.0 (8 years ago) <Julian Hyde>

The 3 other release branches might be called 'maintenance branches',
because they are several commits away from the main branch. They are:
  * maint-0.4.12 (5,459 commits behind and 20 ahead of main)
  * maint-0.4.15 (5,431 commits behind and 4 ahead of main)
  * branch-1.22 (1,869 commits behind and 1 ahead of main)

I propose to delete the 26 trivial release branches and rename the
maintenance branches:
  * maint-0.4.12 becomes release/0.4.12
  * maint-0.4.15 to release/0.4.15
  * branch-1.22 to release/1.22.

I will not delete any tags. And I will not do anything until release
1.38 is complete.

Any thoughts on this?

Julian

Reply via email to