[IMP] conf.py, *: interpolate the version and releases in the content

This commit replaces hard-coded occurrences of the version and of the
last, current and next releases' version with placeholders interpolated
at build time to avoid manually updating these after each freeze.

task-2917614

closes odoo/documentation#3166

X-original-commit: 12e1085199
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
This commit is contained in:
Antoine Vandevenne (anv) 2022-11-25 16:30:48 +00:00
parent f2acac5cae
commit fa2d0f6363
17 changed files with 93 additions and 72 deletions

22
conf.py
View File

@ -19,11 +19,25 @@ _logger = logging.getLogger(__name__)
project = 'Odoo'
copyright = 'Odoo S.A.'
# `version` if the version info for the project being documented, acts as replacement for |version|,
# `version` is the version info for the project being documented, acts as replacement for |version|,
# also used in various other places throughout the built documents.
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
version = release = '16.0'
# `current_branch` is the technical name of the current branch.
# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*).
current_branch = version
# `current_version` is the Odoo version linked to the current branch.
# E.g., saas-15.4 -> 15.4; 12.0 -> 12; master -> master (*).
current_version = current_branch.replace('saas-', '').replace('.0', '')
# `current_major_branch` is the technical name of the major branch before the current branch.
# E.g., saas-15.4 -> 15.0; 12.0 -> 12.0; master -> master (*).
current_major_branch = re.sub(r'\.\d', '.0', current_branch.replace('saas-', ''))
# `current_major_version` is the Odoo version linked to the current major branch.
# E.g., saas-15.4 -> 15; 12.0 -> 12; master -> master (*).
current_major_version = current_major_branch.replace('.0', '')
# (*): We don't care for master.
# The minimal Sphinx version required to build the documentation.
needs_sphinx = '3.0.0'
@ -61,6 +75,11 @@ add_function_parentheses = True
#=== Extensions configuration ===#
source_read_replace_vals = {
'BRANCH': current_branch,
'CURRENT_BRANCH': current_branch,
'CURRENT_VERSION': current_version,
'CURRENT_MAJOR_BRANCH': current_major_branch,
'CURRENT_MAJOR_VERSION': current_major_version,
'GITHUB_PATH': f'https://github.com/odoo/odoo/blob/{version}',
'GITHUB_ENT_PATH': f'https://github.com/odoo/enterprise/blob/{version}',
'OWL_PATH': f'https://github.com/odoo/owl/blob/master',
@ -316,7 +335,6 @@ def source_read_replace(app, docname, source):
result = result.replace(f"{{{key}}}", app.config.source_read_replace_vals[key])
source[0] = result
def setup(app):
# Generate all alternate URLs for each document
app.add_config_value('project_root', None, 'env')

View File

@ -151,7 +151,7 @@ Repository
.. code-block:: console
$ wget -q -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
$ echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/16.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
$ echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/{CURRENT_MAJOR_BRANCH}/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
$ sudo apt-get update && sudo apt-get install odoo
You can then use the usual `apt-get upgrade` command to keep your installation up-to-date.
@ -163,7 +163,7 @@ Repository
.. code-block:: console
$ sudo dnf config-manager --add-repo=https://nightly.odoo.com/16.0/nightly/rpm/odoo.repo
$ sudo dnf config-manager --add-repo=https://nightly.odoo.com/{CURRENT_MAJOR_BRANCH}/nightly/rpm/odoo.repo
$ sudo dnf install -y odoo
$ sudo systemctl enable odoo
$ sudo systemctl start odoo
@ -183,8 +183,8 @@ Distribution package
<download_>`_.
.. note::
Odoo 16.0 'deb' package currently supports `Debian 11 (Bullseye)`_, `Ubuntu 22.04 (Jammy)`_
or above.
Odoo {CURRENT_MAJOR_VERSION} 'deb' package currently supports `Debian 11 (Bullseye)`_,
`Ubuntu 22.04 (Jammy)`_ or above.
Next, execute the following commands **as root**:
@ -224,13 +224,13 @@ Distribution package
<download_>`_.
.. note::
Odoo 16.0 'rpm' package supports Fedora 36.
Odoo {CURRENT_MAJOR_VERSION} 'rpm' package supports Fedora 36.
Once downloaded, the package can be installed using the 'dnf' package manager:
.. code-block:: console
$ sudo dnf localinstall odoo_16.0.latest.noarch.rpm
$ sudo dnf localinstall odoo_{CURRENT_MAJOR_BRANCH}.latest.noarch.rpm
$ sudo systemctl enable odoo
$ sudo systemctl start odoo
@ -547,7 +547,7 @@ Dependencies
.. tab:: Debian/Ubuntu
For Debian-based systems, the packages are listed in the `debian/control
<https://github.com/odoo/odoo/blob/16.0/debian/control>`_ file of the Odoo sources.
<{GITHUB_PATH}/debian/control>`_ file of the Odoo sources.
On Debian/Ubuntu, the following commands should install the required packages:

View File

@ -17,7 +17,7 @@ The platform will take care to install these dependencies in your containers.
`The pip requirements specifiers <https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers>`_
documentation can help you write a :file:`requirements.txt` file.
To have a concrete example,
check out the `requirements.txt file of Odoo <https://github.com/odoo/odoo/blob/14.0/requirements.txt>`_.
check out the `requirements.txt file of Odoo <{GITHUB_PATH}/requirements.txt>`_.
The :file:`requirements.txt` files of submodules are taken into account as well. The platform
looks for :file:`requirements.txt` files in each folder containing Odoo modules: Not in the module folder itself,
@ -174,9 +174,9 @@ Look for "*odoo: addons paths*":
::
2018-02-19 10:51:39,267 4 INFO ? odoo: Odoo version 13.0
2018-02-19 10:51:39,267 4 INFO ? odoo: Odoo version {BRANCH}
2018-02-19 10:51:39,268 4 INFO ? odoo: Using configuration file at /home/odoo/.config/odoo/odoo.conf
2018-02-19 10:51:39,268 4 INFO ? odoo: addons paths: ['/home/odoo/data/addons/13.0', '/home/odoo/src/user', '/home/odoo/src/enterprise', '/home/odoo/src/themes', '/home/odoo/src/odoo/addons', '/home/odoo/src/odoo/odoo/addons']
2018-02-19 10:51:39,268 4 INFO ? odoo: addons paths: ['/home/odoo/data/addons/{BRANCH}', '/home/odoo/src/user', '/home/odoo/src/enterprise', '/home/odoo/src/themes', '/home/odoo/src/odoo/addons', '/home/odoo/src/odoo/odoo/addons']
**Be careful**, especially with your production database.
Operations that you perform running this Odoo server instance are not isolated:

View File

@ -237,7 +237,8 @@ Python comes with its own package manager: `pip
a single command.
#. Download and install the recommended release (`see README file
<https://github.com/odoo/documentation/tree/16.0/README.md>`_) of **Python 3** on your machine.
<https://github.com/odoo/documentation/tree/{BRANCH}/README.md>`_) of **Python 3** on your
machine.
#. Make sure to have **pip** installed on your machine (on Windows, you can install pip alongside
Python).
#. Execute the following commands in a terminal to verify that both installations finished
@ -291,12 +292,12 @@ Prepare your version
--------------------
Now that your machine is all set up, it is time to do the same for your version of the documentation
files. As it would not be convenient to have several people working on the version 13.0 in parallel
(conflicts of content would occur all the time), and in order to be able to create a :abbr:`PR
(Pull Request)`, you must `create a new branch
<https://www.atlassian.com/git/tutorials/using-branches>`_ starting from the branch 13.0. In other
words, you copy the entirety of this versions files and give it another name. For this example, we
will go with ``13.0-my_contribution``.
files. As it would not be convenient to have several people working on the version {BRANCH} in
parallel (conflicts of content would occur all the time), and in order to be able to create a
:abbr:`PR (Pull Request)`, you must `create a new branch
<https://www.atlassian.com/git/tutorials/using-branches>`_ starting from the branch {BRANCH}. In
other words, you copy the entirety of this versions files and give it another name. For this
example, we will go with ``{BRANCH}-my_contribution``.
Execute the following commands in a terminal to...
@ -306,17 +307,17 @@ Execute the following commands in a terminal to...
$ cd documentation/
#. Switch to the version 13.0:
#. Switch to the version {BRANCH}:
.. code-block:: console
$ git checkout 13.0
$ git checkout {BRANCH}
#. Create your own branch which will be a copy of 13.0:
#. Create your own branch which will be a copy of {BRANCH}:
.. code-block:: console
$ git checkout -b 13.0-my_contribution
$ git checkout -b {BRANCH}-my_contribution
.. _contributing/perform-changes:
@ -343,8 +344,8 @@ guidelines.
#. Delete :file:`my-image.png`.
#. Rename :file:`my-image-fs8.png` to :file:`my-image.png`.
- If your changes include renaming or moving an RST file to a new location, follow the `manual
for redirect rules <https://github.com/odoo/documentation/tree/13.0/redirects/MANUAL.md>`_ to
create the appropriate redirect rule(s).
for redirect rules <https://github.com/odoo/documentation/tree/{BRANCH}/redirects/MANUAL.md>`_
to create the appropriate redirect rule(s).
.. _contributing/preview-changes:
@ -390,7 +391,7 @@ Submit your changes
$ git add *
$ git commit
$ git push -u origin 13.0-my_contribution
$ git push -u origin {BRANCH}-my_contribution
#. Go to `github.com/odoo/documentation/pulls
<https://github.com/odoo/documentation/pulls>`_ and click on the **New pull request** button.
@ -403,7 +404,8 @@ Submit your changes
.. image:: documentation/compare-across-forks.png
#. In the dropdown for the selection of the base branch (i.e., the version of the documentation that
your changes concern), make sure to select the version that your changes target (here **13.0**).
your changes concern), make sure to select the version that your changes target (here
**{BRANCH}**).
.. image:: documentation/select-branches-fork.png

