doc/dev/documenting.txt
author Philippe Pepiot <philippe.pepiot@logilab.fr>
Fri, 26 Oct 2018 17:12:26 +0200
changeset 12357 e385c9732f1e
parent 10495 5bd914ebf3ae
child 12792 e2cdb1be6bd9
permissions -rw-r--r--
Make test database template creation concurrent build_db_cache() is used in tests to create test database templates, i.e. DEFAULT_EMPTY_DB_ID (which is __default_empty_db__) and custom template database using CubicwebTC test_db_id/pre_setup_database API. When running tests in parallel using multiple processes, build_db_cache() may try to build the same database twice. Avoid this by adding synchronisation of process by using a file lock. So when two processes require the same template database, one build the database and others wait it to be created. Use filelock (https://github.com/benediktschmitt/py-filelock) library to have a portable (unix / windows) way for handling locks. Also filelock is packaged in debian: https://packages.debian.org/source/python-filelock

====
Book
====

----
Part
----

Chapter
=======

.. _Level1AnchorForLaterReference:

Level 1 section
---------------

Level 2 section
~~~~~~~~~~~~~~~

Level 3 section
```````````````



*CubicWeb*


inline directives:
  :file:`directory/file`
  :envvar:`AN_ENV_VARIABLE`
  :command:`command --option arguments`

  :ref:, :mod:


.. sourcecode:: python

   class SomePythonCode:
     ...

.. XXX a comment, wont be rendered


a [foot note]_

.. [foot note] the foot note content


Boxes
=====

- warning box: 
    .. warning::

       Warning content
- note box:
    .. note::

       Note content



Cross references
================

To arbitrary section
--------------------

:ref:`identifier` ou :ref:`label <identifier>`

Label required of referencing node which as no title, else the node's title will be used.


To API objects
--------------
See the autodoc sphinx extension documentation. Quick overview:

* ref to a class: :class:`cubicweb.devtools.testlib.AutomaticWebTest`

* if you can to see only the class name in the generated documentation, add a ~:
  :class:`~cubicweb.devtools.testlib.AutomaticWebTest`

* you can also use :mod: (module), :exc: (exception), :func: (function), :meth: (method)...

* syntax explained above to specify label explicitly may also be used