Release Process
===============

Release artifacts
-----------------
There will be 4 major artifacts produced as the result of release process.

- **SD-Fabric Docker image** - This includes all control plane software
- **Stratum Docker image** - This includes Stratum switch OS
- **SD-Fabric Helm charts**
- **SD-Fabric documentation** - The website you are currently viewing

Prerequisite
------------
SD-Fabric releases are guarded by our system integration tests.
Before each release, we check the test result and make sure we have a "green light".
Visit :ref:`testing_guide` for more details.

Stratum Docker image
--------------------
Stratum has its own release process and release timeline.
We request Stratum TST to make a release when necessary.

SD-Fabric Docker Image
----------------------
We tag and release the following repositories in order:

- onos:
    - Run Jenkins release job: https://jenkins.onosproject.org/view/onos-release/job/onos-bazel-release-build/
    - Manually publish artifacts to Maven central: https://oss.sonatype.org/

- trellis-control:
    - Update ``pom.xml(s)``:

        - Update dependencies (use non-snapshot onos)
        - Update version
    - Push Gerrit change, merge
    - Wait for Jenkins job to publish artifacts (https://jenkins.onosproject.org/view/Trellis/job/maven-publish_trellis-control)
    - Manually release artifacts: https://oss.sonatype.org/

- fabric-tna:
    - Update ``pom.xml``:

        - Update dependencies (use non-snapshot ``onos`` and ``trellis-control``)
        - Update version
    - Tag repository

- up4:
    - Update ``pom.xml(s)``:

        - Update dependencies (use non-snapshot onos)
        - Update version
    - Tag repository

- SD-Fabric image:
    - Update Makefile.stable with git tags used above
    - Merge, wait for Jenkins to publish stable image
    - Manually tag image on harbor

SD-Fabric Helm charts
---------------------
The SD-Fabric umbrella chart includes 5 sub-charts:

  - ONOS classic
  - Stratum
  - PFCP agent
  - DBUF
  - INT host reporter

To update each sub-charts:
  - Update chart version and default image in each charts
  - Post-merge CI job will tag the repositories according to chart version

To update the umbrella charts:
  - Update chart version and dependencies in ``sdfabric-helm-charts/sdfabric/Chart.yaml``
  - Post-merge CI job will tag the repositories according to chart version


SD-Fabric documentation
-----------------------
- Complete release note
- Tag documentation repository for each release
- Branch documentation repository for each major releases
