Skip to content

Commit f105dec

Browse files
committed
docs(ct): add and extend supported image tags and add version string replacment
Expanded documentation for all container image supported tags maintenance, tagging structure of app image, and development practices. Introduced substitution support for version and nextVersion in docs. Had to update and add Sphinx dependencies for this.
1 parent ad60227 commit f105dec

File tree

4 files changed

+79
-13
lines changed

4 files changed

+79
-13
lines changed

doc/sphinx-guides/requirements.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Sphinx==7.2.6
1+
Sphinx==7.4.0
22

33
# inline icons
44
sphinx-icon==0.1.2
@@ -11,3 +11,6 @@ sphinx-tabs==3.4.5
1111

1212
# jQuery
1313
sphinxcontrib-jquery
14+
15+
Sphinx-Substitution-Extensions==2025.1.2
16+
semver>=3,<4

doc/sphinx-guides/source/conf.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import sys
1616
import os
1717
from datetime import datetime
18+
import semver
1819
sys.path.insert(0, os.path.abspath('../../'))
1920
import sphinx_bootstrap_theme
2021

@@ -45,6 +46,7 @@
4546
'sphinxcontrib.jquery',
4647
'myst_parser',
4748
'sphinx_tabs.tabs',
49+
'sphinx_substitution_extensions',
4850
]
4951

5052
# Add any paths that contain templates here, relative to this directory.
@@ -70,7 +72,7 @@
7072
# The short X.Y version.
7173
version = '6.6'
7274
# The full version, including alpha/beta/rc tags.
73-
release = '6.6'
75+
release = version
7476

