Update the Neon release repos links
[integration/packaging.git] / docs / rpms.rst
index 28d75f617c9912052b08356119e736349437a3df..992e626f2cbbce631069f92bdfe76a629870d7c5 100644 (file)
@@ -29,13 +29,31 @@ The `packaging-build-rpm job`_ is the primary way to build an RPM from an
 OpenDaylight distribution (built by `autorelease <autorelease-builds.html>`_
 or the `snapshot distribution <distribution-job-builds.html>` job). It accepts
 a set of `parameters`_ that can be used to configure the build and passes them
-to the `RPM build logic in Integration/Packaging's repo`_. The resulting
-artifacts are hosted on Jenkins for up to a week. The job actually produces
+to the `RPM build logic in Integration/Packaging's repo`_. The job produces
 both a noarch RPM and source RPM. The noarch RPM can be passed to test jobs for
 validation. The source RPM can be downloaded to a system with the required
 credentials and then pushed to the CentOS Community Build system to be built
 into a noarch RPM on their servers and hosted in their repos.
 
+The RPM and SRPM artifacts of the job are handled differently depending on the
+Jenkins silo the job is executing in.
+
+When running in production (releng silo), artifacts are hosted on Nexus. There
+are RPM repos for each active branch (`oxygen-devel`_, `fluorine-devel`_,
+`neon-devel`_). New builds are automatically added to the appropriate devel for
+their branch.
+
+When running in the sandbox, artifacts are thrown away by default. To keep an
+artifact for further testing, either:
+
+* Set the DEPLOY_TO_REPO parameter to opendaylight-epel-7-x86_64-devel. This is
+  a scratch repo that sandbox packaging jobs have permission to push to.
+  Packages will land in the `scratch repo on Nexus`_.
+* Add a path regex that matches it to the Archive Artifacts param of the job
+  (`ARCHIVE_ARTIFACTS=/home/jenkins/rpmbuild/RPMS/ noarch/opendaylight*.rpm`).
+  The files matched will be stored in OpenDaylight's log archive along with the
+  other job logs.
+
 packaging-build-rpm-snap
 ^^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -58,11 +76,35 @@ installs the package with the system's package manager, starts OpenDaylight's
 systemd service, verifies that it's reported as active, connects to the Karaf
 shell and checks that some key bundles are present.
 
+.. _intpak-rpm-repos:
+
 Repositories
 ------------
 
-CentOS
-^^^^^^
+OpenDaylight Nexus
+^^^^^^^^^^^^^^^^^^
+
+Packages resulting from build jobs running on OpenDaylight's infrastructure are
+automatically hosted on OpenDaylight's Nexus repositories.
+
+Continious Delivery Repositories
+................................
+
+OpenDaylight provides fully-automated Continuous Delivery pipelines for RPMs.
+
+Every RPM built in the production RelEng Jenkins silo is pushed to the devel
+repo appropriate for its branch. Builds are triggered for every successful
+autorelase job, as well as daily using the latest available snapshot build.
+
+
+Continuous Delivery repos for Oxygen and Fluorine:
+
+- `opendaylight-oxygen-epel-7-x86_64-devel`_
+- `opendaylight-fluorine-epel-7-x86_64-devel`_
+- `opendaylight-neon-epel-7-x86_64-devel`_
+
+CentOS Community Build System
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 While most RPM builds are triggered automatically in OpenDaylight's Jenkins,
 some RPMs are promoted to be hosted in OpenDaylight's CentOS repositories.
@@ -70,44 +112,35 @@ There are a series of repos that are updated at varying frequencies, from
 testing repos that are updated with pre-release versions very frequently to
 release repos that are the permanent home of official OpenDaylight releases.
 
-Testing Repositories
-....................
-
-Repositories with the -testing suffix are updated very frequently with
-pre-release versions of OpenDaylight from the appropriate branch. New RPMs
-replace the old ones, so installing from these repos will always provide the
-most recent versions.
-
-Testing repos for Boron, Carbon and Nitrogen:
-
-- `nfv7-opendaylight-5-testing`_
-- `nfv7-opendaylight-6-testing`_
-- `nfv7-opendaylight-7-testing`_
-
 Release Repositories
 ....................
 
 Repositories with the -release suffix host official OpenDaylight releases. They
 are updated infrequently to never, and will host their release artifacts
 forever. Release repos are subdivided into two groups based version numbers.
