all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tassilo Horn <tsdh@gnu.org>
To: "Daniel Martín" <mardani29@yahoo.es>
Cc: Glenn Morris <rgm@gnu.org>, Lars Ingebrigtsen <larsi@gnus.org>,
	Stefan Kangas <stefan@marxist.se>,
	Stefan Monnier <monnier@iro.umontreal.ca>,
	emacs-devel@gnu.org
Subject: Re: Merging release branch
Date: Sat, 30 Oct 2021 22:32:02 +0200	[thread overview]
Message-ID: <87wnlukyyi.fsf@gnu.org> (raw)
In-Reply-To: <m1a6iqd3xp.fsf@yahoo.es>

Daniel Martín <mardani29@yahoo.es> writes:

> TBH, I don't think there's a "silver bullet" workflow, it depends on
> the project, the participants, etc.  I presented some downsides of
> mine as well, so you can decide if the trade-offs would make it less
> time-consuming than the current one.  I suspect some of those
> trade-offs are "invisible" until the workflow is put into practice and
> given some time.

That's true.  As an anecdote: we've tried a cherry-pick-based workflow
at my dayjob for some period.  Basically, (for each released and still
supported version) we've had a "pending", and a "release" branch.
Developers committed their fixes in the "pending" branch where the QA
would test them.  If the test was successful, the commit(s) where
cherry-picked into the "release" branch.

I can report that it didn't work out well.  Things that happend quite
often were:

- Some ticket had N commits but only N-M (M > 0) commits were
  cherry-picked.  And once you notice something's wrong, you have to go
  and diff diffs to find out which one is missing since the question has
  turned from "is commit 18a9ef4 reachable from this branch's HEAD" to
  "is there some commit with the same message and same diff"?
- The compile/CI broke because the cherry-picked commit X required stuff
  of commit Y which has not yet been cherry-picked because Y's test took
  longer than X's (or X has been prioritized over Y).
- Same as the last bullet point but worse: the compile still worked but
  the runtime behavior was wrong.

So in general, my gut feeling is that merging is preferable over
cherry-picking.  Even more so if the time between initial commit and
cherry-pick can become longer.

A policy which makes sense would be (as Stefan M. suggested, I think):
if you commit in emacs-<major>, immediately do a merge into master
afterwards (with -s ours if the fix is not appropriate for master).

Bye,
Tassilo



  reply	other threads:[~2021-10-30 20:32 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-29 16:35 Merging release branch Glenn Morris
2021-10-29 16:42 ` Lars Ingebrigtsen
2021-10-29 17:01 ` Stefan Kangas
2021-10-29 18:10   ` Stefan Monnier
2021-10-29 18:26     ` Lars Ingebrigtsen
2021-10-29 18:52       ` Lars Ingebrigtsen
2021-10-29 19:55         ` Daniel Martín
2021-10-30 11:42           ` Lars Ingebrigtsen
2021-10-30 13:42             ` Daniel Martín
2021-10-30 20:32               ` Tassilo Horn [this message]
2021-10-29 19:58         ` Eli Zaretskii
2021-10-30 11:51           ` Lars Ingebrigtsen
2021-10-30 12:11             ` Eli Zaretskii
2021-10-30 12:30               ` Dmitry Gutov
2021-10-30 12:32                 ` Eli Zaretskii
2021-10-30 13:34                   ` dick
2021-10-31 11:38                   ` Dmitry Gutov
2021-10-31 13:03                     ` Eli Zaretskii
2021-10-30 16:33                 ` Eli Zaretskii
2021-10-30 21:36                   ` Dmitry Gutov
2021-10-31  7:19                     ` Eli Zaretskii
2021-10-30 23:14                   ` Gregory Heytings
2021-10-30 23:17                     ` Dmitry Gutov
2021-10-31  7:20                     ` Eli Zaretskii
2021-10-31  8:13                       ` Gregory Heytings
2021-10-31 11:40                       ` Dmitry Gutov
2021-10-31 12:58                         ` Gregory Heytings
2021-10-31 21:59                           ` Dmitry Gutov
2021-10-31 14:46                         ` Lars Ingebrigtsen
2021-10-31 15:12                           ` Eli Zaretskii
2021-10-31 15:15                             ` Lars Ingebrigtsen
2021-10-31 16:02                               ` Dealing with merge noise (was: Merging release branch) Kévin Le Gouguec
2021-10-31 18:19                                 ` Stefan Kangas
2021-10-31 18:31                                   ` Eli Zaretskii
2021-10-31 22:00                           ` Merging release branch Dmitry Gutov
2021-10-30 12:31               ` Lars Ingebrigtsen
2021-10-30 12:48                 ` Eli Zaretskii
2021-10-29 19:00       ` Stefan Monnier
2021-10-29 19:05         ` Lars Ingebrigtsen
2021-10-29 19:17           ` Stefan Monnier
2021-10-29 20:29           ` David Engster
2021-10-29 17:08 ` dick
2021-11-06  9:28 ` Eli Zaretskii
2021-11-06 10:53   ` Stefan Kangas
2021-11-06 16:14     ` Glenn Morris
2021-11-06 16:11   ` Glenn Morris
2021-11-06 17:19     ` Eli Zaretskii

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

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

  git send-email \
    --in-reply-to=87wnlukyyi.fsf@gnu.org \
    --to=tsdh@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    --cc=mardani29@yahoo.es \
    --cc=monnier@iro.umontreal.ca \
    --cc=rgm@gnu.org \
    --cc=stefan@marxist.se \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.