emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Achim Gratz <Stromeko@nexgo.de>
To: emacs-orgmode@gnu.org
Subject: Re: [DEV] New git workflow
Date: Tue, 20 Mar 2012 08:03:13 +0100	[thread overview]
Message-ID: <87fwd3ycsu.fsf@Rainer.invalid> (raw)
In-Reply-To: <87mx7cf613.fsf@altern.org>

Bastien <bzg@altern.org> writes:
> The main problem I see With this workflow is that releases are made
> from two different branches: bugfix releases are made from maint and
> major releases are made from master.  This doesn't look right to me.

That ain't necessarily so.  IMHO, the release always has to be done from
maint (that's the whole purpose of it), preceded by a merge from master
if and only if a major release is done.

> So I suggest to use three branches with these rules:
>
> - master: the main persistent branch.  This is were regular development
>   goes.  This branch is merged back to the maint branch when we release
>   a new major version.  No release happens directly from this branch.
>
> - maint: the "production" persistent branch.  This branch is dedicated
>   to the release process: when hot fixes are hot enough, we merge the
>   hotfix branch to the maint branch and release a bugfix release.  When
>   the master branch (where hot fixes are also merged to) is mature and
>   well tested, we merge master into maint and release a major version.

So far no deviation from today.

> - hotfix-7.XX.XX: the transient branch for hotfixes.  Severe bugs are
>   fixed there first, then merged back to maint when this makes sense.
>   The branch is created when we need it and deleted when we don't need
>   it anymore.

You would have to push this branch out to the public repo, otherwise the
other people with access to the repo can't use it.  For instance,
Carsten has already committed to maint again, because he can't see your
bugfix branch.  All things considered, the hotfix branch and maint
should almost always point to the same commit.  In other words, all
hotfix branches should merge into maint first and then maint back into
master.  The only advantage of version-specific hotfix branches I can
see is if you want to be able to fix bugs in several releases seperately
(e.g. 7.8.06 in Emacs 24.1, 7.x.yy in Emacs 24.2 etc.).  Also, the setup
would have to be slightly different in that case: branch the hotfix from
the release commit and then keep adding bugfixes and merging into maint.
That would require an enormous amount of coordination and discipline
from all maintainers and committers, as several branches would have to
keep merging into both maint and master.

> This workflow looks clearer to me.

I suggest you try this first in a disposable repo clone, if possible
together with all other commiters to the public repo.  It is a valid
setup and suppports some things that you can't do very well today, but
it makes things more complicated than the current workflow (which maybe
need to be spelled out more explicitly).

>  Here are the advantages I see:
>
> 1) *all releases happen on the same branch* (the maint branch): it is
>    easier to keep this branch in sync with Emacs and we can also add
>    git hooks to automate the release process.

See above, that was always how it was supposed to work.

> 2) the master branch *is* the development branch: yes, pretty unusual.

Not really unusual, there are more examples of this.

>    At least as unusual as not having two mailing lists, one for users
>    and one for devs.  But I want to stick to what makes this list a
>    great place: regular users are invited to live on the bleeding edge
>    and to contribute patches on the "development" branch, the one they
>    will clone first.
>
> So, what's next?
>
> I will merge 7.8.06 into Emacs.
>
> Nothing should be committed to maint anymore before the next release.
>
> Important bug fixes for 7.8.06 all go to a new branch hotfix-7.8.06.
>
> Usual development goes to master, from where we regularily merge the
> hotfix branch.
>
> We'll get rid of the hotfix branch when releasing 7.8.07 or 7.9.

Once you've pushed it out to the repo you shouldn't delete it, even when
merged back into maint.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf rackAttack V1.04R1:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

  reply	other threads:[~2012-03-20  7:03 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-20  0:51 Bastien
2012-03-20  7:03 ` Achim Gratz [this message]
2012-03-20  7:24   ` Achim Gratz
2012-03-20 10:40   ` Bastien
2012-03-20 19:20     ` Achim Gratz
2012-03-21  0:02       ` Bastien
2012-03-21  0:23         ` Bastien
2012-03-20 10:47   ` Bastien
2012-03-20 22:35 ` Simon Thum
2012-03-20 22:27   ` Achim Gratz
2012-03-21  8:46     ` Simon Thum
2012-03-21  9:01       ` Achim Gratz
2012-03-21 22:38         ` Simon Thum
2012-03-24 11:05   ` Daniel Dehennin
2012-03-24 20:08     ` Simon Thum
2012-03-24 19:29       ` Nick Dokos
2012-04-01  9:26         ` Simon Thum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fwd3ycsu.fsf@Rainer.invalid \
    --to=stromeko@nexgo.de \
    --cc=emacs-orgmode@gnu.org \
    --subject='Re: [DEV] New git workflow' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).