-Repositories with both a major and minor version number (52, 53, 60) are pinned
-to a specific OpenDaylight release or service release (Boron SR2 5.2.0, Boron
-SR3 5.3.0, Carbon 6.0.0). Repositories with only a major version (5, 6) will
-always host the latest service release from that major release. If a new SR
-comes out, the repo will get the update (Boron SR4 will replace Boron SR3).
-
-Release repos for the latest Boron and Carbon service releases:
-
-- `nfv7-opendaylight-5-release`_
-- `nfv7-opendaylight-6-release`_
-
-Release repos that will permanently host specific Boron and Carbon releases:
-
-- `nfv7-opendaylight-50-release`_
-- `nfv7-opendaylight-51-release`_
-- `nfv7-opendaylight-52-release`_
-- `nfv7-opendaylight-53-release`_
-- `nfv7-opendaylight-60-release`_
+Repositories with both a major and minor version number (80, 83) are pinned to
+a specific OpenDaylight release or service release (Oxygen 8.0.0, Oxygen SR3
+8.3.0). Repositories with only a major version (8, 9) will always host the
+latest service release from that major release. If a new SR comes out, the repo
+will get the update (Oxygen SR4 will replace Oxygen SR3).
+
+Release repo for the latest Oxygen and Fluorine service releases:
+
+- `nfv7-opendaylight-8-release`_
+- `nfv7-opendaylight-9-release`_
+- `nfv7-opendaylight-10-release`_
+
+Release repos that will permanently host specific Oxygen and Fluorine releases:
+
+- `nfv7-opendaylight-80-release`_
+- `nfv7-opendaylight-81-release`_
+- `nfv7-opendaylight-82-release`_
+- `nfv7-opendaylight-83-release`_
+- `nfv7-opendaylight-84-release`_
+- `nfv7-opendaylight-90-release`_
+- `nfv7-opendaylight-91-release`_
+- `nfv7-opendaylight-92-release`_
+- `nfv7-opendaylight-100-release`_
 
 Repository Configuration Files
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -123,38 +156,61 @@ Package managers like Yum and DNF will automatically find repo configuration
 files placed in the /etc/yum.repos.d/ directory. Curl them into place with
 something like:
 
-    sudo curl -o /etc/yum.repos.d/opendaylight-7-testing.repo \
-      "https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=blob_plain;f=rpm/example_repo_configs/opendaylight-7-testing.repo"
+    sudo curl -o /etc/yum.repos.d/opendaylight-10-devel.repo \
+      "https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=blob_plain;f=packages/rpm/example_repo_configs/opendaylight-10-devel.repo"
 
 Standard install commands will now find the repository as expected.
 
     sudo dnf install -y opendaylight
 
+The latest RPM in the repo will be installed.
+
 Custom RPMs
 -----------
 
 It's possible for developers to build custom RPMs, typically with unmerged
-patches that need system testing. First, use the `integration-multipatch-test`_
-job to create a custom distribution that includes the set of unmerged patches.
-See the `Custom Distributions <distribution-job-builds.html#custom-
-distributions>`_ section for extensive docs. Once you have a custom
-distribution artifact, pass it to the `packaging-build-rpm job`_ to package it
-as an RPM. See the `packaging-build-rpm`_ section for docs.
+patches that need system testing.
+
+Most developers will want to run these jobs in the ODL Jenkins sandbox
+instance, as only a few community members have permission to manually trigger
+jobs on the releng Jenkins instance. See the `Jenkins sandbox`_ docs for
+details about how to get permissions to trigger sandbox jobs, required
+configuration and normal usage.
+
+To build an custom distribution with unmerged code, first use the
+`integration-multipatch-test`_ job to create distribution that includes the set
+of unmerged patches.  See the `Custom Distributions
+<distribution-job-builds.html#custom-distributions>`_ section for extensive
+docs.
+
+Once you have the distribution you want to package as an RPM, pass it to the
+`packaging-build-rpm job`_ to do the build. Use the See the `packaging-build-rpm`_
+section for docs.
 
 .. _packaging-build-rpm job: https://jenkins.opendaylight.org/releng/job/packaging-build-rpm-master/
 .. _parameters: https://jenkins.opendaylight.org/releng/job/packaging-build-rpm-master/build
