With pipeline multibranch we should be able to get the integration test
results as a GitHub status pushed back (perhaps even comments on JIRA)

Switching to pipeline multibranch should radically improve our CI
infrastructure

On Sat 31 Dec 2016 at 12:12, Tibor Digana <tibor.dig...@googlemail.com>
wrote:

> Stephen,
>
>
>
> Maybe we should add an icon (green/red) of build status on the page [1].
>
> The same should appear on every pull request in GitHub Maven origin/master
>
> and branches.
>
> WDYT?
>
> [1] https://github.com/apache/maven-integration-testing
>
>
>
> T
>
>
>
> On Sat, Dec 31, 2016 at 1:07 PM, Stephen Connolly <
>
> stephen.alan.conno...@gmail.com> wrote:
>
>
>
> > On Saturday, 31 December 2016, Guillaume Boué <gb...@apache.org> wrote:
>
> >
>
> > >
>
> > >
>
> > > Le 30/12/2016 à 09:01, Robert Scholte a écrit :
>
> > >
>
> > >> On Thu, 29 Dec 2016 18:57:56 +0100, Hervé BOUTEMY <
>
> > herve.bout...@free.fr>
>
> > >> wrote:
>
> > >>
>
> > >> perhaps maven-resolver will require same reset
>
> > >>>
>
> > >>
>
> > >> +1
>
> > >>
>
> > >> IMO we forgot to do a release with the original Aether code with the
> new
>
> > >> GAVs.
>
> > >>
>
> > >> Robert
>
> > >>
>
> > >>
>
> > >>> and we'll need to define which convention to use on Jira when merging
>
> > >>> code:
>
> > >>> remove "Fix Version: 3.4.0" for example, to track what features have
>
> > not
>
> > >>> been
>
> > >>> merged yet
>
> > >>>
>
> > >>> Regards,
>
> > >>>
>
> > >>> Hervé
>
> > >>>
>
> > >>> Le jeudi 29 décembre 2016, 11:18:59 CET Stephen Connolly a écrit :
>
> > >>>
>
> > >>>> On ASF infra, our master branch is supposed to be a protected branch
>
> > and
>
> > >>>> thus cannot be reset or force-pushed without an INFRA ticket.
>
> > >>>>
>
> > >>>> If we want to reset our master branch in order to clean out the
>
> > history
>
> > >>>> of
>
> > >>>> the many changes and reverts to and fro etc, we thus need an INFRA
>
> > >>>> ticket
>
> > >>>> raised.
>
> > >>>>
>
> > >>>> INFRA should not act on such a ticket without the results of a vote
> of
>
> > >>>> the
>
> > >>>> committers that has at least three binding votes from the PMC (i.e.
>
> > the
>
> > >>>> majority of votes cast must be in favour and at least three PMC
>
> > members
>
> > >>>> must have voted in favour)
>
> > >>>>
>
> > >>>> Votes are a great way to *confirm* consensus, but a horrible way to
>
> > >>>> build a
>
> > >>>> community or establish consensus. We should only ever have a vote
>
> > thread
>
> > >>>> once the consensus seems to be established.
>
> > >>>>
>
> > >>>> To establish consensus we use a discuss thread.
>
> > >>>>
>
> > >>>> Please refrain from assigning blame, we want to grow our community
> not
>
> > >>>> shrink it. The shorty endorphin rush you get from assigning blame or
>
> > >>>> performing The Dance Of I Told You So™ will require repeated hits to
>
> > >>>> maintain which will only lead to a more toxic community.
>
> > >>>>
>
> > >>>> We have not been good at maintaining our CI infrastructure:
>
> > >>>>
>
> > >>>> * As a consequence, some people have been developing on master
> rather
>
> > >>>> than
>
> > >>>> on branches in order to ensure that their development gets the
> benefit
>
> > >>>> of
>
> > >>>> the integration tests
>
> > >>>>
>
> > >>>> * This has lead to a lot of micro commits and effectively revert
>
> > >>>> commits on
>
> > >>>> master making it hard to track what actually has changed and what
> has
>
> > >>>> actually been fixed.
>
> > >>>>
>
> > >>>> * Additionally `git blame` probably now could end up confusing
> people
>
> > >>>> trying to understand the rationale for some changes
>
> > >>>>
>
> > >>>> We have not been good at maintaining our Integration tests:
>
> > >>>>
>
> > >>>> * As a consequence it has been hard to get our CI infrastructure
>
> > working
>
> > >>>> effectively
>
> > >>>>
>
> > >>>> * As a consequence, people have been forced to leverage a single
>
> > branch
>
> > >>>> for
>
> > >>>> CI testing
>
> > >>>>
>
> > >>>> We have not been good at developing bigger changes in a branch
>
> > >>>>
>
> > >>>> etc.
>
> > >>>>
>
> > >>>> I could go on.
>
> > >>>>
>
> > >>>> My belief is that confidence in 3.4.0 has been eroded.
>
> > >>>>
>
> > >>>> I propose that we reset master back
>
> > >>>> to 737de43e392fc15a0ce366db98d70aa18b3f6c03, with an analogous reset
>
> > of
>
> > >>>> master for the integration tests, and then immediately commit a
> dummy
>
> > >>>> commit so that nobody accidentally does a fast-forward push.
>
> > >>>>
>
> > >>>> Then we can cherry pick the changes that were on the old master that
>
> > we
>
> > >>>> want to have in 3.4.0
>
> > >>>>
>
> > >>>> This will probably also involve:
>
> > >>>>
>
> > >>>> * Fixing the CI infrastructure (I favour using a pipeline
> multibranch
>
> > >>>> project so that branch development is easier,
>
> > >>>> https://builds.apache.org/job/maven-jenkinsfile/ is where I have
> been
>
> > >>>> trying to prototype this... currently failing because "windows")
>
> > >>>>
>
> > >>>> * Switching to a culture of branch / PR development for all
> committers
>
> > >>>>
>
> > >>>> * Better providing rationale for changes, e.g. we need a succinct
>
> > >>>> description of the actual regression between 2.x and 3.x in
> resolution
>
> > >>>> of
>
> > >>>> dependencies of plugins as well as actual easy to understand tests
>
> > that
>
> > >>>> demonstrate the behaviour *and* show that it is an actual regression
>
> > >>>>
>
> > >>>> * etc
>
> > >>>>
>
> > >>>> But the first step in that would be to reset master...
>
> > >>>>
>
> > >>>> So...
>
> > >>>>
>
> > >>>> Is 737de43e392fc15a0ce366db98d70aa18b3f6c03 the correct hash to
> reset
>
> > >>>> to?
>
> > >>>>
>
> > >>>> What is the correct hash for the integration tests?
>
> > >>>>
>
> > >>>> Do we want to do this?
>
> > >>>>
>
> > >>>> What else should we change about our processes to prevent the need
> to
>
> > do
>
> > >>>> this again?
>
> > >>>>
>
> > >>>
>
> > > Having a vote on all changes to master sounds too much. I think it
> should
>
> > > be up to the developers to always raise discussions whenever a change
>
> > would
>
> > > have impacts on existing ITs, or whenever a new feature is considered
> to
>
> > be
>
> > > added. Bug fixing should be able to be pushed easily; only a commit
>
> > message
>
> > > describing what the bug actually is, and how the fix is done should be
>
> > > necessary.
>
> >
>
> >
>
> > I don't think we are suggesting that.
>
> >
>
> > I think we are probably looking at worst case switching the integration
>
> > tests repo from CTR to RTC
>
> >
>
> > Though personally I think that is a bit too much. I think adding new
> tests
>
> > can be CTR but any changes to existing tests probably need to be RTC or
> at
>
> > least have a separate discussion first. Changes to the integration test
>
> > suite can erode confidence which is one of the reasons for considering
> the
>
> > "big reset"
>
> >
>
> > For Maven core repo, the real issue here is that there was a charge ahead
>
> > fixing bugs without having the previously agreed "stability" release
> which
>
> > just included the change from aether to resolver
>
> >
>
> >
>
> > >
>
> > > Commits should, as much as possible, represent a whole unit. That is,
> if
>
> > > it wouldn't make sense to revert to a given revision (because it
>
> > represents
>
> > > some temporary dev state, or incomplete state), then probably that
>
> > revision
>
> > > shouldn't exist. Tests ran on Jenkins should be a last-resort (or close
>
> > to
>
> > > it) IMO: any change that is commited should be tested as passing,
>
> > possibly
>
> > > on different OS (if the change looks like OS dependent) and different
>
> > Maven
>
> > > versions for plugins (I personally test with 3.0.5, 3.3.9 and latest
>
> > > snapshot so that a wide range of versions are covered).
>
> >
>
> >
>
> > +1
>
> >
>
> > If committers need licenses for windows then we can direct them to the
> MSDN
>
> > licensing which Microsoft provides to Apache committers (or is it just
>
> > members?) or there are those 30-day VMs that MS provides for IE
>
> > compatibility testing which could also be used for MS compatibility
> testing
>
> >
>
> >
>
> > >
>
> > >
>
> > >>>> Should we maybe just drop 3.4.x and jump to 3.5.x also in order to
>
> > >>>> signal
>
> > >>>> that this was a reboot version and any 3.4.x stuff is thus easy to
>
> > >>>> detect
>
> > >>>> and filter?
>
> > >>>>
>
> > >>>
>
> > > What exactly would this scenario imply?
>
> >
>
> >
>
> > > Reset back to just after 3.3.9 and then merge *only* the changes for
> the
>
> > "drop-in" replacement of aether by resolver. Nothing else.
>
> >
>
> > After we get 3.5.0 out then we start cherry picking those things that we
>
> > agree should be released from the 3.4.x branch
>
> >
>
> >
>
> > >  If it is skipping 3.4.x and releasing current codebase as 3.5.0, I'm
> not
>
> > > sure it changes anything. I'd favor picking the commits between the
>
> > > proposed hash and today, releasing that as 3.4.0 and defering
> contentious
>
> > > changes. As far as the picking goes, having a mail thread for each JIRA
>
> > > issue doesn't sound practical but may be needed...
>
> >
>
> >
>
> > We probably just need to do a bug scrub and decide what should be fixed
>
> >
>
> > In fact perhaps we should try and have regular bug scrubs to schedule
> what
>
> > should be on the roadmap
>
> >
>
> >
>
> > >
>
> > > I have a question regarding the possible new commits. Will Git retain
> the
>
> > > actual author / date / comment of the initial commits when doing the
>
> > cherry
>
> > > picking? I believe that info should really be kept, but I'm not sure if
>
> > it
>
> > > possible (or wanted).
>
> >
>
> >
>
> > It is *the most important thing at the Apache Foundation* that the
>
> > *authorship* of a commit is retained.
>
> >
>
> > Cherry picking retains authorship but may modify the committer. This is
>
> > fine and normal. Generally the original committer should be driving the
>
> > cherry-picks
>
> >
>
> >
>
> > >
>
> > >>>> Save your +1/-1's for actual vote threads, we need to establish a
>
> > >>>> consensus
>
> > >>>> first... then in a couple of days, if it looks like we have a
>
> > consensus
>
> > >>>> I
>
> > >>>> will call a vote.
>
> > >>>>
>
> > >>>> -Stephen
>
> > >>>>
>
> > >>>
>
> > >>>
>
> > >>>
>
> > >>> ---------------------------------------------------------------------
>
> > >>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>
> > >>> For additional commands, e-mail: dev-h...@maven.apache.org
>
> > >>>
>
> > >>
>
> > >> ---------------------------------------------------------------------
>
> > >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>
> > >> For additional commands, e-mail: dev-h...@maven.apache.org
>
> > >>
>
> > >>
>
> > >
>
> > > ---
>
> > > L'absence de virus dans ce courrier électronique a été vérifiée par le
>
> > > logiciel antivirus Avast.
>
> > > https://www.avast.com/antivirus
>
> > >
>
> > >
>
> > > ---------------------------------------------------------------------
>
> > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>
> > > For additional commands, e-mail: dev-h...@maven.apache.org
>
> > >
>
> > >
>
> >
>
> > --
>
> > Sent from my phone
>
> >
>
>
>
>
>
>
>
> --
>
> Cheers
>
> Tibor
>
> --
Sent from my phone

Reply via email to