You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/developer/prepare-environment.rst
+7-4Lines changed: 7 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,6 +46,9 @@ The following diagram illustrates the relationship between the main components o
46
46
.. include:: devel-helpers.rst
47
47
:start-after: -text-begin-
48
48
49
+
50
+
.. _github-cli:
51
+
49
52
GitHub CLI
50
53
----------
51
54
@@ -61,9 +64,9 @@ Setting up the development environment
61
64
62
65
The following steps are recommended to set up your development environment:
63
66
64
-
1. Follow the steps in :ref:`prepare-installation` and :ref:`installing-docbuild`.
67
+
#. Follow the steps in :ref:`prepare-installation` and :ref:`installing-docbuild`.
65
68
66
-
2. If you haven't created a virtual environment, do so:
69
+
#. If you haven't created a virtual environment, do so:
67
70
68
71
.. code-block:: shell-session
69
72
:caption: Creating a virtual environment with |uv|
@@ -76,7 +79,7 @@ The following steps are recommended to set up your development environment:
76
79
The example above uses Python 3.13, but you can adjust it according to your needs as long as it is compatible with the project.
77
80
See file :file:`pyproject.toml` in ``project.requires-python`` for the exact version.
78
81
79
-
3. Synchronize the virtual environment with the project dependencies, but use the development group instead of the default group:
82
+
#. Synchronize the virtual environment with the project dependencies, but use the development group instead of the default group:
80
83
81
84
.. code-block:: shell-session
82
85
:caption: Synchronizing the virtual environment with the development dependencies
@@ -86,7 +89,7 @@ The following steps are recommended to set up your development environment:
86
89
87
90
The option ``--frozen`` ensures that the dependencies are installed exactly as specified in the lock file, preventing any unexpected changes.
88
91
89
-
4. Optionally, source the shell aliases defined in :file:`devel/activate-aliases.sh` to abbreviate the longer :command:`uv` calls (see :ref:`devel-helpers` for more information):
92
+
#. Optionally, source the shell aliases defined in :file:`devel/activate-aliases.sh` to abbreviate the longer :command:`uv` calls (see :ref:`devel-helpers` for more information):
90
93
91
94
.. code-block:: shell-session
92
95
:caption: Activating the shell aliases for development
Although this project contains pure Python code, it needs other dependencies to work correctly:
7
+
8
+
* **Python installation dependencies**
9
+
10
+
Minimum dependencies that the program can run at all.
11
+
12
+
* **Testing dependencies**
13
+
14
+
Dependencies used for testing.
15
+
16
+
* **Documentation Dependencies**
17
+
18
+
For building the documentation.
19
+
20
+
* **System dependencies**
21
+
22
+
These are explained in this topic.
23
+
24
+
All of the above points (except for the last one) are defined in the :file:`pyproject.toml` file.
25
+
26
+
27
+
Operating System
28
+
----------------
29
+
30
+
The code is developed on openSUSE, but should work on any Linux distribution.
31
+
The project will support MacOS too. It's currently not planned to support Windows.
32
+
33
+
34
+
.. note::
35
+
36
+
If you use a different OS than Linux, dependency resolution may be challenging. Either the required package is not available for your OS or it is hard to get it right.
37
+
38
+
You may have a better experience developing in a virtual machine running openSUSE or using a Docker container.
39
+
40
+
41
+
Python
42
+
------
43
+
44
+
The minimal Python version is defined in the :file:`pyproject.toml` file. It's strongly recommended to have the Python versions managed by |uv|.
45
+
46
+
47
+
Editor
48
+
------
49
+
50
+
You can use any editor you like. Rudimentary support is available for `VSCode <https://code.visualstudio.com/>`_.
51
+
52
+
53
+
External tools
54
+
--------------
55
+
56
+
* |daps|: our tool to build documentation. This is an obligatory requirement. This adds other dependencies.
57
+
* |uv|, the Python package manager. This is explained in :ref:`devel-helpers`.
58
+
* :command:`make` is used to build the documentation.
59
+
* :command:`jing`: for validation the XML configuration files.
60
+
* :command:`gh`: optional tool for interacting with GitHub, see :ref:`github-cli`.
61
+
62
+
63
+
64
+
XML configuration
65
+
-----------------
66
+
67
+
Formerly known as the *Docserv XML configs*. These configuration files defines the :term:`products <Product>`, their :term:`releases <Docset>`, their :term:`lifecycle <Lifecycle>` status and more.
68
+
69
+
Clone the |gl_xmlconfig| or use the RNC schema from :gh_tree:`src/docbuild/config/xml/data/` to create this configuration.
Copy file name to clipboardExpand all lines: docs/source/glossary.rst
+66-7Lines changed: 66 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,37 @@ Glossary
4
4
.. glossary::
5
5
:sorted:
6
6
7
+
ADoc
8
+
ASCIIDoc
9
+
A lightweight markup language, similar to Markdown, but with a more powerful and extensive syntax designed for writing complex technical documentation, articles, and books.
10
+
11
+
See also :term:`DocBook`, https://docs.asciidoctor.org/asciidoc/latest/.
12
+
13
+
Argument
14
+
* Python: A value or object that you pass into a function/method.
15
+
* Command-line: Data that the command operates on, usually a file name, a directory path, a URL, or a string of text that the program needs to perform its primary function.
16
+
17
+
See also :term:`Option`.
18
+
19
+
Asynchronous Programming
20
+
A style of concurrent programming that allows a program to start long-waiting operations (like a network request) and then perform other work while waiting for the original operation to complete.
21
+
With the ``async`` and ``await`` keywords, this method prevents the application from blocking on slow I/O tasks, keeping it efficient and responsive.
22
+
23
+
asyncio
24
+
Python's standard library for writing concurrent code using the ``async``/``await`` syntax.
25
+
26
+
See also :term:`Asynchronous Programming`
27
+
7
28
Changelog
8
29
A record of all notable changes made in a project.
9
30
10
31
See also :ref:`create-release`.
11
32
33
+
Concurrency
34
+
The ability of a system to manage and make progress on multiple tasks over an overlapping time period. It's about dealing with many things at once, but not necessarily executing them at the exact same instant. A single CPU core can be concurrent by rapidly switching between tasks.
35
+
36
+
See also :term:`Asynchronous Programming`, :term:`asyncio`, :term:`Parallelism`
37
+
12
38
DAPS
13
39
The *Documentation and Publishing System* (DAPS) is a tool to build documentation from DocBook or ADoc files.
14
40
It is used to generate various output formats such as HTML, PDF, and EPUB.
@@ -25,7 +51,7 @@ Glossary
25
51
A semantic markup language based on :term:`XML` used for writing
26
52
and publishing technical documentation.
27
53
28
-
See https://www.docbook.org
54
+
See also :term:`ADoc`, https://www.docbook.org
29
55
30
56
Docset
31
57
Usually a release or version of a project. For example, ``15-SP6``.
@@ -35,21 +61,54 @@ Glossary
35
61
The syntax is ``[PRODUCT]/[DOCSET][@LIFECYCLES]/LANGS`` and
36
62
contains product, docset, lifecycles, and language.
37
63
38
-
See also :ref:`doctype-syntax`.
64
+
See section :ref:`doctype-syntax`.
65
+
66
+
GIL
67
+
Global Interpreter Lock
68
+
A mutex (a lock) in the standard CPython interpreter that ensures only one thread can execute Python bytecode at any given time within a single process. This lock effectively prevents multi-threaded, CPU-bound Python programs from achieving true parallelism on multi-core processors, as only one thread can run on one core at a time.
69
+
70
+
See also :term:`Mutex`.
39
71
40
72
IPython
41
73
An interactive command-line interface for Python that enhances
42
74
the standard Python shell with additional features.
43
75
44
-
See :ref:`use-ipython`.
76
+
See section :ref:`use-ipython`.
45
77
46
78
Lifecycle
47
79
Describes the distinct stages a product goes through, from its initial introduction to the market until its eventual decline and retirement.
48
80
49
-
This project defines the lifecycle stages ``supported``, ``beta``, ``unsupported`` and ``hidden``.
50
-
51
81
See class :class:`~docbuild.models.lifecycle.LifecycleFlag`.
52
82
83
+
Module
84
+
In Python context, a single Python file containing code.
85
+
86
+
See also :term:`Package`.
87
+
88
+
Mutex
89
+
Short for *Mutual Exclusion* is a locking mechanism in concurrent programming that ensures only one thread can access a shared resource at any given time. By requiring a thread to "acquire" the lock before using the resource and "release" it afterward, it prevents race conditions and protects shared data from being corrupted.
90
+
91
+
See also :term:`Concurrency`.
92
+
93
+
Option
94
+
* Python: An optional settings that modify the function's behavior.
95
+
* Command-line: a flag or switch that modifies a program's execution or triggers a specific behavior.
96
+
97
+
See also :term:`Argument`.
98
+
99
+
Package
100
+
In Python context, a directory containing one or more Python modules.
101
+
The Python interpreter treats a directory as a regular package if it contains a :file:`__init__.py` file.
102
+
103
+
See also :term:`Module`
104
+
105
+
Parallelism
106
+
The simultaneous execution of multiple tasks at the exact same instant, which requires a system with multiple hardware resources like CPU cores.
107
+
108
+
*Parallelism* is about executing multiple tasks simultaneously. This requires multiple CPU cores
109
+
110
+
See also :term:`Concurrency`
111
+
53
112
PEP
54
113
*Python Enhancement Proposal (PEP)* are design documents that
55
114
describe a new feature for Python and documenting the design decisions.
@@ -97,7 +156,7 @@ Glossary
97
156
reStructuredText (reST or RST) files into various output formats
98
157
such as HTML, PDF, or manual pages or more.
99
158
100
-
See :ref:`build-docs`.
159
+
See section :ref:`build-docs`.
101
160
102
161
UV
103
162
A fast package manager which simplifies the building, installing,
@@ -118,7 +177,7 @@ Glossary
118
177
By convention, a project's VENV is stored in a directory
119
178
named :file:`.venv` located at the root of the project folder.
120
179
121
-
See :ref:`prepare-devel-env`.
180
+
See section :ref:`prepare-devel-env`.
122
181
123
182
XML
124
183
The *eXtensible Markup Language* is a text-based markup
0 commit comments