Introduction
============
Dox supports software developers to write **requirements**, **architecture** and **software design**
for their projects. All specification elements can be linked to each other and to source code to get
a full **traceability**.
Dox is the combination of the stand-alone Ruby gem **dim** and the three Python extensions for
`Sphinx `_ **dox_style**, **dox_util** and **dox_trace**.
Overview
========
For the documentations of the individual tools, please click on the links below.
.. list-table::
:header-rows: 1
* - Tool Name
- Description
* - `dox_style `_
- Provides a default configuration for Sphinx documentations.
It also checks several style conventions.
* - `dox_util `_
- Collection of small convenience-features for Sphinx documentations.
* - `dox_trace `_
- Provides specification directives to achieve traceability in Sphinx documentations.
* - `dim `_
- A light-weight requirements tool based on YAML.
Changelog
=========
See https://github.com/esrlabs/dox/blob/master/CHANGELOG.md.
Contributing
============
Contributions are welcome, please create pull requests! If you want to actively develop these tools,
please contact the owners of https://github.com/esrlabs/dox.
To merge a pull request, two requirements must be fulfilled:
- A code-owner must approve the PR.
- The `automatic checks `_ must not report any error.
Release Steps
=============
.. note::
This section is for the code-owners.
- Ensure that all relevant `pull requests `_ are merged and
`issues `_ are closed.
- Increment the version.
- Dim: ``/dim/version.txt``
- Sphinx extensions: ``/dox_*/dox_*/version.py``
- Extend the change log.
- Dim: ``/dim/documentation/source/pages/changelog.rst``
- Sphinx extensions: ``/dox_*/documentation/source/pages/changelog.rst``
- Adapt the overall documentation in ``/documentation``.
- If applicable, update the ``README.md`` files:
- Overall: ``/README.md``
- Dim: ``/dim/README.md``
- Sphinx extensions: ``/dox_*/README.md``
- Push and merge the changes to the ``master`` branch of https://github.com/esrlabs/dox with a
pull request.
- Build the documentation. Go to ``/documentation`` and type:
.. code-block:: none
make dist
- Push the output from ``/documentation/build/html`` to the ``gh-pages`` branch of
https://github.com/esrlabs/dox. Please do not delete the empty ``.nojekyll`` file, otherwise the
HTML style sheets will not work correctly.
- Create the packages.
- Dim: Go to ``/dim`` and type:
.. code-block:: none
gem build dim.gemspec
For more information about Ruby gems see https://guides.rubygems.org.
- Sphinx packages: Go to ``/dox_*`` and type:
.. code-block:: none
python -m build
For more information about Python packages see https://packaging.python.org.
- Upload the packages (accounts and appropriate access rights are required).
- Dim: Go to ``/dim`` and type:
.. code-block:: none
gem push dim-toolkit-1.2.3.gem
- Sphinx packages: Go to ``/dox_*`` and type:
.. code-block:: none
python -m twine upload dist/*
- Add a new release tag and copy/paste the changelog entries to https://github.com/esrlabs/dox/tags.