Skip to content

Latest commit

 

History

History
301 lines (203 loc) · 11.3 KB

File metadata and controls

301 lines (203 loc) · 11.3 KB

Glossary

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/