Versions Compared

Key

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

...

  1. You must be a PPMC member / Committer in Apache NetBeans
  2. You must have connected your Apache ID to Apache NetBeans GitHub via GitBox: https://gitbox.apache.org
  3. You must be able to change the branch being used for Jenkins builds,
    i.e., see 
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyINFRA-17082
  4. You shall have a PGP KEY
  5. 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
  1. Go to the release version directories and rename the release candidate artifacts to have the release version in their name.
  2. Adjust the name change in the checksum files (or recreate them)
  3. Doublecheck the checksums with: find . -name '*.

...

  1. sha512'

...

  1. -exec sha512sum -c {} \;
  2. 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:

  1.  Login Login to NetBeans virtual machine where redirect is configured: ssh <your_apache_id>@netbeans-vm.apache.org
  2.  Become Become root using e.g. OTP MD5 online encryption: sudo /bin/bash
  3.  Go Go to uc directory: cd /var/www/html/uc/
  4.  Create Create new version: mkdir 9.0
  5.  Go Go to the new directory: cd 9.0
  6.  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
  7.  Create Create new .htaccess file: touch .htaccess
  8.  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
  9. 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