X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=docs%2Frelease-process%2Fproject-release.rst;h=3ef92e0af5c2b0efd2084c01b3bfb7e8123683ff;hb=HEAD;hp=87e7a607fafd64abac463e577dffb2bc2e5d8bb1;hpb=e452ff7fff59aca6e67be60502f8f913a46bd8dc;p=docs.git diff --git a/docs/release-process/project-release.rst b/docs/release-process/project-release.rst index 87e7a607f..3ef92e0af 100644 --- a/docs/release-process/project-release.rst +++ b/docs/release-process/project-release.rst @@ -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 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 $(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" - -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 +