-.. _RPM build logic in Integration/Packaging's repo: https://github.com/opendaylight/integration-packaging/blob/master/rpm/build.py
+.. _RPM build logic in Integration/Packaging's repo: https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=tree;f=packages/rpm
 .. _packaging-build-rpm-snap job: https://jenkins.opendaylight.org/releng/job/packaging-build-rpm-snap-master/
 .. _packaging-test-rpm job: https://jenkins.opendaylight.org/releng/job/packaging-test-rpm-master/
-.. _nfv7-opendaylight-5-testing: http://cbs.centos.org/repos/nfv7-opendaylight-5-testing/x86_64/os/Packages/
-.. _nfv7-opendaylight-6-testing: http://cbs.centos.org/repos/nfv7-opendaylight-6-testing/x86_64/os/Packages/
-.. _nfv7-opendaylight-7-testing: http://cbs.centos.org/repos/nfv7-opendaylight-7-testing/x86_64/os/Packages/
-.. _nfv7-opendaylight-5-release: http://cbs.centos.org/repos/nfv7-opendaylight-5-release/x86_64/os/Packages/
-.. _nfv7-opendaylight-6-release: http://cbs.centos.org/repos/nfv7-opendaylight-6-release/x86_64/os/Packages/
-.. _nfv7-opendaylight-50-release: http://cbs.centos.org/repos/nfv7-opendaylight-50-release/x86_64/os/Packages/
-.. _nfv7-opendaylight-51-release: http://cbs.centos.org/repos/nfv7-opendaylight-51-release/x86_64/os/Packages/
-.. _nfv7-opendaylight-52-release: http://cbs.centos.org/repos/nfv7-opendaylight-52-release/x86_64/os/Packages/
-.. _nfv7-opendaylight-53-release: http://cbs.centos.org/repos/nfv7-opendaylight-53-release/x86_64/os/Packages/
-.. _nfv7-opendaylight-60-release: http://cbs.centos.org/repos/nfv7-opendaylight-60-release/x86_64/os/Packages/
-.. _example repo config files for each official repository: https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=tree;f=rpm/example_repo_configs;hb=refs/heads/master
+.. _opendaylight-oxygen-epel-7-x86_64-devel: https://nexus.opendaylight.org/content/repositories/opendaylight-oxygen-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/
+.. _opendaylight-fluorine-epel-7-x86_64-devel: https://nexus.opendaylight.org/content/repositories/opendaylight-fluorine-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/
+.. _opendaylight-neon-epel-7-x86_64-devel: https://nexus.opendaylight.org/content/repositories/opendaylight-neon-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/
+.. _oxygen-devel: https://nexus.opendaylight.org/content/repositories/opendaylight-oxygen-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/
+.. _fluorine-devel: https://nexus.opendaylight.org/content/repositories/opendaylight-fluorine-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/
+.. _neon-devel: https://nexus.opendaylight.org/content/repositories/opendaylight-fluorine-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/
+.. _nfv7-opendaylight-80-release: http://cbs.centos.org/repos/nfv7-opendaylight-80-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-81-release: http://cbs.centos.org/repos/nfv7-opendaylight-81-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-82-release: http://cbs.centos.org/repos/nfv7-opendaylight-82-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-83-release: http://cbs.centos.org/repos/nfv7-opendaylight-83-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-84-release: http://cbs.centos.org/repos/nfv7-opendaylight-84-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-90-release: http://cbs.centos.org/repos/nfv7-opendaylight-90-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-91-release: http://cbs.centos.org/repos/nfv7-opendaylight-91-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-92-release: http://cbs.centos.org/repos/nfv7-opendaylight-92-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-100-release: http://cbs.centos.org/repos/nfv7-opendaylight-100-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-8-release: http://cbs.centos.org/repos/nfv7-opendaylight-8-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-9-release: http://cbs.centos.org/repos/nfv7-opendaylight-9-release/x86_64/os/Packages/
+.. _nfv7-opendaylight-10-release: http://cbs.centos.org/repos/nfv7-opendaylight-10-release/x86_64/os/Packages/
+.. _example repo config files for each official repository: https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=tree;f=packages/rpm/example_repo_configs
 .. _integration-multipatch-test: https://jenkins.opendaylight.org/releng/search/?q=integration-multipatch-test
+.. _Jenkins sandbox: https://docs.opendaylight.org/en/stable-carbon/submodules/releng/builder/docs/jenkins.html#jenkins-sandbox
+.. _scratch repo on Nexus: https://docs.opendaylight.org/en/stable-carbon/submodules/releng/builder/docs/jenkins.html#jenkins-sandbox