Versions Compared

Key

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

...

  1. Determine the version of the release,  e.g. 9.0-vc1, for voting candidate 1, later it's going to be referred as $VERSION
  2. Go to the incubator-netbeans-release job on Apache's Jenkins
  3. Build with Parameters, fill $VERSION into the VERSION input line and Build
  4. Wait the job to be finished.
  5. Download and extract the build artifacts.
  6. Check the SHA512 checksums:

    Code Block
    languagebash
    themeMidnight
    find . -name '*.sha512' -exec sha512sum --check '{}' \;


  7. Sign the Release Files

    Code Block
    languagebash
    themeMidnight
    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 {} \;


  8. Verify Signatures

    Code Block
    languagebash
    themeMidnight
    find . -name '*.asc' -exec gpg --verify {} \;


...

Create an empty directory for the release then:

Code Block
languagebash
themeMidnight
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
languagebash
themeMidnight
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
languagebash
themeMidnight
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
languagebash
themeMidnight
# 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

...

  1. Login to NetBeans virtual machine where redirect is configured: ssh <your_apache_id>@netbeans-vm.apache.org
  2. Become root using e.g. OTP MD5 online encryption: sudo /bin/bash

    Code Block
    languagebash
    Go to uc directory:
    themeMidnight
    sudo /bin/bash
    cd 
    cd
    /var/www/html/uc/
  3. Create new version: mkdir 9.0
  4. Go to the new directory: cd 9.0
  5. 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
    -java
    /incubating-
    9
    11.0/nbms/updates.xml.gz
  6. Create new .htaccess file: touch .htaccess
  7. Edit the .htaccess file in vi editor and add correct redirect rule: RedirectMatch
     -o updates.xml.gz
    echo ' RedirectMatch ^/uc/
    9
    11.0/(.*)(\?.*)?
    $ http://www.apache.org/dyn/closer.lua?action=download&filename=incubator/netbeans/incubating-netbeans
    -java
    /incubating-
    9
    11.0/nbms/$1
    Edit 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/
    9
    10.0/(.*)(\?.*)?$ https://archive.apache.org/dist/incubator/netbeans/incubating-netbeans
    -java
    /incubating-
    9
    10.0/nbms/$1' > .htaccess
    vim updates.xml.gz


  8. Modify updates.xml.gz file of previous release to contain:

    Code Block
    languagexml
    themeMidnight
    <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.