******************** 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 the `lftools sign `_ command. .. code-block:: bash STAGING_REPO=autorelease-1903 STAGING_PROFILE_ID=abc123def456 # This Profile ID is listed in Nexus > Staging Profiles lftools sign deploy-nexus https://nexus.opendaylight.org $STAGING_REPO $STAGING_PROFILE_ID Verify the distribution-karaf file with the signature. .. code-block:: bash 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)** .. figure:: 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. .. code-block:: bash 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. .. code-block:: bash mkvirtualenv lftools workon lftools pip install --upgrade lftools - Publish release tags **(Release Engineering Team)** .. code-block:: bash 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}/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. .. code-block:: bash 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/.