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