summaryrefslogtreecommitdiff
path: root/docs/contribution.rst
blob: 4353e2faf735e413e9b1071527b40aee04c04a7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
======================
Contributing to Zinnia
======================

.. highlightlang:: console

Zinnia is an open-source project, so yours contributions are welcomed and needed.

.. _writing-code:

Writing code
============

So you have a great idea to program, found a bug or a way to optimize the
code ? You are welcome.

.. _code-process:

Process
-------

#. `Fork`_ the code on Github.
#. Clone a local copy of your fork.
#. Write tests.
#. Develop your code.
#. Test your new code.
#. Update the documentation if needed.
#. Commit and push your changes.
#. Open a pull request.

.. _code-conventions:

Conventions
-----------

Code conventions are important in a way where they ensure the lisibility
of the code in the time, that's why the code try to respect at most the
:pep:`8`.

If you have already :ref:`run the buildout <running-the-buildout>` script
you can execute this Makefile rule to check your code. ::

  $ make kwalitee

With a clear and uniform code, the development is better and faster.

.. _writing-tests:

Tests
-----

The submited code should be covered with one or more unittests to ensure the
new behavior and will make easier future developments. Without that, your
code will not be reliable and may not be integrated.

See :doc:`tests` for more informations.

.. _writing-documentation:

Writing documentation
=====================

Sometimes considered like "annoying" by hard-core coders, documentation is
more important than the code itself! This is what brings fresh blood to a
project, and serves as a reference for old timers.

On top of this, documentation is the one area where less technical people
can help most - you just need to write a semi-decent English. People need
to understand you. We don’t care about style or correctness.

The documentation should :

* Use **Sphinx** and **restructuredText**.
* Use **.rst** as file extension.
* Be written in English.
* Be accessible. You should assume the reader to be moderately familiar
  with Python and Django, but not anything else.

Keep it mind that documenting is most useful than coding, so your
contribution will be greatly appreciated.

.. _writing-translations:

Translations
------------

If you want to contribute by updating a translation or adding a translation
in your language, it's simple: create a account on Transifex.net and you
will be able to edit the translations at this URL :

https://www.transifex.net/projects/p/django-blog-zinnia/resource/djangopo/

.. image:: http://www.transifex.net/projects/p/django-blog-zinnia/resource/djangopo/chart/image_png

The translations hosted on Transifex.net will be pulled periodically in the
repository, but if you are in a hurry, `send me a message`_.

.. _`Fork`: https://github.com/Fantomas42/django-blog-zinnia/fork
.. _`send me a message`: https://github.com/inbox/new/Fantomas42