View File

@ -36,8 +36,8 @@ A reference to the rendered :file:`prices.html` and :file:`variants.html` could
#. Absolute:
- ``https://odoo.com/documentation/master/applications/sales/sales/products_prices/prices.html``
- ``https://odoo.com/documentation/master/applications/sales/sales/products_prices/products/variants.html``
- ``https://odoo.com/documentation/{BRANCH}/applications/sales/sales/products_prices/prices.html``
- ``https://odoo.com/documentation/{BRANCH}/applications/sales/sales/products_prices/products/variants.html``
#. Relative:

View File

@ -49,7 +49,7 @@ Help & version
.. option:: --version
shows Odoo version e.g. "Odoo Server 13.0"
shows Odoo version e.g. "Odoo Server {BRANCH}"
.. tip:: You can enable auto-completion in your shell by running

View File

@ -248,10 +248,10 @@ Here are some useful Git commands for your day-to-day work.
.. code-block:: console
$ cd $HOME/src/odoo
$ git switch master
$ git switch {BRANCH}
$ cd $HOME/src/enterprise
$ git switch master
$ git switch {BRANCH}
- Fetch and rebase:
@ -259,11 +259,11 @@ Here are some useful Git commands for your day-to-day work.
$ cd $HOME/src/odoo
$ git fetch --all --prune
$ git rebase --autostash odoo/master
$ git rebase --autostash odoo/{BRANCH}
$ cd $HOME/src/enterprise
$ git fetch --all --prune
$ git rebase --autostash enterprise/master
$ git rebase --autostash enterprise/{BRANCH}
Code Editor
-----------

