AUTOVERSION
tags are used to mark sections of the documentation that have
version numbers in them. This is used to automatically update version numbers
when we release a new version, as well as to catch version numbers that are
added without an appropriate AUTOVERSION
tag.
The basic syntax of the AUTOVERSION
tag is:
<!--AUTOVERSION: "{search_string}"/{action} ...-->
where {search_string}
is a string that should be matched against the text. It
must contain at least one %
, which is the location in the string where the
version is. Note that it should also include some surrounding text to avoid
false matches.
{action}
is the action to take for this particular version string. The actions
come in three flavors, described in the next sections.
Each AUTOVERSION
tag is only active for the code block or paragraph
immediately following it (*).
(*) There is one exception: The tag may come after a page header, and affect that header. The reason this exception was made is because the page doesn't render correctly if the tag is above the page header. This only works if the tag comes immediately after the header.
In this case, {action}
is the name of the repository whose version you would
like to insert in the given location. For example:
<!--AUTOVERSION: "mender-artifact version %"/mender-artifact-->
Joe User uses mender-artifact version 2.2.0, and likes it!
Note the %
, which is where the version should go. If mender-artifact is later
updated, autoversion.py --update
will turn it into this:
<!--AUTOVERSION: "mender-artifact version %"/mender-artifact-->
Joe User uses mender-artifact version 2.3.0, and likes it!
Version numbers of other software should generally be ignored, and for this
you can use the ignore
action:
<!--AUTOVERSION: "Docker version %"/ignore-->
Please use Docker version 1.12.0.
This will make the version completely ignored by both the --check
and
--update
flags. Without an ignore section though, --check
would complain
that you might have entered a version number that should have a tag.
Note that the %
is mandatory even for ignore tags.
If you have a long paragraph or code block with multiple version numbers, you can include several search and action pairs in one tag by separating them with spaces, like this:
<!--AUTOVERSION: "Docker %"/ignore "integration %"/integration-->
Please use Docker 1.12.0 and integration 1.6.0.
The autoversion.py
supports two modes, --check
and --update
. --check
checks that there are no versions numbers in the documentation that are not
covered by an AUTOVERSION
tag, and is part of our tests.
--update
updates references of all given components, which can be:
-
--mender-version
- Updates all components for a Mender release, including micro services. This one requires--integration-dir
to be given as well -
--mender-convert-version
- Updates all mender-convert references -
--meta-mender-version
- Updates all meta-mender references. This requires--poky-version
to be specified as well
See the command line help for more information.