##// END OF EJS Templates
docs: move translation to a separate page...
Mads Kiilerich -
r5923:5262c498 default
parent child Browse files
Show More
@@ -0,0 +1,2 b''
1 .. _translations:
2 .. include:: ./../../kallithea/i18n/how_to
@@ -1,181 +1,178 b''
1 .. _contributing:
1 .. _contributing:
2
2
3 =========================
3 =========================
4 Contributing to Kallithea
4 Contributing to Kallithea
5 =========================
5 =========================
6
6
7 Kallithea is developed and maintained by its users. Please join us and scratch
7 Kallithea is developed and maintained by its users. Please join us and scratch
8 your own itch.
8 your own itch.
9
9
10
10
11 Infrastructure
11 Infrastructure
12 --------------
12 --------------
13
13
14 The main repository is hosted on Our Own Kallithea (aka OOK) at
14 The main repository is hosted on Our Own Kallithea (aka OOK) at
15 https://kallithea-scm.org/repos/kallithea/, our self-hosted instance
15 https://kallithea-scm.org/repos/kallithea/, our self-hosted instance
16 of Kallithea.
16 of Kallithea.
17
17
18 For now, we use Bitbucket_ for `pull requests`_ and `issue tracking`_. The
18 For now, we use Bitbucket_ for `pull requests`_ and `issue tracking`_. The
19 issue tracker is for tracking bugs, not for support, discussion, or ideas --
19 issue tracker is for tracking bugs, not for support, discussion, or ideas --
20 please use the `mailing list`_ or :ref:`IRC <readme>` to reach the community.
20 please use the `mailing list`_ or :ref:`IRC <readme>` to reach the community.
21
21
22 We use Weblate_ to translate the user interface messages into languages other
22 We use Weblate_ to translate the user interface messages into languages other
23 than English. Join our project on `Hosted Weblate`_ to help us.
23 than English. Join our project on `Hosted Weblate`_ to help us.
24 To register, you can use your Bitbucket or GitHub account. See :ref:`translations`
24 To register, you can use your Bitbucket or GitHub account. See :ref:`translations`
25 for more details.
25 for more details.
26
26
27
27
28 Getting started
28 Getting started
29 ---------------
29 ---------------
30
30
31 To get started with development::
31 To get started with development::
32
32
33 hg clone https://kallithea-scm.org/repos/kallithea
33 hg clone https://kallithea-scm.org/repos/kallithea
34 cd kallithea
34 cd kallithea
35 virtualenv ../kallithea-venv
35 virtualenv ../kallithea-venv
36 source ../kallithea-venv/bin/activate
36 source ../kallithea-venv/bin/activate
37 pip install --upgrade pip setuptools
37 pip install --upgrade pip setuptools
38 pip install -e .
38 pip install -e .
39 paster make-config Kallithea my.ini
39 paster make-config Kallithea my.ini
40 paster setup-db my.ini --user=user --email=user@example.com --password=password --repos=/tmp
40 paster setup-db my.ini --user=user --email=user@example.com --password=password --repos=/tmp
41 paster serve my.ini --reload &
41 paster serve my.ini --reload &
42 firefox http://127.0.0.1:5000/
42 firefox http://127.0.0.1:5000/
43
43
44 You can also start out by forking https://bitbucket.org/conservancy/kallithea
44 You can also start out by forking https://bitbucket.org/conservancy/kallithea
45 on Bitbucket_ and create a local clone of your own fork.
45 on Bitbucket_ and create a local clone of your own fork.
46
46
47
47
48 Running tests
48 Running tests
49 -------------
49 -------------
50
50
51 After finishing your changes make sure all tests pass cleanly. You can run
51 After finishing your changes make sure all tests pass cleanly. You can run
52 the testsuite by running ``py.test`` from the project root::
52 the testsuite by running ``py.test`` from the project root::
53
53
54 py.test
54 py.test
55
55
56 You can also use ``tox`` to run the tests with all supported Python versions
56 You can also use ``tox`` to run the tests with all supported Python versions
57 (currently Python 2.6--2.7).
57 (currently Python 2.6--2.7).
58
58
59 When running tests, Kallithea uses `kallithea/tests/test.ini` and populates the
59 When running tests, Kallithea uses `kallithea/tests/test.ini` and populates the
60 SQLite database specified there.
60 SQLite database specified there.
61
61
62 It is possible to avoid recreating the full test database on each invocation of
62 It is possible to avoid recreating the full test database on each invocation of
63 the tests, thus eliminating the initial delay. To achieve this, run the tests as::
63 the tests, thus eliminating the initial delay. To achieve this, run the tests as::
64
64
65 paster serve kallithea/tests/test.ini --pid-file=test.pid --daemon
65 paster serve kallithea/tests/test.ini --pid-file=test.pid --daemon
66 KALLITHEA_WHOOSH_TEST_DISABLE=1 KALLITHEA_NO_TMP_PATH=1 py.test
66 KALLITHEA_WHOOSH_TEST_DISABLE=1 KALLITHEA_NO_TMP_PATH=1 py.test
67 kill -9 $(cat test.pid)
67 kill -9 $(cat test.pid)
68
68
69 In these commands, the following variables are used::
69 In these commands, the following variables are used::
70
70
71 KALLITHEA_WHOOSH_TEST_DISABLE=1 - skip whoosh index building and tests
71 KALLITHEA_WHOOSH_TEST_DISABLE=1 - skip whoosh index building and tests
72 KALLITHEA_NO_TMP_PATH=1 - disable new temp path for tests, used mostly for testing_vcs_operations
72 KALLITHEA_NO_TMP_PATH=1 - disable new temp path for tests, used mostly for testing_vcs_operations
73
73
74 You can run individual tests by specifying their path as argument to py.test.
74 You can run individual tests by specifying their path as argument to py.test.
75 py.test also has many more options, see `py.test -h`. Some useful options
75 py.test also has many more options, see `py.test -h`. Some useful options
76 are::
76 are::
77
77
78 -k EXPRESSION only run tests which match the given substring
78 -k EXPRESSION only run tests which match the given substring
79 expression. An expression is a python evaluable
79 expression. An expression is a python evaluable
80 expression where all names are substring-matched
80 expression where all names are substring-matched
81 against test names and their parent classes. Example:
81 against test names and their parent classes. Example:
82 -x, --exitfirst exit instantly on first error or failed test.
82 -x, --exitfirst exit instantly on first error or failed test.
83 --lf rerun only the tests that failed at the last run (or
83 --lf rerun only the tests that failed at the last run (or
84 all if none failed)
84 all if none failed)
85 --ff run all tests but run the last failures first. This
85 --ff run all tests but run the last failures first. This
86 may re-order tests and thus lead to repeated fixture
86 may re-order tests and thus lead to repeated fixture
87 setup/teardown
87 setup/teardown
88 --pdb start the interactive Python debugger on errors.
88 --pdb start the interactive Python debugger on errors.
89 -s, --capture=no don't capture stdout (any stdout output will be
89 -s, --capture=no don't capture stdout (any stdout output will be
90 printed immediately)
90 printed immediately)
91
91
92
92
93 Coding/contribution guidelines
93 Coding/contribution guidelines
94 ------------------------------
94 ------------------------------
95
95
96 Kallithea is GPLv3 and we assume all contributions are made by the
96 Kallithea is GPLv3 and we assume all contributions are made by the
97 committer/contributor and under GPLv3 unless explicitly stated. We do care a
97 committer/contributor and under GPLv3 unless explicitly stated. We do care a
98 lot about preservation of copyright and license information for existing code
98 lot about preservation of copyright and license information for existing code
99 that is brought into the project.
99 that is brought into the project.
100
100
101 We don't have a formal coding/formatting standard. We are currently using a mix
101 We don't have a formal coding/formatting standard. We are currently using a mix
102 of Mercurial (http://mercurial.selenic.com/wiki/CodingStyle), pep8, and
102 of Mercurial (http://mercurial.selenic.com/wiki/CodingStyle), pep8, and
103 consistency with existing code. Run whitespacecleanup.sh to avoid stupid
103 consistency with existing code. Run whitespacecleanup.sh to avoid stupid
104 whitespace noise in your patches.
104 whitespace noise in your patches.
105
105
106 We support both Python 2.6.x and 2.7.x and nothing else. For now we don't care
106 We support both Python 2.6.x and 2.7.x and nothing else. For now we don't care
107 about Python 3 compatibility.
107 about Python 3 compatibility.
108
108
109 We try to support the most common modern web browsers. IE9 is still supported
109 We try to support the most common modern web browsers. IE9 is still supported
110 to the extent it is feasible, IE8 is not.
110 to the extent it is feasible, IE8 is not.
111
111
112 We primarily support Linux and OS X on the server side but Windows should also work.
112 We primarily support Linux and OS X on the server side but Windows should also work.
113
113
114 HTML templates should use 2 spaces for indentation ... but be pragmatic. We
114 HTML templates should use 2 spaces for indentation ... but be pragmatic. We
115 should use templates cleverly and avoid duplication. We should use reasonable
115 should use templates cleverly and avoid duplication. We should use reasonable
116 semantic markup with element classes and IDs that can be used for styling and testing.
116 semantic markup with element classes and IDs that can be used for styling and testing.
117 We should only use inline styles in places where it really is semantic (such as
117 We should only use inline styles in places where it really is semantic (such as
118 ``display: none``).
118 ``display: none``).
119
119
120 JavaScript must use ``;`` between/after statements. Indentation 4 spaces. Inline
120 JavaScript must use ``;`` between/after statements. Indentation 4 spaces. Inline
121 multiline functions should be indented two levels -- one for the ``()`` and one for
121 multiline functions should be indented two levels -- one for the ``()`` and one for
122 ``{}``.
122 ``{}``.
123 Variables holding jQuery objects should be named with a leading ``$``.
123 Variables holding jQuery objects should be named with a leading ``$``.
124
124
125 Run ``scripts/run-all-cleanup`` before committing to ensure some basic code
125 Run ``scripts/run-all-cleanup`` before committing to ensure some basic code
126 formatting consistency.
126 formatting consistency.
127
127
128 Commit messages should have a leading short line summarizing the changes. For
128 Commit messages should have a leading short line summarizing the changes. For
129 bug fixes, put ``(Issue #123)`` at the end of this line.
129 bug fixes, put ``(Issue #123)`` at the end of this line.
130
130
131 Use American English grammar and spelling overall. Use `English title case`_ for
131 Use American English grammar and spelling overall. Use `English title case`_ for
132 page titles, button labels, headers, and 'labels' for fields in forms.
132 page titles, button labels, headers, and 'labels' for fields in forms.
133
133
134 .. _English title case: https://en.wikipedia.org/wiki/Capitalization#Title_case
134 .. _English title case: https://en.wikipedia.org/wiki/Capitalization#Title_case
135
135
136 Contributions will be accepted in most formats -- such as pull requests on
136 Contributions will be accepted in most formats -- such as pull requests on
137 bitbucket, something hosted on your own Kallithea instance, or patches sent by
137 bitbucket, something hosted on your own Kallithea instance, or patches sent by
138 email to the `kallithea-general`_ mailing list.
138 email to the `kallithea-general`_ mailing list.
139
139
140 Make sure to test your changes both manually and with the automatic tests
140 Make sure to test your changes both manually and with the automatic tests
141 before posting.
141 before posting.
142
142
143 We care about quality and review and keeping a clean repository history. We
143 We care about quality and review and keeping a clean repository history. We
144 might give feedback that requests polishing contributions until they are
144 might give feedback that requests polishing contributions until they are
145 "perfect". We might also rebase and collapse and make minor adjustments to your
145 "perfect". We might also rebase and collapse and make minor adjustments to your
146 changes when we apply them.
146 changes when we apply them.
147
147
148 We try to make sure we have consensus on the direction the project is taking.
148 We try to make sure we have consensus on the direction the project is taking.
149 Everything non-sensitive should be discussed in public -- preferably on the
149 Everything non-sensitive should be discussed in public -- preferably on the
150 mailing list. We aim at having all non-trivial changes reviewed by at least
150 mailing list. We aim at having all non-trivial changes reviewed by at least
151 one other core developer before pushing. Obvious non-controversial changes will
151 one other core developer before pushing. Obvious non-controversial changes will
152 be handled more casually.
152 be handled more casually.
153
153
154 For now we just have one official branch ("default") and will keep it so stable
154 For now we just have one official branch ("default") and will keep it so stable
155 that it can be (and is) used in production. Experimental changes should live
155 that it can be (and is) used in production. Experimental changes should live
156 elsewhere (for example in a pull request) until they are ready.
156 elsewhere (for example in a pull request) until they are ready.
157
157
158 .. _translations:
159 .. include:: ./../kallithea/i18n/how_to
160
161
158
162 "Roadmap"
159 "Roadmap"
163 ---------
160 ---------
164
161
165 We do not have a road map but are waiting for your contributions. Refer to the
162 We do not have a road map but are waiting for your contributions. Refer to the
166 wiki_ for some ideas of places we might want to go -- contributions in these
163 wiki_ for some ideas of places we might want to go -- contributions in these
167 areas are very welcome.
164 areas are very welcome.
168
165
169
166
170 Thank you for your contribution!
167 Thank you for your contribution!
171 --------------------------------
168 --------------------------------
172
169
173
170
174 .. _Weblate: http://weblate.org/
171 .. _Weblate: http://weblate.org/
175 .. _issue tracking: https://bitbucket.org/conservancy/kallithea/issues?status=new&status=open
172 .. _issue tracking: https://bitbucket.org/conservancy/kallithea/issues?status=new&status=open
176 .. _pull requests: https://bitbucket.org/conservancy/kallithea/pull-requests
173 .. _pull requests: https://bitbucket.org/conservancy/kallithea/pull-requests
177 .. _bitbucket: http://bitbucket.org/
174 .. _bitbucket: http://bitbucket.org/
178 .. _mailing list: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
175 .. _mailing list: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
179 .. _kallithea-general: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
176 .. _kallithea-general: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
180 .. _Hosted Weblate: https://hosted.weblate.org/projects/kallithea/kallithea/
177 .. _Hosted Weblate: https://hosted.weblate.org/projects/kallithea/kallithea/
181 .. _wiki: https://bitbucket.org/conservancy/kallithea/wiki/Home
178 .. _wiki: https://bitbucket.org/conservancy/kallithea/wiki/Home
@@ -1,82 +1,83 b''
1 .. _index:
1 .. _index:
2
2
3 #######################
3 #######################
4 Kallithea Documentation
4 Kallithea Documentation
5 #######################
5 #######################
6
6
7 **Readme**
7 **Readme**
8
8
9 .. toctree::
9 .. toctree::
10 :maxdepth: 1
10 :maxdepth: 1
11
11
12 readme
12 readme
13
13
14 **Installation**
14 **Installation**
15
15
16 .. toctree::
16 .. toctree::
17 :maxdepth: 1
17 :maxdepth: 1
18
18
19 overview
19 overview
20 installation
20 installation
21 installation_win
21 installation_win
22 installation_win_old
22 installation_win_old
23 installation_iis
23 installation_iis
24 setup
24 setup
25 installation_puppet
25 installation_puppet
26 upgrade
26 upgrade
27
27
28 **Usage**
28 **Usage**
29
29
30 .. toctree::
30 .. toctree::
31 :maxdepth: 1
31 :maxdepth: 1
32
32
33 usage/general
33 usage/general
34 usage/vcs_support
34 usage/vcs_support
35 usage/locking
35 usage/locking
36 usage/statistics
36 usage/statistics
37
37
38 **Administrator's guide**
38 **Administrator's guide**
39
39
40 .. toctree::
40 .. toctree::
41 :maxdepth: 1
41 :maxdepth: 1
42
42
43 usage/email
43 usage/email
44 usage/performance
44 usage/performance
45 usage/backup
45 usage/backup
46 usage/debugging
46 usage/debugging
47 usage/troubleshooting
47 usage/troubleshooting
48 usage/customization
48 usage/customization
49
49
50 **Development**
50 **Development**
51
51
52 .. toctree::
52 .. toctree::
53 :maxdepth: 1
53 :maxdepth: 1
54
54
55 contributing
55 contributing
56 dev/translation
56 changelog
57 changelog
57
58
58 **API**
59 **API**
59
60
60 .. toctree::
61 .. toctree::
61 :maxdepth: 1
62 :maxdepth: 1
62
63
63 api/api
64 api/api
64
65
65
66
66 Other topics
67 Other topics
67 ************
68 ************
68
69
69 * :ref:`genindex`
70 * :ref:`genindex`
70 * :ref:`search`
71 * :ref:`search`
71
72
72
73
73 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
74 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
74 .. _python: http://www.python.org/
75 .. _python: http://www.python.org/
75 .. _django: http://www.djangoproject.com/
76 .. _django: http://www.djangoproject.com/
76 .. _mercurial: http://mercurial.selenic.com/
77 .. _mercurial: http://mercurial.selenic.com/
77 .. _bitbucket: http://bitbucket.org/
78 .. _bitbucket: http://bitbucket.org/
78 .. _subversion: http://subversion.tigris.org/
79 .. _subversion: http://subversion.tigris.org/
79 .. _git: http://git-scm.com/
80 .. _git: http://git-scm.com/
80 .. _celery: http://celeryproject.org/
81 .. _celery: http://celeryproject.org/
81 .. _Sphinx: http://sphinx.pocoo.org/
82 .. _Sphinx: http://sphinx.pocoo.org/
82 .. _vcs: http://pypi.python.org/pypi/vcs
83 .. _vcs: http://pypi.python.org/pypi/vcs
General Comments 0
You need to be logged in to leave comments. Login now