mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-24 08:44:04 +00:00
e654de5c4a
The project had no written release process, and the 2.18 and 2.19 releases missed steps: the release table in the documentation, the docs version, signed tags, and the wiki and website index pages. A new Releases section describes the branch and version model, the label and milestone that each pull request needs, and a checklist for release candidates, publishing, the signed tag, the GitHub release, the release notes, the website and the announcement. The build hosts, the signing key and the publish procedure stay in the private repository of the maintainers.
69 lines
2.4 KiB
ReStructuredText
69 lines
2.4 KiB
ReStructuredText
Releases
|
|
========
|
|
|
|
This section describes how xCAT versions are numbered, how a fix reaches a maintained release,
|
|
and how a maintainer publishes a release.
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
|
|
pull_requests.rst
|
|
checklist.rst
|
|
|
|
Branches and Versions
|
|
---------------------
|
|
|
|
xCAT has one development branch and one maintenance branch for each minor release.
|
|
|
|
* ``master`` is the development line of the next minor release.
|
|
* ``X.Y``, for example ``2.19``, is the maintenance branch of the X.Y series. It receives only
|
|
fixes that are backported from ``master``. The patch releases X.Y.1, X.Y.2 and later are tagged
|
|
on it.
|
|
|
|
The ``Version`` file at the top of the tree is the only place that holds the version.
|
|
``buildrpms.pl`` and ``builddebs.pl`` read it, and each build adds the release string
|
|
``snapYYYYMMDDHHMM`` from the commit time. A release is the build of the tagged commit. There is no
|
|
separate release build.
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - Branch
|
|
- ``Version`` holds
|
|
- Example after 2.19.0 is released
|
|
* - ``master``
|
|
- the next minor release
|
|
- ``2.20.0``
|
|
* - ``X.Y``
|
|
- the next release of the series
|
|
- ``2.19.1``
|
|
|
|
The ``release`` value in ``docs/source/conf.py`` must be the same as ``Version`` on the same
|
|
branch, because Read the Docs shows it in the title of each page. Change the two files in the same
|
|
pull request.
|
|
|
|
A released version number is never used again. The :doc:`checklist` changes ``Version`` so that
|
|
no build after a release carries the number of that release.
|
|
|
|
Tags
|
|
----
|
|
|
|
Each release has a signed annotated tag named ``X.Y.Z``, for example ``2.19.1``. The tag points at
|
|
the commit that the published packages were built from. Release candidates do not get tags,
|
|
because Read the Docs builds a documentation version for each new tag.
|
|
|
|
Package Channels
|
|
----------------
|
|
|
|
The download server has three channels under https://xcat.org/files/xcat/repos/yum/ and
|
|
https://xcat.org/files/xcat/repos/apt/:
|
|
|
|
* ``devel``: development snapshots from ``master``, in ``devel/core-snap`` and ``devel/xcat-dep``.
|
|
* ``X.Y``: the most recent release of the X.Y series. A patch release replaces the contents of
|
|
its series directory.
|
|
* ``latest``: the most recent release series. ``go-xcat`` installs from ``latest`` by default, so
|
|
when ``latest`` changes, new installations get the new release.
|
|
|
|
The offline bundles are in https://xcat.org/files/xcat/xcat-core/ and
|
|
https://xcat.org/files/xcat/xcat-dep/.
|