guake-guake/docs/source/contributing/hacking.rst
Gaetan Semet 352a2570ff Rework doc generation
fix #1271

Signed-off-by: Gaetan Semet <gaetan@xeberon.net>
2018-04-14 14:40:51 +02:00

94 lines
2.8 KiB
ReStructuredText

=============
Hacking Guake
=============
Contributing
============
First, be sure to use a verion of Python 3 where GTK and GObjects works in your system.
For instance, under Ubuntu 17.04, PyGtk and ``python3-gi`` does not work well if the default
python 3 interpreter is forced to Python 3.6.
+-------------------+----------------------------+-----------------------------+
| Operating System | Recommended Python version | Notes |
+===================+============================+=============================+
| Ubuntu 14.04 LTS | Python 3.4 (UNTESTED) | |
+-------------------+----------------------------+-----------------------------+
| Ubuntu 16.04 LTS | Python 3.5 (TESTED) | |
+-------------------+----------------------------+-----------------------------+
| Ubuntu 17.04 | Python 3.5 (TESTED) | |
+-------------------+----------------------------+-----------------------------+
| Ubuntu 17.10 | Python 3.6 (TESTED) | Quick Open disabled (#1230) |
+-------------------+----------------------------+-----------------------------+
Validate your code
------------------
We are strict on code styling, with pep8 and pylint running automatically in travis in
order to reject badly shaped patches. Please use the following command to validate all
python files:
.. code-block:: bash
$ make style # fix the style of python files
$ make check # static code analysis
$ make test # unit test campaign
$ make dists # make distribution packages
Update translation
==================
Update all translation files:
.. code-block:: bash
$ make update-po
Install the translations files:
.. code-block:: bash
$ sudo make install-locale
Then use your favorite po editor, such as ``poedit``.
Start Guake with a different locale (locales should be installed):
.. code-block:: bash
$ LC_ALL=fr_FR.UTF8 make run
Update NEWS
-----------
Update the `NEWS` file using the followng command:
.. code-block:: bash
make release-note-news
The ``ChangeLog`` files is not maintained but instead automatically generated by PBR when
building the distribution packages.
Same goes for the `ChangeLog` file.
Versionning
-----------
Versioning is automatically done using git tags. When a semver tag is pushed, a new version
is automatically created by PBR.
PBR also has some magic to generate the version automatically from ``sem-ver`` tag found in the
commit message. See the ``Makefile``'s ``tag-pbr`` target.
Travis build
------------
Travis automatically check pull requests are compiling and check for code style.
Status of the master branch: https://travis-ci.org/Guake/guake.png?branch=master
The Travis job also pushes new release of Guake to Pypi.