View File

@ -17,9 +17,9 @@ Data Files (CSV)
Odoo is a highly data driven system. Although behavior is customized using Python code, part of a
module's value is in the data it sets up when loaded. One way to load data is through a CSV
file. One example is the
`list of country states <https://github.com/odoo/odoo/blob/16.0/odoo/addons/base/data/res.country.state.csv>`__
which is loaded at installation of the ``base`` module.
file. One example is the `list of country states
<{GITHUB_PATH}/odoo/addons/base/data/res.country.state.csv>`_ which is loaded at installation of the
`base` module.
.. code-block:: text

View File

@ -12,10 +12,10 @@ ACL stands for "Access Control List"
<howto/rdtraining>`.
To follow the exercise, it is recommended that you fetch the branch
15.0-core from the
`technical training solutions <https://github.com/odoo/technical-training-solutions/tree/15.0-core>`__ repository.
It contains a version of the module created during the core training we can use
as a starting point.
{BRANCH}-core from the `technical training solutions
<https://github.com/odoo/technical-training-solutions/tree/{BRANCH}-core>`_ repository. It
contains a version of the module created during the core training we can use as a starting
point.
So far we have mostly concerned ourselves with implementing useful features.
However in most business scenarios *security* quickly becomes a concern:

View File

@ -6,9 +6,9 @@ Advanced C: Master and Demo Data
.. tip:: This tutorial assumes you followed the Core Training.
To do the exercise, fetch the branch 15.0-core from the
`technical training solutions <https://github.com/odoo/technical-training-solutions/tree/15.0-core>`__ repository.
It contains a basic module we will use as a starting point
To do the exercise, fetch the branch {BRANCH}-core from the `technical training solutions
<https://github.com/odoo/technical-training-solutions/tree/{BRANCH}-core>`_ repository. It
contains a basic module we will use as a starting point
Data Types
==========

