Merge "Chore: Update Calcium SR1 downloads page"
[docs.git] / docs / release-process / project-release.rst
index 04c0ba2637cb5fc56f8319bbf8b008d89ee9cc9c..3ef92e0af5c2b0efd2084c01b3bfb7e8123683ff 100644 (file)
@@ -3,7 +3,7 @@ Project Standalone Release
 **************************
 
 This page explains how a project can release independently outside of the
-OpenDaylight simultanious release.
+OpenDaylight simultaneous release.
 
 Preparing your project for release
 ==================================
@@ -17,83 +17,47 @@ methods against the {project-name}-maven-stage-{stream} job:
 This job performs the following duties:
 
 1. Removes -SNAPSHOT from all pom files
-2. Produces a taglist.log, project.patch, and project.bundle files
-3. Runs a `mvn clean deploy` to a local staging repo
-4. Pushes the staging repo to a Nexus staging repo
+2. Produces a ``taglist.log``, project.patch, and project.bundle files
+3. Runs a `mvn clean deploy` to a local staging repository
+4. Pushes the staging repository to a Nexus staging repository
    https://nexus.opendaylight.org/content/repositories/<REPO_ID>
-   (REPO_ID is saved to staging-repo.txt on the log server)
-5. Archives taglist.log, project.patch, and project.bundle files to log server
+   (REPO_ID is saved to ``staging-repo.txt`` on the log server)
+5. Archives ``taglist.log``, project.patch, and project.bundle files to log
+   server
 
-The files taglist.log and project.bundle can be used later at release time to
-reproduce a byte exact commit of what was built by the Jenkins job. This can
-be used to tag the release at release time.
+The files `̀`taglist.log`` and `̀ project.bundle`̀` can be used later at release
+time to reproduce a byte exact commit of what was built by the Jenkins job.
+This can be used to tag the release at release time.
 
 Releasing your project
 ======================
 
-Once testing against the staging repo has been completed and project has
-determined that the staged repo is ready for release. A release can the be
-performed as follows:
+Once testing against the staging repository has been completed and project has
+determined that the staged repository is ready for release. A release can the be
+performed using the self-serve release process:
+https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/jjb/lf-release-jobs.html
 
-1. Ask helpdesk to sign the artifacts in staging repo
-2. Ask helpdesk to promote the staging repo
-3. Download taglist.log and project.bundle
-4. Read taglist.log and checkout the commit hash listed
-5. Merge the project.bundle patches
-6. Git tag the release
-7. Push release tag to Gerrit
 
-Steps 4-7 as bash:
+1. Ask helpdesk the necessary right on jenkins if you do not have them
+2. Log on https://jenkins.opendaylight.org/releng/
+3. Choose your project dashboard
+4. Check your release branch has been successfully staged and note the corresponding log folder
+5. Go back to the dashboard and choose the release-merge job
+6. Click on build with parameters
+7. Fill in the form:
 
-.. code:: bash
+* GERRIT_BRANCH must be changed to the branch name you want to release (e.g. stable/sodium)
+* VERSION with your corresponding project version (e.g. 0.4.1)
+* LOG_DIR with the relative path of the log from the stage release job (e.g. project-maven-stage-master/17/)
+* choose maven DISTRIBUTION_TYPE in the select box
+* uncheck USE_RELEASE_FILE box
 
-    PATCH_DIR=/tmp/patches
-    PROJECT=odlparent
-    VERSION=1.2.3
-    git checkout $(awk '{print $NF}' "$PATCH_DIR/taglist.log")
-    git fetch "$PATCH_DIR/$PROJECT.bundle"
-    git merge --ff-only FETCH_HEAD
-    git tag -asm "$PROJECT $VERSION" "v$VERSION"
-    git push origin "v$VERSION"
+8. Launch the jenkins job
 
-Once complete the Git tag should be available in Gerrit and the Artifacts should
-appear in the Nexus opendaylight.release repo.
 
-The following shell script will do this for you:
-
-.. code:: bash
-
-    #!/bin/sh
-
-    set -e
-
-    if [ $# != 3 ]; then
-        echo Usage: $0 project version log-URL
-        echo fetches a project release\'s logs from log-URL and tags the git repository
-        exit 1
-    fi
-
-    PROJECT=$1
-    VERSION=$2
-    PATCH_DIR=/tmp/patches
-
-    mkdir -p $PATCH_DIR
-    cd $PATCH_DIR
-    rm -f ${PROJECT}.bundle taglist.log{,.gz}
-    wget ${3}/patches/{${PROJECT}.bundle,taglist.log.gz}
-    gunzip taglist.log.gz
-    cd -
-    git checkout $(awk '{print $NF}' "$PATCH_DIR/taglist.log")
-    git fetch "$PATCH_DIR/$PROJECT.bundle"
-    git merge --ff-only FETCH_HEAD
-    git tag -asm "$PROJECT $VERSION" "v$VERSION"
-    git push origin "v$VERSION"
-
-You need to run it from a clone git repository of your project,
-and give it as arguments the project’s short name, the newly-
-released version, and the URL of the release build’s logs; for
-example:
-
-.. code:: bash
+This job performs the following duties:
+* download and patch your project repository
+* build the project
+* publish the artifacts on nexus
+* tag and sign the release on Gerrit
 
-    sign-odl-release odlparent 4.0.0 https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/odlparent-maven-release-master/11/