...
- You must be a PPMC member / Committer in Apache NetBeans
- You must have connected your Apache ID to Apache NetBeans GitHub via GitBox: https://gitbox.apache.org
- You must be able to change the branch being used for Jenkins builds,
i.e., seeJira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key INFRA-17082 - You shall have a PGP KEY
- You need to have sudo access to netbeans-vm.apache.org
2. Obtaining and Preparing the Release Candidate Files
...
4. Publishing them in the staging area
Create an empty directory for the release then:
Code Block |
---|
svn checkout --depth immediates https://dist.apache.org/repos/dist/ apache-dist cd apache-dist/dev && svn update --depth immediates incubator cd incubator/netbeans && svn update --set-depth infinity |
--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:
...
Publish to Staging Area
Code Block |
---|
svn rm incubating-netbeans-platform/* incubating-netbeans/* mkdir incubating-netbeans-platform/incubating-$VERSION, incubating-netbeans/incubating-$VERSION # Copy the incubator-netbeans-platform and incubator-netbeans artifacts with checksums and signatures in place svn add incubating-netbeans-platform/* incubating-netbeans/* svn --username "<your-apache-username>" |
...
commit -m "Apache NetBeans |
...
$VERSION." |
5. Creating tag for the
...
Release:
Go to your local git repository clone. Collect the git commit hash from the release build job.
Code Block |
---|
git fetch --all
git tag -a $VERSION -m "Apache NetBeans $VERSION." $HASH
git push origin $VERSION |
6. Releasing a Release
...
To actually release a candidate, move it to the release area. In addition to the staging area, the release area needs to be checked out:
$ cd $RELEASE
$ mkdir -p repos/dist/release/incubator/netbeans
$ cd repos/dist/release/incubator/netbeans
$ svn checkout https://dist.apache.org/repos/dist/release/incubator/netbeans
Then move the candidate to the release area:
$ svn move $RELEASE/repos/dist/dev/incubator/netbeans/<candidate> .
Example:
...
Note |
---|
The actual release can happen after the released artifacts passed the IPMC vote. |
While vote candidate $VERSION is something, like: 11.0-vc3, the actual $RELEASE_VERSION is: 11.0
Code Block |
---|
# Go to the apache-dist directory which had been previously checked out in Step 4. cd release && svn update --depth immediates incubator cd incubator/netbeans && svn update --set-depth infinity svn rm incubating-netbeans-platform/* incubating-netbeans/* # Use svn move or copy to copy the the artifact from the staging area svn mv ../../../dev/incubator/netbeans/incubating-netbeans-platform/incubating-$VERSION incubating-netbeans-platform/incubating-$RELEASE_VERSION svn mv ../../../dev/incubator/netbeans/incubating-netbeans |
...
/incubating- |
...
$VERSION incubating-netbeans |
...
/incubating- |
...
Remove the deprecated .md5 files:
...
$RELEASE_VERSION |
- Go to the release version directories and rename the release candidate artifacts to have the release version in their name.
- Adjust the name change in the checksum files (or recreate them)
- Doublecheck the checksums with: find . -name '*.
...
- sha512'
...
- -exec sha512sum -c {} \;
- Commit the changes from the apache-dist directory
And then commit the move:
$cd $RELEASE/repos/dist
$ svn commit -m "<commitmessage>" dev/incubator/netbeans/release/incubator/netbeans/
7. Updating redirect for NetBeans Distribution Update Center
Once release is synchronized across all download mirrors it is necessary to update redirect for release modules to final location:
- Login Login to NetBeans virtual machine where redirect is configured: ssh <your_apache_id>@netbeans-vm.apache.org
- Become Become root using e.g. OTP MD5 online encryption: sudo /bin/bash
- Go Go to uc directory: cd /var/www/html/uc/
- Create Create new version: mkdir 9.0
- Go Go to the new directory: cd 9.0
- Download Download the new gzipped module catalog: wget https://dist.apache.org/repos/dist/release/incubator/netbeans/incubating-netbeans-java/incubating-9.0/nbms/updates.xml.gz
- Create Create new .htaccess file: touch .htaccess
- Edit Edit the .htaccess file in vi editor and add correct redirect rule: RedirectMatch ^/uc/9.0/(.*)(\?.*)?$ $ http://www.apache.org/dyn/closer.lua?action=download&filename=incubator/netbeans/incubating-netbeans-java/incubating-9.0/nbms/$1
- Edit the .htaccess file of the previous version and change the redirect rule: RedirectMatch ^/uc/9.0/(.*)(\?.*)?$ https://archive.apache.org/dist/incubator/netbeans/incubating-netbeans-java/incubating-9.0/nbms/$1