7577
# The language for content autogenerated by Sphinx. Refer to documentation
7678
# for a list of supported languages.
@@ -437,4 +439,6 @@
437439
rst_prolog = """
438440
.. |toctitle| replace:: Contents:
439441
.. |anotherSub| replace:: Yes, there can be multiple.
440-
"""
442+
.. |version| replace:: %s
443+
.. |nextVersion| replace:: %s
444+
""" % (version, "%s.%s" % semver.Version.parse(version, optional_minor_and_patch=True).bump_minor().to_tuple()[0:2] )

doc/sphinx-guides/source/container/app-image.rst

Lines changed: 61 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,68 @@ Supported Image Tags
2929

3030
This image is sourced from the main upstream code `repository of the Dataverse software <https://github.com/IQSS/dataverse>`_.
3131
Development and maintenance of the `image's code <https://github.com/IQSS/dataverse/tree/develop/src/main/docker>`_
32-
happens there (again, by the community). Community-supported image tags are based on the two most important
33-
upstream branches:
32+
happens there (again, by the community).
33+
34+
All supported images are signed up for scheduled maintenance, executed every Sunday.
35+
New revisions are kept to a minimum, usually created when some dependency needs (security) updates.
36+
For the application images it correlates mostly to the :doc:`base image <base-image>` receiving updates.
37+
38+
Our tagging is inspired by `Bitnami <https://docs.vmware.com/en/VMware-Tanzu-Application-Catalog/services/tutorials/GUID-understand-rolling-tags-containers-index.html>`_ and we offer two categories of tags:
39+
40+
- rolling: images change over time
41+
- immutable: images are fixed and never change
42+
43+
In the tags below you'll see the term "flavor". This refers to flavor of Linux the container is built on. We use Ubuntu as the basis for our images and, for the time being, the only operating system flavors we use and support are ``noble`` (6.4+) and ``jammy`` (pre-6.4).
44+
45+
You can find all the tags at https://hub.docker.com/r/gdcc/dataverse/tags
46+
47+
Tags for Production Use
48+
^^^^^^^^^^^^^^^^^^^^^^^
49+
50+
The images of the three latest releases of the Dataverse project will receive updates such as security patches for the underlying operating system.
51+
Content will be fairly stable as disruptive changes like Payara or Java upgrades will be handled in a new major or minor upgrade to Dataverse (a new ``<dv-major>.<dv-minor>`` tag).
52+
Expect disruptive changes in case of high risk security threats.
53+
54+
- | **Latest**
55+
| Definition: ``latest``
56+
| Summary: Rolling tag, always pointing to the latest revision of the most current Dataverse release.
57+
- | **Rolling Production**
58+
| Definition: ``<dv-major>.<dv-minor>-<flavor>``
59+
| Example: :substitution-code:`|version|-noble`
60+
| Summary: Rolling tag, pointing to the latest revision of an immutable production image for released versions of Dataverse.
61+
- | **Immutable Production**
62+
| Definition: ``<dv-major>.<dv-minor>-<flavor>-r<revision>``
63+
| Example: :substitution-code:`|version|-noble-r1`
64+
| Summary: An **immutable tag** where the revision is incremented for rebuilds of the image.
65+
| This image should be especially attractive if you want explict control over when your images are updated.
66+
67+
Tags for Development Use
68+
^^^^^^^^^^^^^^^^^^^^^^^^
69+
70+
All of the tags below are strongly recommended for development purposes only due to their fast changing nature.
71+
In addition to updates due to PR merges, the most recent are undergoing scheduled maintenance to ensure timely security fixes.
72+
When a development cycle of the Dataverse project finishes, maintenance ceases for any tags carrying version numbers.
73+
For now, stale images will be kept on Docker Hub indefinitely.
74+
75+
- | **Unstable**
76+
| Definition: ``unstable``
77+
| Summary: Rolling tag, tracking the ``develop`` branch (see also :ref:`develop-branch`). (`Dockerfile <https://github.com/IQSS/dataverse/tree/develop/modules/container-base/src/main/docker/Dockerfile>`__)
78+
| Please expect abrupt changes like new Payara or Java versions as well as OS updates or flavor switches when using this tag.
79+
- | **Upcoming**
80+
| Definition: ``<dv-major>.<dv-minor-next>-<flavor>``
81+
| Example: :substitution-code:`|nextVersion|-noble`
82+
| Summary: Rolling tag, equivalent to ``unstable`` for current development cycle.
83+
Will roll over to the rolling production tag after a Dataverse release.
84+
- | **Flexible Stack**
85+
| Definition: ``<dv-major>.<dv-minor-next>-<flavor>-p<payara.version>-j<java.version>``
86+
| Example: :substitution-code:`|nextVersion|-noble-p6.2025.3-j17`
87+
| Summary: Rolling tag during a development cycle of the Dataverse software (`Dockerfile <https://github.com/IQSS/dataverse/tree/develop/modules/container-base/src/main/docker/Dockerfile>`__).
88+
89+
**NOTE**: In these tags for development usage, the version number will always be 1 minor version ahead of existing Dataverse releases.
90+
Example: Assume Dataverse ``6.x`` is released, ``6.(x+1)`` is underway.
91+
The rolling tag in use during the cycle will be ``6.(x+1)-FFF`` and ``6.(x+1)-FFF-p6.202P.P-jJJ``.
92+
See also: :doc:`/developers/making-releases`.
3493

35-
- The ``unstable`` tag corresponds to the ``develop`` branch, where pull requests are merged.
36-
(`Dockerfile <https://github.com/IQSS/dataverse/blob/develop/src/main/docker/Dockerfile>`__)
37-
- The ``alpha`` tag corresponds to the ``master`` branch, where releases are cut from.
38-
(`Dockerfile <https://github.com/IQSS/dataverse/blob/master/src/main/docker/Dockerfile>`__)
3994

4095
Image Contents
4196
++++++++++++++

doc/sphinx-guides/source/container/base-image.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ This image is sourced from the main upstream code `repository of the Dataverse s
3030
Development and maintenance of the `image's code <https://github.com/IQSS/dataverse/tree/develop/modules/container-base>`_
3131
happens there (again, by the community).
3232

33+
All supported images are signed up for scheduled maintenance, executed every Sunday.
34+
New revisions are kept to a minimum, usually created when some dependency needs (security) updates.
35+
(Examples: JRE patch releases, ImageMagick fixes, etc.)
36+
3337
Our tagging is inspired by `Bitnami <https://docs.vmware.com/en/VMware-Tanzu-Application-Catalog/services/tutorials/GUID-understand-rolling-tags-containers-index.html>`_ and we offer two categories of tags:
3438

3539
- rolling: images change over time
@@ -51,11 +55,11 @@ Expect disruptive changes in case of high risk security threats.
5155
| Summary: Rolling tag, always pointing to the latest revision of the most current Dataverse release.
5256
- | **Rolling Production**
5357
| Definition: ``<dv-major>.<dv-minor>-<flavor>``
54-
| Example: ``6.4-noble``
58+
| Example: :substitution-code:`|version|-noble`
5559
| Summary: Rolling tag, pointing to the latest revision of an immutable production image for released versions of Dataverse.
5660
- | **Immutable Production**
5761
| Definition: ``<dv-major>.<dv-minor>-<flavor>-r<revision>``
58-
| Example: ``6.4-noble-r1``
62+
| Example: :substitution-code:`|version|-noble-r1`
5963
| Summary: An **immutable tag** where the revision is incremented for rebuilds of the image.
6064
| This image should be especially attractive if you want explict control over when your images are updated.
6165
@@ -73,12 +77,12 @@ For now, stale images will be kept on Docker Hub indefinitely.
7377
| Please expect abrupt changes like new Payara or Java versions as well as OS updates or flavor switches when using this tag.
7478
- | **Upcoming**
7579
| Definition: ``<dv-major>.<dv-minor-next>-<flavor>``
76-
| Example: ``6.5-noble``
80+
| Example: :substitution-code:`|nextVersion|-noble`
7781
| Summary: Rolling tag, equivalent to ``unstable`` for current development cycle.
7882
Will roll over to the rolling production tag after a Dataverse release.
7983
- | **Flexible Stack**
8084
| Definition: ``<dv-major>.<dv-minor-next>-<flavor>-p<payara.version>-j<java.version>``
81-
| Example: ``6.5-noble-p6.2024.6-j17``
85+
| Example: :substitution-code:`|nextVersion|-noble-p6.2025.3-j17`
8286
| Summary: Rolling tag during a development cycle of the Dataverse software (`Dockerfile <https://github.com/IQSS/dataverse/tree/develop/modules/container-base/src/main/docker/Dockerfile>`__).
8387
8488
**NOTE**: In these tags for development usage, the version number will always be 1 minor version ahead of existing Dataverse releases.

0 commit comments

Comments
 (0)