aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/source/contributor/CONTRIBUTING.rst21
-rw-r--r--doc/source/contributor/index.rst18
-rw-r--r--doc/source/contributor/ptl-guide.rst113
-rw-r--r--doc/source/contributor/release-management.rst199
-rw-r--r--doc/source/contributor/running-tests.rst4
-rw-r--r--doc/source/index.rst17
6 files changed, 355 insertions, 17 deletions
diff --git a/doc/source/contributor/CONTRIBUTING.rst b/doc/source/contributor/CONTRIBUTING.rst
index ac0871935..3d86d1c06 100644
--- a/doc/source/contributor/CONTRIBUTING.rst
+++ b/doc/source/contributor/CONTRIBUTING.rst
@@ -7,7 +7,7 @@ How To Contribute
Basics
======
-#. Our source code is hosted on `OpenStack Kolla Git
+#. Our source code is hosted on `OpenDev Kolla Git
<https://opendev.org/openstack/kolla/>`_. Bugs should be filed on
`launchpad <https://bugs.launchpad.net/kolla>`_.
@@ -27,16 +27,33 @@ Basics
For simple changes, contributors may optionally add the text "TrivialFix" to
the commit message footer to indicate to reviewers a bug is not required.
+#. We use a `whiteboard <https://etherpad.openstack.org/p/KollaWhiteBoard>`__
+ to keep track of CI gate status, release status, stable backports, planning
+ and feature development status.
+
Please use the existing sandbox repository, available at `sandbox
<https://opendev.org/openstack-dev/sandbox>`_,
for learning, understanding and testing the `Gerrit Workflow
<https://docs.openstack.org/infra/manual/developers.html#development-workflow>`_.
+Adding a release note
+=====================
+
+All new features should have a documented release note. To add a release note
+run the following command:
+
+.. code-block:: console
+
+ tox -e venv -- reno new <feature-being-added>
+
+Typically in this project we do not add release notes for bug fixes. Upgrade
+notes can be extremely helpful for operators so these are encouraged.
+
Adding a new service
====================
Kolla aims to both containerise and deploy all services within the OpenStack
-"big tent". This is a constantly moving target as the ecosystem grows, so these
+ecosystem. This is a constantly moving target as the ecosystem grows, so these
guidelines aim to help make adding a new service to Kolla a smooth experience.
The image
diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst
index 13430a481..44766f0f6 100644
--- a/doc/source/contributor/index.rst
+++ b/doc/source/contributor/index.rst
@@ -1,13 +1,13 @@
-============
-Development
-============
+=================
+Contributor Guide
+=================
-Contributing
-------------
+This guide is for contributors of the Kolla project. It includes information on
+proposing your first patch and how to participate in the community. It also
+covers responsibilities of core reviewers and the Project Team Lead (PTL), and
+information about development processes.
-This guide is to tell someone who would like to contribute to
-Kolla project. Following this guide to propose your first patch for Kolla.
-And we are welcome everyone to join our project!
+We welcome everyone to join our project!
.. toctree::
:maxdepth: 2
@@ -15,3 +15,5 @@ And we are welcome everyone to join our project!
CONTRIBUTING.rst
running-tests
bug-triage
+ ptl-guide
+ release-management
diff --git a/doc/source/contributor/ptl-guide.rst b/doc/source/contributor/ptl-guide.rst
new file mode 100644
index 000000000..5f13a1a3f
--- /dev/null
+++ b/doc/source/contributor/ptl-guide.rst
@@ -0,0 +1,113 @@
+=========
+PTL Guide
+=========
+
+This is just a reference guide that a PTL may use as an aid, if they choose.
+It is meant to complement the `official PTL guide
+<https://docs.openstack.org/project-team-guide/ptl.html>`__, and is laid out in
+rough chronological order.
+
+Some or all of these tasks may be delegated to other team members.
+
+New PTL
+=======
+
+* Update the kolla meeting chair
+
+ * https://opendev.org/opendev/irc-meetings/src/branch/master/meetings/kolla-team-meeting.yaml
+
+* Update the team wiki
+
+ * https://wiki.openstack.org/wiki/Kolla#Active_Contributors
+
+* Get acquainted with the release schedule, bearing in mind that Kolla is a
+ cycle-trailing project
+
+ * Example: https://releases.openstack.org/train/schedule.html
+
+Open Infrastructure Summit
+==========================
+
+Ideally the Kolla PTL will be able to attend the summit. If not, try to arrange
+for another member of the core team to represent the team. Good interaction
+with the community at these events is crucial to encourage upstream
+involvement, onboard new users, collect feedback and for the perceived health
+of the project.
+
+* Create a summit planning etherpad and alert about it in the kolla IRC meeting
+ and openstack-discuss mailing list
+
+ * Example: https://etherpad.openstack.org/p/kolla-train-summit
+
+* Gather ideas for forum sessions
+
+ * Example: user feedback & roadmap, design sessions
+
+* Prepare the project update presentation. Enlist help of others
+
+* Prepare the on-boarding session materials. Enlist help of others
+
+* Represent and promote the project while at the summit
+
+Project Team Gathering (PTG)
+============================
+
+Some of the Kolla team may decide to meet in person at the Project Team
+Gathering (PTG). Alternatively, they may decide to host a virtual PTG at a
+different time if there is not a critical mass of contributors attending the
+PTG.
+
+* Create PTG planning etherpad and alert about it in the
+ kolla IRC meeting and openstack-discuss mailing list
+
+ * Example: https://etherpad.openstack.org/p/kolla-train-ptg
+
+* Run sessions at the PTG
+
+* Have a discussion about priorities for the upcoming release cycle at the PTG
+
+* Sign up for group photo at the PTG (if applicable)
+
+After Summit & PTG
+==================
+
+* Send session summaries to the openstack-discuss mailing list
+
+* Update the `Kolla whiteboard
+ <https://etherpad.openstack.org/p/KollaWhiteBoard>`__ with decided priorities
+ for the upcoming release cycle
+
+Day to Day
+==========
+
+* Subscribe to the kolla projects on Launchpad to receive all bug and blueprint
+ updates.
+
+* :doc:`Triage new bugs <bug-triage>`
+
+* Monitor the status of the CI system for all supported branches. Fix issues
+ that break the gate
+
+* Chair the IRC meetings
+
+* Be available in IRC to help new and existing contributors
+
+* Keep track of the progress of cycle priorites
+
+* Monitor the core team membership, mentor potential cores
+
+Release Management
+==================
+
+* Follow the project's :doc:`release management <release-management>` guide
+
+* Use the IRC meeting and/or mailing list to communicate release schedule to
+ the team who might not be so famailiar with it
+
+Handing Over
+============
+
+* Support the new PTL in their new role. Try to remember the issues you
+ encountered
+
+* Update this page with any useful information you have learned
diff --git a/doc/source/contributor/release-management.rst b/doc/source/contributor/release-management.rst
new file mode 100644
index 000000000..f32e9f0f8
--- /dev/null
+++ b/doc/source/contributor/release-management.rst
@@ -0,0 +1,199 @@
+==================
+Release Management
+==================
+
+This guide is intended to complement the `OpenStack releases site
+<https://releases.openstack.org/>`__, and the project team guide's section on
+`release management
+<https://docs.openstack.org/project-team-guide/release-management.html>`__.
+
+Team members make themselves familiar with the release schedule for the current
+release, for example https://releases.openstack.org/train/schedule.html.
+
+Release Model
+=============
+
+As a deployment project, Kolla's release model differs from many other
+OpenStack projects. Kolla follows the `cycle-trailing
+<https://docs.openstack.org/project-team-guide/release-management.html#trailing-the-common-cycle>`__
+release model, to allow time after the OpenStack coordinated release to wait
+for distribution packages and support new features. This gives us three months
+after the final release to prepare our final releases. Users are typically keen
+to try out the new release, so we should aim to release as early as possible
+while ensuring we have confidence in the release.
+
+Release Schedule
+================
+
+While we don't wish to repeat the OpenStack release documentation, we will
+point out the high level schedule, and draw attention to areas where our
+process is different.
+
+Launchpad Admin
+---------------
+
+We track series (e.g. Stein) and milestones (e.g. stein-1) on Launchpad, and
+target bugs and blueprints to these. Populating these in advance is necessary.
+This needs to be done for each of the following projects:
+
+* https://launchpad.net/kolla
+
+* https://launchpad.net/kolla-ansible
+
+At the beginning of a cycle, ensure a named series exists for the cycle in each
+project. If not, create one via the project landing page (e.g.
+https://launchpad.net/kolla) - in the "Series and milestones" section click in
+"Register a series". Once the series has been created, create the necessary
+milestones, including the final release. Series can be marked as "Active
+Development" or "Current Stable Release" as necessary.
+
+Milestones
+----------
+
+At each of the various release milestones, pay attention to what other projects
+are doing.
+
+Feature Freeze
+--------------
+
+As with projects following the common release model, Kolla uses a feature
+freeze period to allow the code to stabilise prior to release. There is no
+official feature freeze date for the cycle-trailing model, but we typically
+freeze around **three weeks** after the common feature freeze. During this
+time, no features should be merged to the master branch.
+
+Before RC1
+----------
+
+Prior to creating a release candidate:
+
+* test the code and fix (at a minimum) all critical bugs
+
+* the release notes for each project should be tidied up
+
+ * this command is useful to list release notes added this cycle:
+
+ * ``git diff --name-only origin/stable/<previous release> --
+ releasenotes/``
+
+ * example (kolla): https://review.opendev.org/648677/
+
+ * example (kolla-ansible): https://review.opendev.org/648685/
+
+* mark bugs on Launchpad with the correct milestone
+
+ * this command is useful to check for commits that fixed bugs:
+
+ * ``git log origin/stable/<previous release>..origin/master | grep -i
+ Closes-Bug``
+
+* update dependencies for source images on master to use release candidates:
+
+ * ``./tools/version-check.py --openstack-release $SERIES``
+
+ * this will only work when release candidates have been created for the
+ dependent projects
+
+ * add ``--include-independent`` to update projects with an independent
+ release cycle
+
+ * example (kolla): https://review.openstack.org/647819
+
+* add `cycle highlights
+ <https://docs.openstack.org/project-team-guide/release-management.html#cycle-highlights>`__
+ when requested by the release team
+
+ * example (all): https://review.opendev.org/644506/
+
+RC1
+---
+
+RC1 is the first release candidate, and also marks the point at which the
+stable branch is cut.
+
+* create RC1 by submitting patches to the releases repository
+
+ * example (kolla): https://review.opendev.org/650236
+
+ * example (kolla-ansible): https://review.opendev.org/650237
+
+* create stable branches by submitting patches to the releases repository
+
+ * example (kolla): https://review.opendev.org/650411
+
+ * example (kolla-ansible): https://review.opendev.org/650412
+
+After RC1
+---------
+
+* approve bot-proposed patches to master and the new stable branch
+
+* revert the patch to use release candidates of dependencies on the master
+ branch
+
+ * example (kolla): https://review.openstack.org/650419
+
+* switch to use the new release of RDO on the new stable branch (master uses
+ the delorean development packages)
+
+ * example (kolla): https://review.opendev.org/651601
+
+* update previous release variables on master
+
+ * example (kolla-ansible): https://review.opendev.org/650854
+
+* search for TODOs in the codebases describing tasks to be performed during the
+ next release cycle
+
+ * may include deprecations, code removal, etc.
+
+After OpenStack Final Release
+-----------------------------
+
+* update dependencies for source images on master to use final releases:
+
+ * ``./tools/version-check.py --openstack-release $SERIES``
+
+ * example (kolla): https://review.opendev.org/651605/
+
+RC2+
+----
+
+Further release candidates may be created on the stable branch as necessary in
+a similar manner to RC1.
+
+Final Releases
+--------------
+
+A release candidate may be promoted to a final release if it has no critical
+bugs against it.
+
+* create final release by submitting patches to the releases repository
+
+ * example (kolla): TODO
+
+ * example (kolla-ansible): TODO
+
+Stable Releases
+===============
+
+Stable branch releases should be made periodically for each supported stable
+branch, no less than once every 45 days.
+
+* check for new releases of dependencies
+
+ * ``tools/version_check.py``
+
+ * example (kolla): https://review.opendev.org/652674/
+
+* create stable releases by submitting patches to the releases repository
+
+ * follow SemVer guidelines
+
+ * example (kolla): https://review.opendev.org/650411
+
+ * example (kolla-ansible): https://review.opendev.org/650412
+
+* mark milestones on Launchpad as released
+
+* create new milestones on Launchpad for the next stable releases
diff --git a/doc/source/contributor/running-tests.rst b/doc/source/contributor/running-tests.rst
index cb3cc4bdf..ebd82007c 100644
--- a/doc/source/contributor/running-tests.rst
+++ b/doc/source/contributor/running-tests.rst
@@ -8,7 +8,7 @@ Kolla contains a suite of tests in the
``tests`` and ``kolla/tests`` directories.
Any proposed code change in gerrit is automatically rejected by the OpenStack
-`Jenkins Job Builder <https://docs.openstack.org/infra/system-config/jjb.html>`__
+`Zuul CI system <https://docs.openstack.org/infra/system-config/zuulv3.html>`__
if the change causes test failures.
It is recommended for developers to run the test suite before submitting patch
@@ -46,7 +46,7 @@ To run multiple tests separate items by commas:
.. code-block:: console
- tox -e py27,py35,pep8
+ tox -e py27,py37,pep8
Running a subset of tests
-------------------------
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 8556819a0..929471af8 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -21,10 +21,17 @@ Welcome to Kolla's documentation!
Kolla's mission is to provide production-ready containers and deployment tools
for operating OpenStack clouds.
-This documentation is for the Kolla container images. The following subprojects
-are available to help deploy Kolla:
+Related Projects
+================
-* `kolla-ansible <https://docs.openstack.org/kolla-ansible/latest/>`_
+This documentation is for the Kolla container images.
+
+`Kolla-ansible <https://docs.openstack.org/kolla-ansible/latest/>`_ is a
+subproject of Kolla that deploys the Kolla container images using Ansible.
+
+`Kayobe <https://kayobe.readthedocs.io>`__ is a related unofficial project that
+uses Kolla Ansible and Bifrost to deploy an OpenStack control plane to bare
+metal.
Site Notes
==========
@@ -32,8 +39,8 @@ Site Notes
This documentation is continually updated and may not represent the state of
the project at any specific prior release. To access documentation for a
previous release of kolla, append the OpenStack release name to the URL. For
-example, to access Kolla documentation for pike release:
-https://docs.openstack.org/kolla/pike
+example, to access Kolla documentation for the Stein release:
+https://docs.openstack.org/kolla/stein
Administrator Guide
===================