Simultaneous Release

This page explains how the OpenDaylight release process works once the TSC has approved a release.

Preparations

After release candidate is built gpg sign artifacts using odlsign-bulk script in releng/builder/scripts.

cd scripts/
./odlsign-bulk STAGING_REPO_ID  # eg. autorelease-1367

Verify the distribution-karaf file with the signature.

gpg2 --verify distribution-karaf-x.y.z-${RELEASE}.tar.gz.asc distribution-karaf-x.y.z-${RELEASE}.tar.gz

Releasing OpenDaylight

  • Block submit permissions for registered users and elevate RE’s committer rights on Gerrit. (Helpdesk)

    ../_images/gerrit-update-committer-rights.png

    Note

    Enable Exclusive checkbox for the submit button to override any existing persmissions. Code-Review and Verify permissions are only needed during version bumping. DO NOT enable it during code freeze.

  • Nexus: click release for staging repo (Helpdesk)

  • Nexus: click release for gpgsign repo (created above in Preparations) (Helpdesk)

  • Pull latest autorelease repository (Release Engineering Team)

    Note

    If you already cloned autorelease the clone line can be skipped below.

    git clone --recursive https://git.opendaylight.org/gerrit/releng/autorelease
    cd autorelease
    git submodule update --init
    git review -s
    git submodule foreach 'git review -s'
    
  • Make sure the latest lftools is installed (Release Engineering Team)

    Note

    If you already created an lftools virtualenv you can skip the mkvirtualenv step below.

    mkvirtualenv lftools
    workon lftools
    pip install --upgrade lftools
    
  • Publish release tags (Release Engineering Team)

    export RELEASE=Beryllium-SR4
    export STREAM=${RELEASE//-*}
    export BUILD_NUM=55
    export PATCH_URL="https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${STREAM,,}/${BUILD_NUM}/archives/patches.tar.gz"
    ./scripts/release-tags.sh "${RELEASE}" /tmp/patches "$PATCH_URL"
    
  • Run autorelease-version-bump-${STREAM} job (Release Engineering Team)

  • Send email to Helpdesk with binary URL to update website (Helpdesk)

  • Send email to TSC and Release mailing lists announcing release binaries location (Release Engineering Team)

  • Merge all patches generated by the job (Release Engineering Team)

  • Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit (Helpdesk)

  • Send email to release/tsc/dev notifying tagging and version bump complete (Release Engineering Team)

  • Run autorelease-generate-release-notes-${STREAM} job (Release Engineering Team)

    This job is run a the end of every autorelease build can be used only for service releases (SR). The release notes file (release_notes.rst) is available under archives. For major releases (Nitrogen, Carbon) the docs repository has to branched and published which is only done after release reviews are completed.

    Release notes can also be manually generated with the script.

    git checkout stable/${BRANCH,,}
    cd scripts/release_notes_management/ && ./build.sh
    

    The output file (release_notes.rst) generated by the build script is available under autorelease/scripts/release_notes_management/projects/.