Merge "Chore: Update Calcium SR1 downloads page"
[docs.git] / docs / release-process / project-release.rst
index a16737cd197598a9ae94545bbc8620aaa850bcf5..3ef92e0af5c2b0efd2084c01b3bfb7e8123683ff 100644 (file)
@@ -3,54 +3,61 @@ 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
 ==================================
 
-A project can produce a staging repository by clicking "build" for their
-{project-name}-maven-release-{stream} job. This job performs the following
-duties:
+A project can produce a staging repository by using one of the following
+methods against the {project-name}-maven-stage-{stream} job:
+
+* Leave a comment ``stage-release`` against any patch for the stream to build
+* Click ``Build with Parameters`` in Jenkins Web UI for the 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:
-
-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:
-
-.. code:: bash
-
-    PATCH_DIR=/tmp/patches
-    PROJECT=odlparent
-    VERSION=1.2.3
-    git checkout $(cat "$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"
-
-Once complete the Git tag should be available in Gerrit and the Artifacts should
-appear in the Nexus opendaylight.release repo.
+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 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:
+
+* 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
+
+8. Launch the jenkins job
+
+
+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
+