On Fri, Aug 16, 2013 at 11:15 AM, Fred Cooke <fred.co...@gmail.com> wrote:
> Dennis, I've been using (and mostly loving) the release plugin/process for > the better part of a decade and certainly claim to understand it well. I > don't see how my knowledge of that (or Sebb's perceived lack of knowledge > of that) is in any way relevant. The release plugin means it's harder to do > something wrong, and this is good, and why I love it. However, you can, > could, and someone may, produce non-snapshot binaries on a staging server > without having used it, from arbitrary sources and/or a bug in the release > plugin could do something wrong, and given our collective faith in that > plugin, you'd likely not check unless suspicious (eg when the assembly > plugin suddenly stopped compressing some archives). > Yes I agree with all of that. That's why we need to check the content of a source bundle during the release process. That was not the point I was trying to make though. What I meant was that if you understand what the Release plugin does, then you know where to look for certain things, like the URL of the SCM tag. > > On Fri, Aug 16, 2013 at 8:32 PM, Dennis Lundberg <denn...@apache.org> > wrote: > > > On Fri, Aug 16, 2013 at 9:52 AM, sebb <seb...@gmail.com> wrote: > > > > > On 16 August 2013 08:10, Dennis Lundberg <denn...@apache.org> wrote: > > > > On Fri, Aug 16, 2013 at 1:20 AM, sebb <seb...@gmail.com> wrote: > > > > > > > >> On 15 August 2013 20:57, Dennis Lundberg <denn...@apache.org> > wrote: > > > >> > On Thu, Aug 15, 2013 at 9:27 PM, sebb <seb...@gmail.com> wrote: > > > >> > > > > >> >> On 15 August 2013 14:16, Jason van Zyl <ja...@tesla.io> wrote: > > > >> >> > What Sebb is doing is perfectly reasonable. > > > >> >> > > > >> > > > > >> > I agree. Checking that the source bundle is correct is good > release > > > >> review > > > >> > practice. > > > >> > > > > >> > Thank you! > > > >> >> > > > >> >> > He's trying to assert that everything in the source ball > actually > > > >> comes > > > >> >> from source control and that no errant files have made their way > > into > > > >> the > > > >> >> distribution. Right now we cannot assert that the assembly plugin > > has > > > >> not > > > >> >> wandered outside the checkout and pulled something else in, or > that > > > >> someone > > > >> >> didn't accidentally put something else in the distribution. I > think > > > this > > > >> >> unlikely but we can't assert otherwise right now which I believe > is > > > >> Sebb's > > > >> >> point. > > > >> >> > > > >> >> It *has* already happened several times that I am aware of. > > > >> >> > > > >> >> The last few releases of the War plugin (various RMs & voters) > > > >> >> included at least one spurious file. > > > >> >> So it was not just a one-off packaging - and review - failure. > > > >> >> [See separate thread(s) for all the details; they are not germane > > > here.] > > > >> >> > > > >> >> The message is that mistakes happen even in automated processes. > > > >> >> Which is why independent comparison of input and output is > > valuable. > > > >> >> > > > >> >> > If we can embed the revision from which the assembly was made > in > > > the > > > >> >> assembly itself (and maybe the build number plugin is doing this > > > >> already), > > > >> >> then a tool can be made to unpack the assembly, checkout the > > revision > > > >> and > > > >> >> assert that everything in the source distribution comes from > source > > > >> control. > > > >> >> > > > > >> >> > If we can also assert that as part of each build all the > license > > > files > > > >> >> are intact and headers are in place then I believe we're done > with > > > >> >> provenance. > > > >> >> > Licenses are present, all files have valid license headers, all > > > files > > > >> >> present in the source distribution come from source control, all > > > >> >> contributions to source control are from bonafide CLA carrying > > Apache > > > >> >> committers because you don't get access to commit until the CLA > is > > on > > > >> file. > > > >> >> > > > > >> >> > Sebb, reasonably accurate? > > > >> >> > > > >> >> Yes. > > > >> >> > > > >> >> One other point I made already is that I think the vote e-mail > > needs > > > >> >> to be transparent to all, not just those on the PMC. > > > >> >> Links to the output from the release process are obviously > already > > in > > > >> >> the mail; what is missing is the input to the process, e.g.. SCM > > > >> >> coords. > > > >> >> Yes, it may be possible to dig out the details from the archive, > > but > > > >> >> that's not trivial. > > > >> >> > > > >> > > > > >> > I disagree. > > > >> > > > > >> > If we focus first on a "normal" release, one that succeeds on the > > > first > > > >> > attempt, without a respin or deleting of tags. > > > >> > To check provenance you would do this: > > > >> > > > > >> > 1. download the source bundle > > > >> > 2. unpack the source bundle > > > >> > 3. checkout the corresponding source code from the SCM > > > >> > 4. compare the two trees > > > >> > > > > >> > Right so far? > > > >> > > > > >> > What you want, if I understand you correctly, is to have the SCM > URL > > > in > > > >> the > > > >> > vote email. So that you can give that to your SCM client in step > 3. > > > >> > > > >> Yes. > > > >> > > > >> > With the process we use here at the Maven project, the SCM URL is > in > > > the > > > >> > pom.xml file that sits in the root directory of the unpacked > source > > > >> bundle. > > > >> > All you need to do is open the file and copy the URL from there. I > > > still > > > >> > fail to see how that is so much harder than to copy the URL from > an > > > >> email. > > > >> > > > > >> > That is if you don't know the conventions that we use, by way of > the > > > >> > Release Plugin. The tag will always be in the format > > > >> > ${project.artifactId}-${project.version} > > > >> > > > > >> > > > >> My point is that it should be completely transparent, even to > outside > > > >> reviewers. > > > >> > > > > > > > > I guess that this is the point that we'll have to agree to disagree > on. > > > My > > > > view is that if someone wants to to review a release from the Maven > > > > project, they'd have to have a basic understanding of how Maven works > > and > > > > how we do releases in the Maven project. That includes what the > Release > > > > Plugin is and how it works. > > > > > > Why does the release tool matter? > > > > > > > It is not the tool itself that matters, but rather what the tools does. > > Since the Release plugin automates a lot of the tasks involved when > doing a > > release, it can appear to make things less transparent. Therefor a > > knowledge about what it does is needed to make it transparent. > > > > It's still an ASF release. > > > > > > > Yes, and we must adhere to all the requirements of an ASF release. There > > are however a lot of different ways to make an ASF compliant release. > Each > > PMC decides on a process for that, that works best for them. > > > > It should not matter how the source release artifacts are generated. > > > The process of checking them is still the same. > > > > > > Of course if things go wrong, then it's important to know how the SCM > > > input was assembled into the source archives in order to fix the > > > process. > > > But the release tool is completely irrelevant to the process of > > > checking the contents of the source archives. > > > > > > > See above. > > > > > > > > > > > Most people have their own checklist of stuff they do when reviewing > a > > > > release. Would it be a good idea if we aggregate all those points on > a > > > page > > > > on the Maven web site, under the development section? That would also > > > serve > > > > as a guide for "outside reviewers". > > > > > > Yes, though that is a separate issue. > > > > > > > Agreed. > > > > > > > > >> > Now, for a respun release thing are trickier. Here it might be a > > good > > > >> idea > > > >> > to include the revision number or hash, or whatever is unique in > the > > > SCM > > > >> > being used. > > > >> > > > >> And how do you know from a vote e-mail that it is respun? > > > >> > > > > > > > > It should always say so in the subject of the vote email. Not sure if > > > that > > > > is written down somewhere, but that's how we have always done it. If > > it's > > > > missing I'll add it to our release process document. > > > > > > > > > > > >> > > > >> > Even though the code under review will always be under the > > > >> > latest tag in the above format (at least for Subversion). > > > >> > > > >> Until the next respin. > > > >> > > > >> If there is a respin, and reviewers are not following the e-mails > very > > > >> carefully, it would be quite easy to overlook an updated tag. > > > >> > > > >> This is all about making sure that it is really obvious what the > vote > > is > > > >> about. > > > >> > > > > > > > > Yes, that's why I agreed that it's a good idea to add the > revision/hash > > > > when doing a respin. > > > > > > > > > > > >> > > > >> > > > > >> >> Publishing the SCM coordinates in the mail is trivial to do, and > > > shows > > > >> >> that the input is an important part of the review process. > > > >> >> Having the information in the mail thread is also useful for the > > > >> archives. > > > >> >> > > > >> > > > > >> > As others have said before, we aim to automate the release process > > as > > > >> much > > > >> > as possible. Therefor even a seemingly minor addition will be > > > questioned, > > > >> > as you have noticed, before it is included in our process. > > > >> > > > > >> > Can you explain why the information is useful for the archives? > I've > > > seen > > > >> > you mentioned that before. Isn't that moot once the release is > > > approved? > > > >> > The tag will be in Subversion for the forseable future and noone > > will > > > >> touch > > > >> > it. What am I missing? > > > >> > > > >> Why would a release need to be revisited? > > > >> Perhaps someone is complaining that one of our releases contains > code > > > >> it should not. > > > >> If that is the case, it helps to have the evidence of the release > vote > > > >> in plain sight. > > > >> > > > > > > > > Sure it helps in those cases. But the evidence in our case is in the > > the > > > > source bundle itself, which is even better in my opinion. There you > > have > > > > the tag in the POM file. > > > > > > However, the link to the staging repo is temporary. > > > Once the repo is published, the staging repo is deleted and there is > > > no direct route to the pom from the vote e-mail. > > > > > > > Once the staging repo is promoted, its content is moved to the real > > repository. So the source bundle is available there for anyone who wants > to > > track down the complete contents of a previous release. > > > > Again this is where a bit of knowledge of what the Release Plugin does > > helps you. A release done with the Release Plugin will always be > available > > at > > > > > https://repository.apache.org/content/repositories/releases/${project.groupId}/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}-source-release.zip > > where project.groupId has had '.' replaced by '/'. > > > > > > > > Note that I'm not talking about respins here, that's another story. > > > > > > > > > > >> > > > >> > > > > >> >> > > > >> >> > On Aug 15, 2013, at 9:01 AM, Chris Graham < > chrisgw...@gmail.com> > > > >> wrote: > > > >> >> > > > > >> >> >> > > > >> >> >> > > > >> >> >> Sent from my iPhone > > > >> >> >> > > > >> >> >> On 15/08/2013, at 10:05 PM, sebb <seb...@gmail.com> wrote: > > > >> >> >> > > > >> >> >>> On 15 August 2013 10:08, Chris Graham <chrisgw...@gmail.com> > > > wrote: > > > >> >> >>>> What sebb does not appear to have understood or accepted, as > > > >> Stephen > > > >> >> has > > > >> >> >>>> endlessly pointed out, is that we vote on the source bundle, > > > not a > > > >> scm > > > >> >> >>>> revision, and that, strictly speaking a SCM is not even > > required > > > >> >> (however > > > >> >> >>>> sensible it is to use one). > > > >> >> >>>> > > > >> >> >>>> He wants a tree and a revision so that we can compare > between > > > >> >> releases, > > > >> >> >>>> where what he should be doing, strictly speaking, is > comparing > > > >> source > > > >> >> tar > > > >> >> >>>> balls, as that is what we really are voting on. > > > >> >> >>> > > > >> >> >>> I agree that what is released (and voted on) are the source > > > >> tarballs. > > > >> >> >>> And any such tarballs should be identical (barring possibly > > > >> different > > > >> >> >>> EOL settings for text files). > > > >> >> >>> > > > >> >> >>> However, that is only one of the checks that need to be made. > > > >> >> >>> > > > >> >> >>> The PMC also needs to ensure that the files are being > released > > > under > > > >> >> >>> the correct license. > > > >> >> >> > > > >> >> >> Are not the licenses in the source that is in the source > > tarball? > > > >> >> >> > > > >> >> >> If so, can not the rat plugin or similar be used to check the > > > >> >> compliance? > > > >> >> >> > > > >> >> >>> I contend that the only practical way to check the licences > is > > to > > > >> >> >>> compare the source tarball(s) with the files in SCM. > > > >> >> >>> > > > >> >> >>> [The files should only be added to SCM if the license is OK, > so > > > the > > > >> >> >>> SCM tag acts as a database of validated source files.] > > > >> >> >>> > > > >> >> >>> The SVN revision / Git hash are needed to ensure uniqueness. > > > >> >> >>> > > > >> >> >>> > > > >> > --------------------------------------------------------------------- > > > >> >> >>> 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 > > > >> >> >> > > > >> >> > > > > >> >> > Thanks, > > > >> >> > > > > >> >> > Jason > > > >> >> > > > > >> >> > ---------------------------------------------------------- > > > >> >> > Jason van Zyl > > > >> >> > Founder, Apache Maven > > > >> >> > http://twitter.com/jvanzyl > > > >> >> > --------------------------------------------------------- > > > >> >> > > > > >> >> > There's no sense in being precise when you don't even know what > > > you're > > > >> >> talking about. > > > >> >> > > > > >> >> > -- John von Neumann > > > >> >> > > > > >> >> > > > > >> >> > > > > >> >> > > > > >> >> > > > > >> >> > > > > >> >> > > > >> >> > > --------------------------------------------------------------------- > > > >> >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > > > >> >> For additional commands, e-mail: dev-h...@maven.apache.org > > > >> >> > > > >> >> -- > > > >> >> Dennis Lundberg <dev-h...@maven.apache.org> > > > >> >> > > > >> > > > >> > --------------------------------------------------------------------- > > > >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > > > >> For additional commands, e-mail: dev-h...@maven.apache.org > > > >> > > > >> -- > > > >> Dennis Lundberg <dev-h...@maven.apache.org> > > > >> > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > > > For additional commands, e-mail: dev-h...@maven.apache.org > > > > > > -- > > > Dennis Lundberg <dev-h...@maven.apache.org> > > > > > > > -- > Dennis Lundberg