For Python specific terms, look into:
.. glossary::
:sorted:
ACID
A set of properties that guarantee reliable processing of database transactions, ensuring that they are *Atomic*, *Consistent*, *Isolated*, and *Durable*.
ADoc
ASCIIDoc
A lightweight markup language, similar to Markdown, but with a more powerful and extensive syntax designed for writing complex technical documentation, articles, and books.
See also :term:`DocBook`, https://docs.asciidoctor.org/asciidoc/latest/.
Argument
* Python: A value or object that you pass into a function/method.
* 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.
See also :term:`Option`.
Asynchronous Programming
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.
With the ``async`` and ``await`` keywords, this method prevents the application from blocking on slow I/O tasks, keeping it efficient and responsive.
asyncio
Python's standard library for writing concurrent code using the ``async``/``await`` syntax.
See also :term:`Asynchronous Programming`
CI/CD
A set of automated practices for integrating code changes, testing, and deploying software quickly and reliably.
See also :term:`GitHub Action`
Changelog
A record of all notable changes made in a project.
See also :ref:`create-release`.
Concurrency
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.
See also :term:`Asynchronous Programming`, :term:`asyncio`, :term:`Parallelism`
DAPS
The *DocBook and Publishing System* (DAPS) is a tool to build documentation from DocBook or ADoc files.
It is used to generate various output formats such as HTML, PDF, and EPUB.
See :term:`DocBook`, :term:`ADoc`, :term:`DC File`
See also https://github.com/openSUSE/daps
DC File
The *DAPS Configuration* File ("DC file") is a configuration file used by DAPS to define parameters for building documentation. For example, it contains information about the entry file, what stylesheets to use, and other build options.
Deliverable
The smallest publishable unit of documentation. It is either dynamically
generated by DAPS from source into various output formats or supplied
as a pre-built deliverable.
See also :term:`DC File` and :term:`Pre-built Deliverable`
See class :class:`docbuild.models.deliverable.Deliverable`.
DocBook
A semantic markup language based on :term:`XML` used for writing
and publishing technical documentation.
See also :term:`ADoc`, https://www.docbook.org
Docset
See :term:`Release`
Doctype
A formal syntax to identify one or many set of documents.
The syntax is ``[PRODUCT]/[DOCSET][@LIFECYCLES]/LANGS`` and
contains product, docset, lifecycles, and language.
See section :ref:`doctype-syntax`.
Docserv Config
A deprecated XML configuration that defines products, releases, deliverables, and translations.
See :term:`Portal Config`.
GIL
Global Interpreter Lock
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.
See also :term:`Mutex`.
GitHub Action
Is a GitHub feature that enables automation of workflows such as building, testing, and deploying code directly from a repository using configurable YAML files.
See also :term:`CI/CD`
IPython
An interactive command-line interface for Python that enhances
the standard Python shell with additional features.
See section :ref:`use-ipython`.
Language
The linguistic and regional setting for a deliverable. In this context, a language is defined by a combination of a language code and a country code. For example, ``en-us`` for English (United States).
See class :class:`docbuild.models.language.LanguageCode`.
Lifecycle
Describes the distinct stages a product goes through, from its initial introduction to the market until its eventual decline and retirement.
See class :class:`docbuild.models.lifecycle.LifecycleFlag`.
Module
In Python context, a single Python file containing code.
See also :term:`Package`.
Mutex
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.
See also :term:`Concurrency`.
Option
* Python: An optional settings that modify the function's behavior.
* Command-line: a flag or switch that modifies a program's execution or triggers a specific behavior.
See also :term:`Argument`.
Package
In Python context, a directory containing one or more Python modules.
The Python interpreter treats a directory as a regular package if it contains a :file:`__init__.py` file.
See also :term:`Module`
Parallelism
The simultaneous execution of multiple tasks at the exact same instant, which requires a system with multiple hardware resources like CPU cores.
*Parallelism* is about executing multiple tasks simultaneously. This requires multiple CPU cores
See also :term:`Concurrency`
PEP
*Python Enhancement Proposal (PEP)* are design documents that
describe a new feature for Python and documenting the design decisions.
See https://peps.python.org/
Portal Config
XML configuration that describes all products, their releases,
deliverables and translations if available.
See also :term:`XML`
Pre-built Deliverable
A documentation artifact provided in its final form, generated by
external toolchains rather than by DAPS. These deliverables are
integrated as static files and do not require further processing or
transformation.
See also :term:`DC File`
Product
A distinct software offering or suite of components.
It represents the top-level entity in the documentation hierarchy,
under which specific releases and deliverables are organized.
Every product is identified by a full formal name and a unique
abbreviation used for internal references and build configurations.
See also :term:`Doctype`, :term:`Release`, :term:`Deliverable`
See class :class:`docbuild.models.product.Product`.
Pydantic
A Python library for data validation and settings management using Python type annotations. It provides a way to define data models with strict type checking and validation rules, making it easier to ensure that the data your application works with is correct and consistent.
See https://pydantic.dev/
:file:`pyproject.toml`
A configuration file used in Python project to define build system
requirements and project metadata.
See :pep:`518`, :term:`TOML`
Pytest
A testing framework. It's used to write, organize, and run
tests for your code, from simple unit tests to complex functional
testing.
See https://pytest.org
RELAX NG
RNC
RNG
*REgular LAnguage for XML Next Generation* is a schema language for XML
used to define and validate the structure and content of XML documents.
RNC is the compact syntax of RELAX NG, while RNG is the XML syntax.
Both are equivalent in terms of expressiveness.
See https://relaxng.org/
Release
A collection of deliverables associated with a specific version of a
product.
A release represents a published milestone in the product lifecycle,
encompassing both beta and final (GA) states.
See also :term:`Docset`, :term:`Product`
Repository
A centralized digital storage space for the documentation source code.
Typically hosted on platforms such as GitHub or GitLab.
See class :class:`docbuild.models.repo.Repo`
Ruff
A fast extensible linter and code formatter to improve code qualitiy
and enforce style guidelines.
See https://docs.astral.sh/ruff/
SemVer
Semantic Versioning
A formal convention for assiging version numbers to software
releases in a ``MAJOR.MINOR.PATCH`` format.
This structure conveys the nature of the changes, indicating
if an update introduces incompatible API changes (``MAJOR``),
adds backward-compatible features (``MINOR``), or contains
backward-compatible bug fixes (``PATCH``).
See https://semver.org
Sphinx
A documentation generator for Python projects. It converts
reStructuredText (reST or RST) files into various output formats
such as HTML, PDF, or manual pages or more.
See section :ref:`build-docs`.
TOML
*Tom's Obvious, Minimal Language* is a configuration file format
used to define environment settings for the docbuild tool.
See https://toml.io/en/
UV
A fast package manager which simplifies the building, installing,
and managing of this project.
See https://docs.astral.sh/uv/
VENV
Virtual Python Environment
An isolated and self-contained directory that contains a Python
installation for a particular version of Python, plus several
additional packages.
This prevents dependency conflicts by keeping each project's
requirements separate from other projects and the main system
installation.
By convention, a project's VENV is stored in a directory
named :file:`.venv` located at the root of the project folder.
See section :ref:`prepare-devel-env`.
XInclude
A standard XML mechanism used to assemble complex structures from
smaller, independent fragments. In this project, it is used to
modularize both documentation source files and the Portal Config.
See also :term:`DocBook`, :term:`Portal Config`, :term:`XML`
See https://www.w3.org/TR/xinclude-11/
XML
The *eXtensible Markup Language* is a text-based markup
language used to structure, store, and transport data in
a format that is both human- and machine-readable.
XPath
A query language used to navigate and address specific parts of an
XML document. It enables tools and build scripts to precisely locate,
retrieve, or manipulate data.
See https://www.w3.org/TR/xpath-10/
XSLT
The *eXtensible Stylesheet Language for Transformations*
is a language that transforms XML documents into other
formats like HTML, plain text, or new XML structures.
See https://www.w3.org/TR/xslt-10/