Yes, I believe so! I'll send the official email shortly to kick off the
process.

--

For posterity: I was working with Ádám Sághy on the release branch
strategy. Note: develop contains future feature work not fit for release.
That can be worked out by committing a patch to disable/remove the future
feature work (let's call it "RFIX"). We only want RFIX changes on the
release branch, but since part of the process necessarily includes merging
release/1.13.0 back into develop
<https://fineract.apache.org/docs/current/#_step_13_close_release_branch>,
RFIX would be applied to develop. The solution I came up with is to simply
revert RFIX after release/1.13.0 is merged back into develop.

Also note: A couple bugfixes need to be cherry-picked into release/1.13.0.
git should handle this fine--when we later merge release/1.13.0 into develop it
will detect if a cherry-pick has already been applied and not re-apply it.
I recall git will also/even gracefully handle merges from develop →
release/1.13.0 if we decide to do that, but we can also just rebase and
force-push release/1.13.0 (but only while we're working on the release and
before we tag for 1.13.0).

To illustrate the first note, please see attached. Explanation:

   - A is a commit on develop before the branch point
   - B is another commit on develop (a child of A) and the branch point for
   release/1.13.0
   - RFIX is as described above -- it removes/disables the future feature
   work we don't want to release
   - C is continued parallel work on develop, a child of B
   - D is a cherry-picked bugfix, the last commit to release/1.13.0, and
   the commit we'll actually build & release, hence, tagged 1.13.0
   - revert RVIX is where we undo the patch that must only be part of the
   release
   - E is continued work on develop, post-release and post-merge of
   release/1.13.0

Some notes:

   - following this strategy, git describe will work as intended
   - I think it's valid if some nodes in this graph represent multiple
   commits
   - this release branching strategy is separate from the maintenance
   release process
   <https://fineract.apache.org/docs/current/#_maintenance_release_process>,
   should we need/want to create 1.13.1, 1.13.2, 1.13.3, ...
   - I made the graph using mermaid gitgraph
   <https://mermaid.js.org/syntax/gitgraph.html>. I created/rendered it
   using both the Nextcloud Text editor and the mermaid live editor
   <https://mermaid.live>. The PNG and SVG are rendered bitmap and vector
   representations (respectively) and the .md file is the mermaid source
   wrapped in a fenced code block for easy copy/paste into a capable
   markdown+mermaid editor or rendering engine.
```mermaid
---
config:
  gitGraph:
    mainBranchName: develop
---
gitGraph
  commit id: 'A'
  commit id: 'B'
  branch release/1.13.0
  commit id: 'RFIX'
  checkout develop
  commit id: 'C'
  checkout release/1.13.0
  commit id: 'D' tag: '1.13.0'
  checkout develop
  merge 'release/1.13.0'
  commit id: 'revert RFIX'
  commit id: 'E'
```

Reply via email to