I think simple, consistent, reliable and unavoidable are *the* killer features 
for QA. All features (give or take) of the industry standard approach of using 
CI hooks to gate PR merge.

From: Joshua McKenzie <jmcken...@apache.org>
Date: Wednesday, 5 January 2022 at 14:53
To: dev <dev@cassandra.apache.org>
Subject: Re: [DISCUSS] Releasable trunk and quality
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<mailto:bened...@apache.org> 
<bened...@apache.org<mailto: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<mailto:bened...@apache.org> 
<bened...@apache.org<mailto:bened...@apache.org>>
Date: Tuesday, 4 January 2022 at 23:52
To: David Capwell <dcapw...@apple.com<mailto:dcapw...@apple.com>>, Joshua 
McKenzie <jmcken...@apache.org<mailto:jmcken...@apache.org>>
Cc: Henrik Ingo <henrik.i...@datastax.com<mailto:henrik.i...@datastax.com>>, 
dev <dev@cassandra.apache.org<mailto: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<mailto:dcapw...@apple.com>>
Date: Tuesday, 4 January 2022 at 23:33
To: Joshua McKenzie <jmcken...@apache.org<mailto:jmcken...@apache.org>>
Cc: Henrik Ingo <henrik.i...@datastax.com<mailto:henrik.i...@datastax.com>>, 
dev <dev@cassandra.apache.org<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto:dev-unsubscr...@cassandra.apache.org>
> For additional commands, e-mail: 
> dev-h...@cassandra.apache.org<mailto:dev-h...@cassandra.apache.org>
>
>


--
Henrik Ingo
+358 40 569 7354<tel:358405697354>
[Visit us online.]<https://www.datastax.com/>  [Visit us on Twitter.] 
<https://twitter.com/DataStaxEng>   [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=>
   [Visit my LinkedIn profile.] <https://www.linkedin.com/in/heingo/>

Reply via email to