...
- Determine the version of the release, e.g. 9.0-vc1, for voting candidate 1, later it's going to be referred as $VERSION
- Go to the incubator-netbeans-release job on Apache's Jenkins
- Build with Parameters, fill $VERSION into the VERSION input line and Build
- Wait the job to be finished.
- Download and extract the build artifacts.
Check the SHA512 checksums:
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
|
find . -name '*.sha512' -exec sha512sum --check '{}' \; |
Sign the Release Files
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
|
find . -name '*.zip' -exec gpg --armor --output {}.asc --detach-sig {} \;
# STop here if nbms are not going to be published
find . -name '*.nbm' -exec gpg --armor --output {}.asc --detach-sig {} \;
find . -name '*.gz' -exec gpg --armor --output {}.asc --detach-sig {} \; |
Verify Signatures
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
|
find . -name '*.asc' -exec gpg --verify {} \; |
...
Create an empty directory for the release then:
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
|
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 |
Publish to Staging Area
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
|
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." |
...
Go to your local git repository clone. Collect the git commit hash from the release build job.
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
|
git fetch --all
git tag -a $VERSION -m "Apache NetBeans $VERSION." $HASH
git push origin $VERSION |
...
While vote candidate $VERSION is something, like: 11.0-vc3, the actual $RELEASE_VERSION is: 11.0
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
|
# 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-$RELEASE_VERSION |
...
- Login to NetBeans virtual machine where redirect is configured: ssh <your_apache_id>@netbeans-vm.apache.org
Become root using e.g. OTP MD5 online encryption: sudo /bin/bash
Go to uc directory: cd - Create new version: mkdir 9.0
- Go to the new directory: cd 9.0
- Download the new gzipped module catalog: wget
mkdir 11.0
cd 11.0/
curl https://dist.apache.org/repos/dist/release/incubator/netbeans/incubating-netbeans |
-java9 - Create new .htaccess file: touch .htaccess
- Edit the .htaccess file in vi editor and add correct redirect rule: RedirectMatch
-o updates.xml.gz
echo ' RedirectMatch ^/uc/ |
9$ $ http://www.apache.org/dyn/closer.lua?action=download&filename=incubator/netbeans/incubating-netbeans |
-java9Edit the .htaccess file of the previous version and change the redirect rule: RedirectMatch ' > .htaccess
# Update the previous version UC
cd ../10.0/
echo 'RedirectMatch ^/uc/ |
910.0/(.*)(\?.*)?$ https://archive.apache.org/dist/incubator/netbeans/incubating-netbeans |
-java910.0/nbms/$1' > .htaccess
vim updates.xml.gz |
Modify updates.xml.gz file of previous release to contain:
Code Block |
---|
|
<notification url="https://netbeans.apache.org/download/index.html">Apache NetBeans IDE |
9 11.0 is available!</notification> |
element in its <module_updates> root element.