Emacs, scripting and anything text oriented.

Org Contribution Flow-chart

A handy flow-chart if you are confused about when commits happen to Org maint branch vs master branch, what ends up in the Elpa version of Org, and so on.
Kaushal Modi

I have often seen questions and confusion about why certain things got fixed in Org, or a new feature got added, but then did not show up in the next Org update via Elpa.

The below flow chart is an attempt to answer all such questions, and also my first attempt at creating one using PlantUML (legacy syntax1).

When I tried the new (beta) syntax, it did not allow using, what I call, “labels”.. see the as maint, as master syntax in the flowchart source.

Flow chart #

PlantUML Source #

(*) --> "My Org commit"

--> "Discuss on Org mailing list"

if "Bug fix commit?" then
  -->[yes] "Commit to Org **maint**" as maint
  ->[no] if "**maint** compatible doc fix commit?" then
    -->[yes] maint
    ->[no] "Commit to Org **master**" as master

maint --> "Merge to Org **master**"
  --> master
maint --> "Wait till next Monday"
  --> "Push to Org Elpa" as push
maint --> "Short maturity time"
  --> "Cut a minor release" as minor_release

minor_release --> ===RELEASE===
minor_release --> master

master --> "**Long maturity time**"
  --> "Cut a major release" as major_release

major_release --> ===RELEASE===
major_release --> "Merge to Org **maint**"
  --> maint

===RELEASE=== --> push
===RELEASE=== --> "Squash and commit to Emacs release or master branch"
  --> (*)

push --> (*)

PlantUML Hints #

-​-​>Vertical arrow
-​>Horizontal arrow
(*) -​-​>Start point
-​-​> (*)End point

Reference #

  1. Legacy vs new (beta) PlantUML syntax for activity diagrams [return]