Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id CD410200C05 for ; Mon, 9 Jan 2017 01:27:07 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id CBC7C160B45; Mon, 9 Jan 2017 00:27:07 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id EDCDB160B36 for ; Mon, 9 Jan 2017 01:27:06 +0100 (CET) Received: (qmail 93539 invoked by uid 500); 9 Jan 2017 00:27:05 -0000 Mailing-List: contact general-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: general@incubator.apache.org Delivered-To: mailing list general@incubator.apache.org Received: (qmail 93528 invoked by uid 99); 9 Jan 2017 00:27:05 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jan 2017 00:27:05 +0000 Received: from mail-yw0-f175.google.com (mail-yw0-f175.google.com [209.85.161.175]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 44E2C1A031B for ; Mon, 9 Jan 2017 00:27:05 +0000 (UTC) Received: by mail-yw0-f175.google.com with SMTP id w75so14742304ywg.1 for ; Sun, 08 Jan 2017 16:27:05 -0800 (PST) X-Gm-Message-State: AIkVDXJhtniZv+q/oqEwiL8lKwrj/+uzCedx8jMhvYsNhbbbUUeSem6QmJ5toSwdXta0B5gQlvUM2zsSba5ZAw== X-Received: by 10.129.129.198 with SMTP id r189mr85977625ywf.0.1483921624049; Sun, 08 Jan 2017 16:27:04 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "John D. Ament" Date: Mon, 09 Jan 2017 00:26:53 +0000 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Release Process [was: [VOTE] Drop incubating requirement of Maven artifacts] To: general@incubator.apache.org Content-Type: multipart/alternative; boundary=94eb2c0812f246b37905459e6d6d archived-at: Mon, 09 Jan 2017 00:27:08 -0000 --94eb2c0812f246b37905459e6d6d Content-Type: text/plain; charset=UTF-8 On Sun, Jan 8, 2017 at 6:55 PM Niclas Hedhman wrote: > Yes, I think we all hear your "frustration" that the process is not as > streamlined as it perhaps could, nor that the documentation is as solid as > one might expect (patches are welcome) > > The underlying "issue" between the previous "GitHub/Maven releases" and > "Apache releases" was discussed at length long time ago. Basically, pushing > something to Maven Central is not a release. It is a "convenience service" > by the project, and is not at all required from Apache's point of view. > This fact may have some repercussions in how you approach the release. > > Perhaps it is possible to automate a bunch of this, for future podlings to > benefit from. And perhaps with help from someone who has experienced this > recently and have notes, infra could create a self-service portal for > setting it up. > > In Apache Polygene, we have gotten very far in terms of release automation, > but the initial steps are of course outside our scope. Probably after our > next release, we will publish reusable Gradle components for the Apache > release process for other Gradle based projects to benefit from. We'll see > exactly how we do this. > Agreed with all of the above. In addition, the ASF parent pom is at https://svn.apache.org/repos/asf/maven/pom/trunk/asf/pom.xml which can have a lot more added to it. It strikes me though from reading your commentary, a lot of what you ran into is specific to how your project is setup. RAT for instance, I wouldn't have ignored headers on README.md (it should have headers). Standard eclipse files should probably be excluded by default, since those are IDE generated values. However in your case, if the file is in the release it should have a valid header. Release processes are interesting. Given a similar set of developers, its surprisingly high how frequently release steps will differ between projects. Even when it comes to a build. Some projects like to have an explicit RAT check step, others like it with every build. Different projects have different preferences and I think if we standardize it we'll start to stifle creativity. > > Cheers > Niclas > > > On Mon, Jan 9, 2017 at 1:12 AM, Edward Capriolo > wrote: > > > On Sat, Jan 7, 2017 at 9:42 AM, John D. Ament > > wrote: > > > > > On Sat, Jan 7, 2017 at 9:23 AM Niclas Hedhman > > wrote: > > > > > > > On Sat, Jan 7, 2017 at 9:36 PM, John D. Ament > > > > > wrote: > > > > > > > > > > So, instead of tying the "incubating" marker to "incubating", I > > would > > > > favor > > > > > > a system of marker(s) indicating the code maturity (incl legal). > > So, > > > > for a > > > > > > podling release to be 1.2.3 (a la Groovy), the same release > > standard > > > as > > > > > > TLPs are applied, but allow "alpha", "rc" or similar markers for > > > > podlings > > > > > > to "practice" releases. Probably not pushing those to mirrors, > but > > > > > > otherwise identical in "process" for podling to get their grips > on > > > the > > > > > > release process. > > > > > > > > > > > > > > > I think this is a fair point, and probably close to what podling > > > > > communities do (when its a fairly new codebase). We often see > > releases > > > > in > > > > > the 0.x line, and in the 1+ lines. Its up to the podling to > > determine > > > > how > > > > > mature they are from a release numbering standpoint. I wouldn't > want > > > the > > > > > IPMC to enforce a versioning scheme. > > > > > It does however seem like a foundation wide versioning scheme may > > make > > > > > sense, or at least references to common references, e.g. semver, > may > > > make > > > > > sense as a recommendation to new podlings. > > > > > > > > Yeah, this is a tricky question. On one hand I don't like to dictate, > > but > > > > as a user I like to have a unified view of the world. Perhaps one or > > two > > > > DOAP entries would be a good way, and more strongly promote the DOAP > > and > > > > over time our common tooling could provide the unified view. A bit of > > > "be a > > > > good citizen.... for your own sake" attitude. > > > > > > > > > > > I'm not sure what you mean by DOAP entries. Do you have an example? > > > > > > John > > > > > > > > > > > > > > > > > Cheers > > > > -- > > > > Niclas Hedhman, Software Developer > > > > http://polygene.apache.org - New Energy for Java > > > > > > > > > > > But that pendulum has swung in the opposite direction, and podling > releases > > are now expected to be at ASF TLP levels. > > > > I agree with this. I have started the gossip podling. Getting the release > > out to ASF levels is a bit tricky. Let me explain my situation: > > > > For projects outside of apache I have my own github and I setup an > account > > on sonatype. I publish two or three artifacts to maven central and have a > > good amount of foot traffic for what are niche projects. > > > > github, sonatype, and travis yaml is a lightning fast setup. Sonatype > asks > > you to submit a jira one time and after that you can publish unlimited > > artifacts in your group to maven central. After the initial setup a > single > > pom file is all you need to be publishing to maven central. > > mvn release clean; mvn release prepare; mvn release perform > > With some plugins you can even automate the closing and releasing the > > repository if you wish,I still do that by hand in sonatype UI. > > > > If you compare this with the apache process there are a lot of > disconnected > > steps. For example, I took on the role of release engineer. We all live > in > > the stack overflow generation, this document is really great > > https://www.apache.org/dev/release-signing.html in its detail, however > it > > lacks the "here is the 10 steps you actually need" to cut a release. We > > also had to schedule a key signing party for me. > > > > Also it was very difficult to find the stripped down basic pom file. We > > luckily got a contributor that did 90% but as we got closer to the > release > > I had to figure out how the rat plugin works, how to make it exclude > things > > etc. > > > > > > org.apache.rat > > > apache-rat-plugin > > > > > > > > README.md > > > > eclipse_template.xml > > > > > > > > > > verify > > > > > check > > > > > > > > > > > > You have to go to a different page for the release module configuration > > > > > > false > > > > true > > > > true > > > > > > Now, I know this is just a process of tracking down some other pom file > in > > the incubator and taking it apart. > > > > There were other things too like tickets to infra to give me assess to > > things svn, release.apache.org. At one point I was following some old > doc > > in apache which confused me on which server to put my public_html file. > > > > Please do not take this to mean I am complaining about the current > process > > or defending my own ignorance! However, if the process stays as it is. I > do > > think one streamline doc could disconnect all the steps. An example would > > be like this. > > > > Checklist: > > Have a signed key with WEB of trust? NO - click here. > > Have svn access to path/to/keys ? Create infra ticket/contact podling > > Create INFRA for project jira > > Create INFRA for https://repository.apache.org/ > > Complete pom file with special release and rat baked in > > ... > > put your settings in .m2/settings file > > > > To wrap it up I do not mind the requirements put it was fairly daunting > to > > connect u all the things that have to happen to make a release compared > to > > (sonatype,git,travis) and I found the process tricky to navigate. It > sapped > > more time than I would have liked and often you end up needing help from > > infra/ podling crew and people are not always free at the same time. > > > > > > -- > Niclas Hedhman, Software Developer > http://polygene.apache.org - New Energy for Java > --94eb2c0812f246b37905459e6d6d--