> A wise man once said "Simple is a feature" ;)
For those unfamiliar, this was a reference to a sentiment Jonathan has
expressed over the years which I strongly agree with
https://issues.apache.org/jira/browse/CASSANDRA-6809?focusedCommentId=14102901&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-14102901


On Wed, Jan 5, 2022 at 9:52 AM Joshua McKenzie <jmcken...@apache.org> wrote:

> A wise man once said "Simple is a feature" ;)
>
> Our current process (commit oldest, merge up or merge -s ours w/ --amend):
> - is confusing for new contributors to understand
> - hides changes inside the merge commit
> - masks future ability to see things with git attribute on commits
> - is exposed to race w/other committers across multiple branches requiring
> --atomic
> - is non-automatable requiring human intervention and prone to error
> - prevents us from using industry standard tooling and workflows around CI
> thus contributing to CI degrading over time
> + Helps enforce that we don't forget to apply something to all branches
> +(?) Is the devil we know
>
> That's a lot of negatives for a very fixable single positive and some FUD.
>
> On Tue, Jan 4, 2022 at 7:01 PM bened...@apache.org <bened...@apache.org>
> wrote:
>
>> To answer your point, I don’t have anything ideologically against a
>> temporary divergence in treatment, but we should have a clear unified
>> endpoint we are aiming for.
>>
>>
>>
>> I would hate for this discussion to end without a clear answer about what
>> that endpoint should be, though - even if we don’t get there immediately.
>>
>>
>>
>> I personally dislike the idea of relying on scripts to enforce this, at
>> least in the long run, as there is no uniformity of environment, so no
>> uniformity of process, and when things go wrong due to diverging systems
>> we’re creating additional work for people (and CI is headache enough when
>> it goes wrong).
>>
>>
>>
>>
>>
>> *From: *bened...@apache.org <bened...@apache.org>
>> *Date: *Tuesday, 4 January 2022 at 23:52
>> *To: *David Capwell <dcapw...@apple.com>, Joshua McKenzie <
>> jmcken...@apache.org>
>> *Cc: *Henrik Ingo <henrik.i...@datastax.com>, dev <
>> dev@cassandra.apache.org>
>> *Subject: *Re: [DISCUSS] Releasable trunk and quality
>>
>> That all sounds terribly complicated to me.
>>
>>
>>
>> My view is that we should switch to the branch strategy outlined by
>> Henrik (I happen to prefer it anyway) and move to GitHub integrations to
>> control merge for each branch independently. Simples.
>>
>>
>>
>>
>>
>> *From: *David Capwell <dcapw...@apple.com>
>> *Date: *Tuesday, 4 January 2022 at 23:33
>> *To: *Joshua McKenzie <jmcken...@apache.org>
>> *Cc: *Henrik Ingo <henrik.i...@datastax.com>, dev <
>> dev@cassandra.apache.org>
>> *Subject: *Re: [DISCUSS] Releasable trunk and quality
>>
>> The more I think on it, the more I am anyway strongly -1 on having some
>> bifurcated commit process. We should decide on a uniform commit process for
>> the whole project, for all patches, whatever that may be.
>>
>>
>>
>> Making the process stable and handle all the random things we need to
>> handle takes a lot of time, for that reason I strongly feel we should start
>> with trunk only and look to expand to other branches and/or handle
>> multi-branch commits.  I agree that each branch should NOT have a different
>> process, but feel its ok if we are evolving what the process should be.
>>
>>
>>
>> About the merge commit thing, we can automate (think Josh wants to OSS my
>> script) the current process so this isn’t a blocker for automation; the
>> thing I hate about it is that I have not found any tool able to understand
>> our history, so it forces me to go to CLI to figure out how the merge
>> actually changed things (only the smallest version can be displayed
>> properly), I am 100% in favor of removing, but don’t think its a dependency
>> on automating our merge process.
>>
>>
>>
>>
>>
>>
>> On Jan 4, 2022, at 11:58 AM, Joshua McKenzie <jmcken...@apache.org>
>> wrote:
>>
>>
>>
>> I put together a draft confluence wiki page (login required) for the
>> Build Lead role covering what we discussed in the thread here. Link:
>> https://cwiki.apache.org/confluence/pages/resumedraft.action?draftId=199527692&draftShareId=96dfa1ef-d927-427a-bff8-0cf711c790c9&;
>>
>>
>>
>> The only potentially controversial thing in there is text under what to
>> do with a consistent test failure introduced by a diff to trunk: "If
>> consistent, *git revert* *the SHA that introduced the failure*, re-open
>> the original JIRA ticket, and leave a note for the original assignee about
>> the breakage they introduced".
>>
>>
>>
>> This would apply only to patches to trunk that introduce consistent
>> failures to a test clearly attributable to that patch.
>>
>>
>>
>> I am deferring on the topic of merge strategy as there's a lot of
>> progress we can make without considering that more controversial topic yet.
>>
>>
>>
>> On Tue, Dec 21, 2021 at 9:02 AM Henrik Ingo <henrik.i...@datastax.com>
>> wrote:
>>
>> FWIW, I thought I could link to an example MongoDB commit:
>>
>>
>>
>>
>> https://github.com/mongodb/mongo/commit/dec388494b652488259072cf61fd987af3fa8470
>>
>>
>>
>> * Fixes start from trunk or whatever is the highest version that includes
>> the bug
>>
>> * It is then cherry picked to each stable version that needs to fix.
>> Above link is an example of such a cherry pick. The original sha is
>> referenced in the commit message.
>>
>> * I found that it makes sense to always cherry pick from the immediate
>> higher version, since if you had to make some changes to the previous
>> commit, they probably need to be in the next one as well.
>>
>> * There are no merge commits. Everything is always cherry picked or
>> rebased to the top of a branch.
>>
>> * Since this was mentioned, MongoDB indeed tracks the cherry picking
>> process explicitly: The original SERVER ticket is closed when fix is
>> committed to trunk branch. However, new BACKPORT tickets are created and
>> linked to the SERVER ticket, one per stable version that will need a
>> cherry-pick. This way backporting the fix is never forgotten, as the team
>> can just track open BACKPRT tickets and work on them to close them.
>>
>>
>>
>> henrik
>>
>>
>>
>> On Tue, Dec 14, 2021 at 8:53 PM Joshua McKenzie <jmcken...@apache.org>
>> wrote:
>>
>> >
>> > I like a change originating from just one commit, and having tracking
>> > visible across the branches. This gives you immediate information about
>> > where and how the change was applied without having to go to the jira
>> > ticket (and relying on it being accurate)
>>
>> I have the exact opposite experience right now (though this may be a
>> shortcoming of my env / workflow). When I'm showing annotations in
>> intellij
>> and I see walls of merge commits as commit messages and have to bounce
>> over
>> to a terminal or open the git panel to figure out what actual commit on a
>> different branch contains the minimal commit message pointing to the JIRA
>> to go to the PR and actually finally find out _why_ we did a thing, then
>> dig around to see if we changed the impl inside a merge commit SHA from
>> the
>> original base impl...
>>
>> Well, that is not my favorite.  :D
>>
>> All ears on if there's a cleaner way to do the archaeology here.
>>
>>
>> On Tue, Dec 14, 2021 at 1:34 PM Stefan Miklosovic <
>> stefan.mikloso...@instaclustr.com> wrote:
>>
>> > Does somebody else use the git workflow we do as of now in Apache
>> > universe? Are not we quite unique? While I do share the same opinion
>> > Mick has in his last response, I also see the disadvantage in having
>> > the commit history polluted by merges. I am genuinely curious if there
>> > is any other Apache project out there doing things same we do (or did
>> > in the past) and who changed that in one way or the other, plus
>> > reasons behind it.
>> >
>> > On Tue, 14 Dec 2021 at 19:27, Mick Semb Wever <m...@apache.org> wrote:
>> > >
>> > > >
>> > > >
>> > > > >   Merge commits aren’t that useful
>> > > > >
>> > > > I keep coming back to this. Arguably the only benefit they offer
>> now is
>> > > > procedurally forcing us to not miss a bugfix on a branch, but given
>> how
>> > > > much we amend many things presently anyway that dilutes that
>> benefit.
>> > > >
>> > >
>> > >
>> > > Doesn't this come down to how you read git history, and for example
>> > > appreciating a change-centric view over branch isolated development?
>> > > I like a change originating from just one commit, and having tracking
>> > > visible across the branches. This gives you immediate information
>> about
>> > > where and how the change was applied without having to go to the jira
>> > > ticket (and relying on it being accurate). Connecting commits on
>> > different
>> > > branches that are developed separately (no merge tracking) is more
>> > > complicated. So yeah, I see value in those merge commits. I'm not
>> against
>> > > trying something new, just would appreciate a bit more exposure to it
>> > > before making a project wide change. Hence, let's not rush it and just
>> > > start first with trunk.
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
>> > For additional commands, e-mail: dev-h...@cassandra.apache.org
>> >
>> >
>>
>>
>>
>>
>> --
>>
>> Henrik Ingo
>>
>> +358 40 569 7354 <358405697354>
>>
>> [image: Visit us online.] <https://www.datastax.com/>  [image: Visit us
>> on Twitter.] <https://twitter.com/DataStaxEng>  [image: Visit us on
>> YouTube.]
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_channel_UCqA6zOSMpQ55vvguq4Y0jAg&d=DwMFaQ&c=adz96Xi0w1RHqtPMowiL2g&r=IFj3MdIKYLLXIUhYdUGB0cTzTlxyCb7_VUmICBaYilU&m=bmIfaie9O3fWJAu6lESvWj3HajV4VFwgwgVuKmxKZmE&s=16sY48_kvIb7sRQORknZrr3V8iLTfemFKbMVNZhdwgw&e=>
>>   [image: Visit my LinkedIn profile.]
>> <https://www.linkedin.com/in/heingo/>
>>
>>
>>
>

Reply via email to