Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1.  PPMC vote and tally.

  2. During incubation, IPMC vote, for example: 

    https://lists.apache.org/thread.html/ae06af5a10d99a14e35a0fee8a8e35e91505b85293549f8152a075d4@%3Cgeneral.incubator.apache.org%3E

    Conclude and tally the vote on general@ by replying with a final [RESULT][VOTE] <subject>, which can be done after minimal 72h. Check the general@ list for examples on the format and content of such [RESULT][VOTE] emails, for example:

    https://lists.apache.org/thread.html/30c40866c0ad97d747c270dc7b7ddc78f60157695763bf355e1697a4@%3Cgeneral.incubator.apache.org%3E


  3. The source distribution at https://dist.apache.org/repos/dist/dev/incubator/netbeans/

    needs to be moved (can use svn mv for that) to something like:

    https://dist.apache.org/repos/dist/release/incubator/netbeans/incubating-netbeans-html4j/

  4. Also, the KEYS file needed to verify netbeans distributions needs to be uploaded in the root (netbeans) dist folder there as well:

    http://www.apache.org/dev/release-distribution.html#sigs-and-sums

  5. Finally, the NetBeans website (netbeans.apache.org) needs to provide a download link for the distribution, including (explicitly) links to:

    http://www.apache.org/dev/release-distribution.html#download-links

    Example: http://impala.incubator.apache.org/downloads.html

    i
    .e., u
    pdate the website with the release info, as that is required to make it a proper and community-visible release.

Producing a Release Candidate

1. Obtaining the release candidate files

-decide version of the product, $VERSION (e.g. 9.0-beta, 9.0, etc.)
-go to:
https://builds.apache.org/view/Incubator%20Projects/job/incubator-netbeans-release/
-press "Build with Parameters", fill $VERSION into the VERSION input line, press Build
-wait for the build to finish
-click on the build that was started above,
-download the build artifacts
-check the MD5 and SHA1 sums of each zip ($ZIP):
md5sum --check $ZIP.md5
sha1sum --check $ZIP.sha1
E.g.:
for ZIP in *.zip; do md5sum --check $ZIP.md5; sha1sum --check $ZIP.sha1; done

(should print things like "<zip>: OK")

2. Signing the release candidate

-create a GPG key, see:
https://www.apache.org/dev/release-signing.html
-for each zip file ($ZIP) do:
gpg --armor --output $ZIP.asc --detach-sig $ZIP
E.g.:
for ZIP in *.zip; do gpg --armor --output $ZIP.asc --detach-sig $ZIP; done
-verify the signatures:
gpg --verify $ZIP.asc $ZIP
E.g.:
for ZIP in *.zip; do gpg --verify $ZIP.asc $ZIP; done

3. Publishing them in the staging area

-in a directory (marked as $RELEASE in the following) do:
--setup (this can be reused in the future):
---mkdir -p dev/incubator/netbeans
---cd dev/incubator/netbeans
---svn checkout https://dist.apache.org/repos/dist/dev/incubator/netbeans .
--publishing to staging repository:
---create directories for the release, e.g. incubating-netbeans-platform/incubating-$VERSION, incubating-netbeans-java/incubating-$VERSION
---place the source zips, convenience binaries and the sha1, md5 asn asc files into the appropriate folder, e.g.:
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-bin.zip
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-bin.zip.asc
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-bin.zip.md5
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-bin.zip.sha1
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-source.zip
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-source.zip.asc
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-source.zip.md5
incubating-netbeans-java/incubating-9.0-beta/incubating-netbeans-java-9.0-beta-source.zip.sha1
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-bin.zip
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-bin.zip.asc
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-bin.zip.md5
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-bin.zip.sha1
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-source.zip
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-source.zip.asc
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-source.zip.md5
incubating-netbeans-platform/incubating-9.0-beta/incubating-netbeans-platform-9.0-beta-source.zip.sha1

---svn add all the files, e.g.: "svn add incubating-netbeans-java/ incubating-netbeans-platform/"
---commit the files into the staging area:

svn --username "<your-apache-username>" commit

commit message could be something like: "Apache NetBeans 9.0-beta RC1."
It may be possible to skip the --username "<your-apache-username>", but it shouldn't hurt. You'll be asked for a password.

4. Creating tag for the release candidate:

-let CANDIDATE be "rc1", "rc2", etc. depending on which candidate this is
-determine the git revision that was used to build the release - go to the Jenkins job, and look for a long hash after "Revision:". Will be referred to as $HASH.
-prepare a commit message - could be something like "$CANDIDATE of $VERSION release", or something more descriptive. ($COMMIT)
-do the tag:
git tag -a '$VERSION-$CANDIDATE' -m "$COMMIT" $HASH
-push the tag:
git push origin '$VERSION-$CANDIDATE'
(assuming the Apache repo is "origin" for you)

Staging a Release Candidate

...