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