.. _project-deps: Project Dependencies ==================== Although this project contains pure Python code, it needs other dependencies to work correctly: * **Python installation dependencies** Minimum dependencies that the program can run at all. * **Testing dependencies** Dependencies used for testing. * **Documentation Dependencies** For building the documentation. * **System dependencies** These are explained in this topic. All of the above points (except for the last one) are defined in the :file:`pyproject.toml` file. Operating System ---------------- The code is developed on openSUSE, but should work on any Linux distribution. The project will support MacOS too. It's currently not planned to support Windows. .. note:: 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. You may have a better experience developing in a virtual machine running openSUSE or using a Docker container. Python ------ The minimal Python version is defined in the :file:`pyproject.toml` file. It's strongly recommended to have the Python versions managed by |uv|. Editor ------ You can use any editor you like. Rudimentary support is available for `VSCode `_. External tools -------------- * |daps|: our tool to build documentation. This is an obligatory requirement. This adds other dependencies. * |uv|, the Python package manager. This is explained in :ref:`devel-helpers`. * :command:`make` is used to build the documentation. * :command:`jing`: for validation the XML configuration files. * :command:`gh`: optional tool for interacting with GitHub, see :ref:`github-cli`. XML configuration ----------------- Formerly known as the *Docserv XML configs*. These configuration files defines the :term:`products `, their :term:`releases `, their :term:`lifecycle ` status and more. Clone the |gl_xmlconfig| or use the RNC schema from :gh_tree:`src/docbuild/config/xml/data/` to create this configuration.