mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 06:25:34 +00:00
[#3812] Update doc/sphinx/conf.py for Meson
This commit is contained in:
@@ -20,7 +20,7 @@ instructions, please refer to this `Knowledgebase article <https://kb.isc.org/do
|
|||||||
|
|
||||||
ISC maintains two types of repositories: stable and development.
|
ISC maintains two types of repositories: stable and development.
|
||||||
The stable repositories contain a single stable release (e.g.,
|
The stable repositories contain a single stable release (e.g.,
|
||||||
kea-2-4 or kea-2-6) along with all its maintenance updates.
|
kea-2-6 or kea-3-0) along with all its maintenance updates.
|
||||||
Separate repositories were introduced to minimize the risk of
|
Separate repositories were introduced to minimize the risk of
|
||||||
unintentionally upgrading from one stable release to another.
|
unintentionally upgrading from one stable release to another.
|
||||||
|
|
||||||
|
@@ -58,10 +58,10 @@ easier to install Kea using native packages.
|
|||||||
|
|
||||||
1. Go to `Kea on cloudsmith.io <https://cloudsmith.io/~isc/repos/>`__.
|
1. Go to `Kea on cloudsmith.io <https://cloudsmith.io/~isc/repos/>`__.
|
||||||
|
|
||||||
2. Choose the Cloudsmith repository e.g. |cloudsmith_repo| for Kea |version|. Or kea-2-4 for Kea 2.4.
|
2. Choose the Cloudsmith repository e.g. |cloudsmith_repo| for Kea |version|.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
All stable releases are stored in separate repositories, such as kea-2-4, kea-2-6, and so on.
|
All stable releases are stored in separate repositories, such as kea-2-6, kea-3-0, and so on.
|
||||||
All development releases, which are not recommended for production use,
|
All development releases, which are not recommended for production use,
|
||||||
are located in the kea-dev repository.
|
are located in the kea-dev repository.
|
||||||
|
|
||||||
@@ -71,8 +71,8 @@ easier to install Kea using native packages.
|
|||||||
4. Follow the onscreen instructions.
|
4. Follow the onscreen instructions.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
For example, the Debian setup instructions for Kea 2.4 can be found here:
|
For example, the Debian setup instructions for Kea 3.0 can be found here:
|
||||||
https://cloudsmith.io/~isc/repos/kea-2-4/setup/#formats-deb
|
https://cloudsmith.io/~isc/repos/kea-3-0/setup/#formats-deb
|
||||||
|
|
||||||
The dropdown near the top of the page offers instructions for
|
The dropdown near the top of the page offers instructions for
|
||||||
other operating systems.
|
other operating systems.
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
# http://www.sphinx-doc.org/en/master/config
|
# http://www.sphinx-doc.org/en/master/config
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
|
|
||||||
@@ -30,29 +31,34 @@ copyright = '2019-2025, Internet Systems Consortium' # pylint: disable=redefine
|
|||||||
author = 'Internet Systems Consortium'
|
author = 'Internet Systems Consortium'
|
||||||
|
|
||||||
# get current kea version
|
# get current kea version
|
||||||
config_ac_path = '../../configure.ac'
|
meson_build_path = '../../meson.build'
|
||||||
changelog_path = '../../ChangeLog'
|
changelog_path = '../../ChangeLog'
|
||||||
release = 'UNRELEASED'
|
with open(meson_build_path, encoding='utf-8') as f:
|
||||||
with open(config_ac_path, encoding='utf-8') as f:
|
version = None
|
||||||
for line in f.readlines():
|
for line in f.readlines():
|
||||||
if line.startswith('AC_INIT(kea'):
|
m = re.search(r"version: '([0-9.]+)(|-git)',", line)
|
||||||
parts = line.split(',')
|
if m is not None:
|
||||||
release = parts[1].strip()
|
version = m.group(1)
|
||||||
# If the first line of the ChangeLog announces release, it means
|
|
||||||
# that this is the final release.
|
|
||||||
dash_parts = release.split('-')
|
|
||||||
candidate_release = dash_parts[0]
|
|
||||||
with open(changelog_path, encoding='utf-8') as changelog_file:
|
|
||||||
first_line = changelog_file.readline()
|
|
||||||
if candidate_release in first_line and "released" in first_line:
|
|
||||||
release = candidate_release
|
|
||||||
break
|
break
|
||||||
version = release
|
if version is None:
|
||||||
dashed_version_series = '-'.join(version.split('.')[0:2])
|
print('ERROR: Cannot determine Kea version from meson.build.')
|
||||||
|
sys.exit(1)
|
||||||
|
release = version
|
||||||
|
|
||||||
|
# If the first line of the ChangeLog announces release, it means
|
||||||
|
# that this is the final release.
|
||||||
|
dash_parts = version.split('-')
|
||||||
|
candidate_release = dash_parts[0]
|
||||||
|
with open(changelog_path, encoding='utf-8') as changelog_file:
|
||||||
|
first_line = changelog_file.readline()
|
||||||
|
if candidate_release in first_line and "released" in first_line:
|
||||||
|
version = candidate_release
|
||||||
|
|
||||||
|
cloudsmith_series = '-'.join(version.split('.')[0:2])
|
||||||
|
|
||||||
# now let's replace versions with odd minor number with dev
|
# now let's replace versions with odd minor number with dev
|
||||||
if int(dashed_version_series[-1]) % 2 != 0:
|
if int(cloudsmith_series[-1]) % 2 != 0:
|
||||||
dashed_version_series = 'dev'
|
cloudsmith_series = 'dev'
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
|
|
||||||
@@ -245,13 +251,13 @@ todo_include_todos = True
|
|||||||
# -- Substitutions -----------------------------------------------------------
|
# -- Substitutions -----------------------------------------------------------
|
||||||
|
|
||||||
rst_prolog = """
|
rst_prolog = """
|
||||||
.. |cloudsmith_repo| replace:: kea-{dashed_version_series}
|
.. |cloudsmith_repo| replace:: kea-{cloudsmith_series}
|
||||||
""".format(dashed_version_series=dashed_version_series)
|
""".format(cloudsmith_series=cloudsmith_series)
|
||||||
|
|
||||||
|
|
||||||
# -- Functions ---------------------------------------------------------------
|
# -- Functions ---------------------------------------------------------------
|
||||||
|
|
||||||
# Do generation of api.rst and kea-messages.rst here in conf.py instead of Makefile.am
|
# Do generation of api.rst and kea-messages.rst here in conf.py instead of meson.build
|
||||||
# so they are available on ReadTheDocs as there makefiles are not used for building docs.
|
# so they are available on ReadTheDocs as there makefiles are not used for building docs.
|
||||||
def run_generate_docs(_):
|
def run_generate_docs(_):
|
||||||
with open(os.path.join(SRC_DIR, 'api-files.txt'), encoding='utf-8') as af:
|
with open(os.path.join(SRC_DIR, 'api-files.txt'), encoding='utf-8') as af:
|
||||||
@@ -263,7 +269,7 @@ def run_generate_docs(_):
|
|||||||
# in our case is src/sphinx. On the other hand, we need to have platforms.rst file
|
# in our case is src/sphinx. On the other hand, we need to have platforms.rst file
|
||||||
# in top level directory, so it's easily accessible by prospective and first time
|
# in top level directory, so it's easily accessible by prospective and first time
|
||||||
# users. Furthermore, ReadTheDocs does not use the makefile system at all and they rely
|
# users. Furthermore, ReadTheDocs does not use the makefile system at all and they rely
|
||||||
# on sphinx-build only. As a result we need to conduct some Makefile-like operations
|
# on sphinx-build only. As a result we need to conduct some Meson-like operations
|
||||||
# here. This requires us to copy (or link) the file from the top level to sphinx subdir.
|
# here. This requires us to copy (or link) the file from the top level to sphinx subdir.
|
||||||
#
|
#
|
||||||
# The first entry on this list is the actual file to copy, the second is a unique name
|
# The first entry on this list is the actual file to copy, the second is a unique name
|
||||||
|
Reference in New Issue
Block a user