View File

@ -6,9 +6,9 @@ Advanced E: Python Unit Tests
.. tip:: This tutorial assumes you followed the Core Training.
To do the exercise, fetch the branch 15.0-core from the
`technical training solutions <https://github.com/odoo/technical-training-solutions/tree/15.0-core>`__ repository.
It contains a basic module we will use as a starting point
To do the exercise, fetch the branch {BRANCH}-core from the `technical training solutions
<https://github.com/odoo/technical-training-solutions/tree/{BRANCH}-core>`_ repository. It
contains a basic module we will use as a starting point
**Reference**:
`Odoo's Test Framework: Learn Best Practices <https://www.youtube.com/watch?v=JEIscps0OOQ>`__
@ -284,7 +284,7 @@ These test classes are built on top of the ``unittest`` python module.
.. note:: For better readability, split your tests into multiple files depending on the scope of the
tests. You can also have a Common class that most of the tests should inherit from; this common
class can define the whole set up for the module. For instance in
`account <https://github.com/odoo/odoo/blob/14.0/addons/account/tests/common.py>`__.
`account <{GITHUB_PATH}/addons/account/tests/common.py>`__.
.. exercise:: Update the code so no one can:

View File

@ -9,11 +9,11 @@ Advanced J: PDF Reports
This tutorial assumes you have completed the :ref:`Core Training <howto/rdtraining>`
and have installed :ref:`wkhtmltopdf <setup/install/source/prepare>`.
To follow the exercise, it is recommended that you fetch the branch
15.0-core from the
`technical training solutions <https://github.com/odoo/technical-training-solutions/tree/15.0-core>`__ repository.
It contains a version of the module created during the core training we can use
as a starting point.
To follow the exercise, it is recommended that you fetch the branch {BRANCH}-core from the
`technical training solutions
<https://github.com/odoo/technical-training-solutions/tree/{BRANCH}-core>`_ repository. It
contains a version of the module created during the core training we can use as a starting
point.
We were previously :ref:`introduced to QWeb <howto/rdtraining/15_qwebintro>`
in the Core Training where it was used to build a kanban view. Now we will expand on one of QWeb's
@ -96,9 +96,10 @@ If you don't have a set of data like this already, you can either:
* Complete :ref:`howto/rdtraining/C_data` (if you haven't done so already) and add the extra
cases to your demo data (you may need to create a new database to load in the demo data).
* Manually create the data in your database.
* Copy this `data file <https://github.com/odoo/technical-training-solutions/blob/15.0-J_reports/estate/data/estate_demo.xml>`__
into a new directory (data) in your estate module and copy
`these lines <https://github.com/odoo/technical-training-solutions/blob/15.0-J_reports/estate/__manifest__.py#L21-L23>`__
* Copy this `data file
<https://github.com/odoo/technical-training-solutions/blob/{BRANCH}-J_reports/estate/data/estate_demo.xml>`_
into a new directory (data) in your estate module and copy `these lines
<https://github.com/odoo/technical-training-solutions/blob/{BRANCH}-J_reports/estate/__manifest__.py#L21-L23>`_
into your __manifest__.py file (you may need to create a new database to load in the demo data).
Before continuing, click through your data in your database and make sure your data is as expected.

View File

@ -10,10 +10,10 @@ Advanced K: Dashboards
access to Odoo Enterprise features.
To follow the exercise, it is recommended that you fetch the branch
15.0-core from the
`technical training solutions <https://github.com/odoo/technical-training-solutions/tree/15.0-core>`__ repository.
It contains a version of the module created during the core training we can use
as a starting point.
{BRANCH}-core from the `technical training solutions
<https://github.com/odoo/technical-training-solutions/tree/{BRANCH}-core>`_ repository. It
contains a version of the module created during the core training we can use as a starting
point.
The term "Dashboard" is used in Odoo for objects that display data, but involves different
implementations. This tutorial will only focus on the Enterprise view that is used to provide
@ -119,9 +119,10 @@ If you don't have a set of data like this already, you can either:
* Complete :ref:`howto/rdtraining/C_data` (if you haven't done so already) and add the extra
cases to your demo data (you may need to create a new database to load in the demo data).
* Manually create the data in your database.
* Copy this `data file <https://github.com/odoo/technical-training-solutions/blob/15.0-K_dashboard/estate/data/estate_demo.xml>`__
into a new directory called ``data`` in your estate module and copy
`these lines <https://github.com/odoo/technical-training-solutions/blob/15.0-K_dashboard/estate/__manifest__.py#L21-L23>`__
* Copy this `data file
<https://github.com/odoo/technical-training-solutions/blob/{BRANCH}-K_dashboard/estate/data/estate_demo.xml>`_
into a new directory called ``data`` in your estate module and copy `these lines
<https://github.com/odoo/technical-training-solutions/blob/{BRANCH}-K_dashboard/estate/__manifest__.py#L21-L23>`_
into your __manifest__.py file (you may need to create a new database to load in the demo data).
Click through your database data and make sure it is what you expect. Of course you can add the
@ -208,8 +209,8 @@ The `ref` attribute can be added to `<view>` elements to use a specific xml id f
no xml id is provided for a graph or pivot view then the default view will be used.
The cohort view will not work in the dashboard without a specific xml id. If you have already
created some of these views then you are welcome to add them to your dashboard! Sample graph and
pivot views are included in the
`solution code <https://github.com/odoo/technical-training-solutions/blob/15.0-K_dashboard/estate/views/estate_property_views.xml#L169-L191>`__
pivot views are included in the `solution code
<https://github.com/odoo/technical-training-solutions/blob/{BRANCH}-K_dashboard/estate/views/estate_property_views.xml#L169-L191>`_
that you are welcome to use as well.
.. exercise:: Add subviews.
@ -363,7 +364,7 @@ graph views), then you can add ``store=False`` to it and it will not show.
The *select* and *from* methods remain the same.
`Here is an example <https://github.com/odoo/odoo/blob/14.0/addons/account/report/account_invoice_report.py>`__
`Here is an example <{GITHUB_PATH}/addons/account/report/account_invoice_report.py>`__
of a report that depends on the currently selected companies (in a multi-company environment) context to
determine the currency exchange rates to use for accurately displaying amounts when the selected companies
have different currencies.

View File

@ -154,5 +154,4 @@ Available manifest fields are:
Deprecated. Replaced by ``auto_install``.
.. _semantic versioning: https://semver.org
.. _existing categories:
https://github.com/odoo/odoo/blob/14.0/odoo/addons/base/data/ir_module_category_data.xml
.. _existing categories: {GITHUB_PATH}/odoo/addons/base/data/ir_module_category_data.xml

View File

@ -598,8 +598,8 @@ Javascript
#. Add any step you want.
Every step contains at least a trigger. You can either use the `predefined steps
<https://github.com/odoo/odoo/blob/16.0/addons/web_tour/static/src/js/tour_step_utils.js>`_ or write
your own personalized step.
<{GITHUB_PATH}/addons/web_tour/static/src/js/tour_step_utils.js>`_ or write your own personalized
step.
Here are some example of steps:

View File

@ -2222,7 +2222,7 @@ do that, several steps should be done.
}
The ``updateControlPanel`` is the main method to customize the content in controlpanel.
For more information, look into the `control_panel_renderer.js <https://github.com/odoo/odoo/blob/13.0/addons/web/static/src/js/views/control_panel/control_panel_renderer.js#L130>`_ file.
For more information, look into the `control_panel_renderer.js <{GITHUB_PATH}/addons/web/static/src/js/views/control_panel/control_panel_renderer.js#L130>`_ file.
.. _glob:
https://en.wikipedia.org/wiki/Glob_(programming)

View File

@ -9,4 +9,4 @@ have to sign the Odoo Contributor License Agreement (CLA).
More information about this requirement, the procedure to sign the agreement,
and a FAQ can be found on our
`GitHub project page <https://github.com/odoo/odoo/blob/14.0/doc/cla/sign-cla.md>`_.
`GitHub project page <{GITHUB_PATH}/doc/cla/sign-cla.md>`_.