Show More
@@ -0,0 +1,37 b'' | |||||
|
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
|
2 | <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" enable-background="new 0 0 163 30" xml:space="preserve" height="30" viewBox="0 0 140 30" width="140" version="1.1" y="0px" x="0px"> | |||
|
3 | <metadata> | |||
|
4 | <rdf:RDF> | |||
|
5 | <cc:Work rdf:about=""> | |||
|
6 | <dc:format>image/svg+xml</dc:format> | |||
|
7 | <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> | |||
|
8 | <dc:title/> | |||
|
9 | </cc:Work> | |||
|
10 | </rdf:RDF> | |||
|
11 | </metadata> | |||
|
12 | <g display="none"> | |||
|
13 | <rect display="inline" height="163" width="256" y="-66.5" x="-24" fill="#404c2c"/> | |||
|
14 | </g> | |||
|
15 | <g transform="matrix(.83 0 0 1 5.6391 0)"> | |||
|
16 | <g fill="#b1d579"> | |||
|
17 | <path d="m26.04 25.875v-20.64l5.451-0.473v21.113h-5.451zm17.215 0h-6.141l-5.451-8.066 5.589-6.704h5.555l-5.555 6.481 6.003 8.289z"/> | |||
|
18 | <path d="m58.951 21.592c0 1.141 0.379 1.557 1.242 1.809l-1.138 2.865c-2.174-0.141-3.588-0.668-4.416-2.143-1.311 1.641-3.347 2.225-5.52 2.225-3.657 0-5.969-1.918-5.969-4.617 0-3.227 3.036-4.979 8.59-4.979h1.863v-0.641c0-1.751-0.862-2.28-3.105-2.28-1.173 0-2.967 0.278-4.795 0.779l-1.242-2.893c2.312-0.695 4.83-1.085 6.9-1.085 5.313 0 7.59 1.808 7.59 5.229v5.731zm-5.347 0.194v-2.614h-1.346c-2.484 0-3.691 0.695-3.691 2.169 0 1.169 0.793 1.864 2.139 1.864 1.276 0 2.242-0.529 2.898-1.419z"/> | |||
|
19 | <path d="m68.057 21.73c0 0.834 0.345 1.141 0.932 1.141 0.276 0 0.655-0.057 0.897-0.139l1.069 3.115c-0.931 0.305-2.242 0.5-3.519 0.5-3.036 0-4.83-1.447-4.83-4.173v-16.939l5.451-0.473v16.968z"/> | |||
|
20 | <path d="m77.785 21.73c0 0.834 0.345 1.141 0.932 1.141 0.276 0 0.655-0.057 0.897-0.139l1.069 3.115c-0.931 0.305-2.242 0.5-3.519 0.5-3.036 0-4.83-1.447-4.83-4.173v-16.939l5.451-0.473v16.968z"/> | |||
|
21 | <path d="m88.169 5.819c0 1.418-1.346 2.503-3.243 2.503-1.896 0-3.208-1.085-3.208-2.503 0-1.419 1.312-2.504 3.208-2.504 1.897 0 3.243 1.085 3.243 2.504zm-5.935 20.056v-14.771h5.451v14.771h-5.451z"/> | |||
|
22 | <path d="m102.93 25.18c-1.379 0.779-3.312 1.168-4.968 1.168-4.036-0.027-6.003-1.863-6.003-5.341v-6.843h-2.588v-3.06h2.588v-3.199l5.451-0.5v3.7h4.209l-0.587 3.06h-3.622v6.787c0 1.419 0.586 1.92 1.725 1.92 0.621 0 1.242-0.14 1.967-0.501l1.828 2.809z"/> | |||
|
23 | <path d="m120.04 15.082v10.793h-5.45v-10.042c0-1.558-0.691-1.975-1.726-1.975-1.208 0-2.208 0.695-3.175 1.892v10.125h-5.45v-20.64l5.45-0.445v7.9c1.483-1.363 3.141-2.059 5.279-2.059 3.174 0 5.072 1.641 5.072 4.451z"/> | |||
|
24 | <path d="m139.5 19.783h-11.35c0.379 2.643 1.932 3.365 4.174 3.365 1.484 0 2.795-0.416 4.382-1.308l2.243 2.447c-1.829 1.168-4.176 2.06-7.143 2.06-6.105 0-9.211-3.172-9.211-7.789 0-4.422 3.002-7.928 8.557-7.928 5.242 0 8.451 2.782 8.451 7.566 0.001 0.474-0.033 1.142-0.102 1.587zm-5.244-2.838c-0.034-2.002-0.794-3.394-2.968-3.394-1.793 0-2.896 0.946-3.139 3.589h6.105l0.002-0.195z"/> | |||
|
25 | <path d="m156.78 21.592c0 1.141 0.379 1.557 1.242 1.809l-1.139 2.865c-2.175-0.141-3.589-0.668-4.416-2.143-1.312 1.641-3.348 2.225-5.521 2.225-3.658 0-5.97-1.918-5.97-4.617 0-3.227 3.035-4.979 8.59-4.979h1.863v-0.641c0-1.751-0.861-2.28-3.104-2.28-1.172 0-2.968 0.278-4.795 0.779l-1.242-2.893c2.312-0.695 4.83-1.085 6.899-1.085 5.312 0 7.591 1.808 7.591 5.229l0.002 5.731zm-5.347 0.194v-2.614h-1.346c-2.484 0-3.691 0.695-3.691 2.169 0 1.169 0.793 1.864 2.14 1.864 1.275 0 2.24-0.529 2.897-1.419z"/> | |||
|
26 | </g> | |||
|
27 | </g> | |||
|
28 | <g fill="#b1d579"> | |||
|
29 | <path d="m8.155 18.736c-0.086-0.21-0.048-0.579-0.048-0.579l-0.097-8.098h-1.149l0.098 8.398s-0.034 0.455 0.091 0.709c0.125 0.255 0.413 0.599 0.413 0.599l3.491 3.384s0.107 0.122 0.292 0.486l0.001-1.876-2.884-2.702c0 0.002-0.122-0.11-0.208-0.321z"/> | |||
|
30 | <path d="m19.362 23.255c0.088-0.331 0.089-0.608 0.089-0.608l-0.01-2.976h-1.237v3.082s-0.007 0.113-0.069 0.254c-0.063 0.142-0.091 0.173-0.091 0.173l-2.319 2.395h1.569l1.768-1.832c0.001-0.001 0.217-0.17 0.3-0.488z"/> | |||
|
31 | <path d="m12.905 15.81c0.18-0.288 0.437-0.463 0.437-0.463l2.998-3.073s0.511-0.461 0.622-0.782c0.108-0.321 0.045-1.436 0.045-1.436l-0.111-6.44h-1.491l0.077 6.441s0.062 0.514 0 0.726-0.294 0.481-0.294 0.481l-3.137 3.212s-0.638 0.705-0.743 0.934c-0.104 0.228-0.057 1.347-0.057 1.347l-0.003 5.005-0.001 1.876-0.002 1.938h1.479l0.051-8.819c-0.002-0.001-0.048-0.66 0.13-0.947z"/> | |||
|
32 | </g> | |||
|
33 | <g stroke="#b1d579" fill="none" stroke-miterlimit="10"> | |||
|
34 | <circle cx="18.723" cy="17.973" r="1.698" stroke-width="1.4318"/> | |||
|
35 | <circle cx="7.454" cy="7.291" r="2.769" stroke-width="1.7898"/> | |||
|
36 | </g> | |||
|
37 | </svg> |
@@ -21,6 +21,6 b' syntax: regexp' | |||||
21 | ^kallithea\.db$ |
|
21 | ^kallithea\.db$ | |
22 | ^test\.db$ |
|
22 | ^test\.db$ | |
23 | ^Kallithea\.egg-info$ |
|
23 | ^Kallithea\.egg-info$ | |
24 |
^ |
|
24 | ^my\.ini$ | |
25 | ^fabfile.py |
|
25 | ^fabfile.py | |
26 | ^\.idea$ |
|
26 | ^\.idea$ |
@@ -1,6 +1,6 b'' | |||||
1 | ========= |
|
1 | ================ | |
2 | Kallithea |
|
2 | Kallithea README | |
3 | ========= |
|
3 | ================ | |
4 |
|
4 | |||
5 | About |
|
5 | About | |
6 | ----- |
|
6 | ----- | |
@@ -23,15 +23,12 b' Kallithea was forked from RhodeCode in J' | |||||
23 |
|
23 | |||
24 | Installation |
|
24 | Installation | |
25 | ------------ |
|
25 | ------------ | |
26 |
|
|
26 | Official releases of Kallithea can be installed via:: | |
27 |
|
||||
28 | easy_install kallithea |
|
|||
29 |
|
||||
30 | Or:: |
|
|||
31 |
|
27 | |||
32 | pip install kallithea |
|
28 | pip install kallithea | |
33 |
|
29 | |||
34 | Detailed instructions and links may be found on the Installation page. |
|
30 | The development repository is kept very stable and used in production by the | |
|
31 | developers - you can do the same. | |||
35 |
|
32 | |||
36 | Please visit http://packages.python.org/Kallithea/installation.html for |
|
33 | Please visit http://packages.python.org/Kallithea/installation.html for | |
37 | more details. |
|
34 | more details. | |
@@ -40,14 +37,10 b' more details.' | |||||
40 | Source code |
|
37 | Source code | |
41 | ----------- |
|
38 | ----------- | |
42 |
|
39 | |||
43 | The latest sources can be obtained from https://kallithea-scm.org/repos/kallithea |
|
40 | The latest sources can be obtained from https://kallithea-scm.org/repos/kallithea. | |
44 |
|
||||
45 |
|
41 | |||
46 | MIRRORS: |
|
42 | The issue tracker and a repository mirror can be found at Bitbucket_ on | |
47 |
|
43 | https://bitbucket.org/conservancy/kallithea. | ||
48 | Issue tracker and sources at Bitbucket_ |
|
|||
49 |
|
||||
50 | https://bitbucket.org/conservancy/kallithea |
|
|||
51 |
|
44 | |||
52 |
|
45 | |||
53 |
|
46 | |||
@@ -67,7 +60,7 b' Kallithea Features' | |||||
67 | - Users can fork other users repos, and compare them at any time. |
|
60 | - Users can fork other users repos, and compare them at any time. | |
68 | - Built-in versioned paste functionality (Gist) for sharing code snippets. |
|
61 | - Built-in versioned paste functionality (Gist) for sharing code snippets. | |
69 | - Integrates easily with other systems, with custom created mappers you can connect it to almost |
|
62 | - Integrates easily with other systems, with custom created mappers you can connect it to almost | |
70 |
any issue tracker, and with a |
|
63 | any issue tracker, and with a JSON-RPC API you can make much more. | |
71 | - Built-in commit API lets you add, edit and commit files right from Kallithea |
|
64 | - Built-in commit API lets you add, edit and commit files right from Kallithea | |
72 | web interface using simple editor or upload binary files using simple form. |
|
65 | web interface using simple editor or upload binary files using simple form. | |
73 | - Powerful pull request driven review system with inline commenting, |
|
66 | - Powerful pull request driven review system with inline commenting, | |
@@ -75,9 +68,9 b' Kallithea Features' | |||||
75 | - Importing and syncing repositories from remote locations for Git_, Mercurial_ and Subversion. |
|
68 | - Importing and syncing repositories from remote locations for Git_, Mercurial_ and Subversion. | |
76 | - Mako templates let you customize the look and feel of the application. |
|
69 | - Mako templates let you customize the look and feel of the application. | |
77 | - Beautiful diffs, annotations and source code browsing all colored by pygments. |
|
70 | - Beautiful diffs, annotations and source code browsing all colored by pygments. | |
78 | Raw diffs are made in Git-diff format for both VCS systems, including Git_ binary-patches |
|
71 | Raw diffs are made in Git-diff format for both VCS systems, including Git_ binary-patches. | |
79 | - Mercurial_ and Git_ DAG graphs and Flot-powered graphs with zooming and statistics |
|
72 | - Mercurial_ and Git_ DAG graphs and Flot-powered graphs with zooming and statistics | |
80 | to track activity for repositories |
|
73 | to track activity for repositories. | |
81 | - Admin interface with user/permission management. Admin activity journal, logs |
|
74 | - Admin interface with user/permission management. Admin activity journal, logs | |
82 | pulls, pushes, forks, registrations and other actions made by all users. |
|
75 | pulls, pushes, forks, registrations and other actions made by all users. | |
83 | - Server side forks. It is possible to fork a project and modify it freely |
|
76 | - Server side forks. It is possible to fork a project and modify it freely | |
@@ -85,69 +78,68 b' Kallithea Features' | |||||
85 | - reST and Markdown README support for repositories. |
|
78 | - reST and Markdown README support for repositories. | |
86 | - Full text search powered by Whoosh on the source files, commit messages, and file names. |
|
79 | - Full text search powered by Whoosh on the source files, commit messages, and file names. | |
87 | Built-in indexing daemons, with optional incremental index build |
|
80 | Built-in indexing daemons, with optional incremental index build | |
88 | (no external search servers required all in one application) |
|
81 | (no external search servers required all in one application). | |
89 | - Setup project descriptions/tags and info inside built in DB for easy, |
|
82 | - Setup project descriptions/tags and info inside built in DB for easy, | |
90 | non-filesystem operations. |
|
83 | non-filesystem operations. | |
91 | - Intelligent cache with invalidation after push or project change, provides |
|
84 | - Intelligent cache with invalidation after push or project change, provides | |
92 | high performance and always up to date data. |
|
85 | high performance and always up to date data. | |
93 | - RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz |
|
86 | - RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz. | |
94 | - Optional async tasks for speed and performance using Celery_ |
|
87 | - Optional async tasks for speed and performance using Celery_. | |
95 | - Backup scripts can do backup of whole app and send it over scp to desired |
|
88 | - Backup scripts can do backup of whole app and send it over scp to desired | |
96 | location |
|
89 | location. | |
97 | - Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs |
|
90 | - Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs. | |
98 |
|
||||
99 |
|
||||
100 | Incoming / Plans |
|
|||
101 | ---------------- |
|
|||
102 |
|
91 | |||
103 | - Finer granular permissions per branch, or subrepo |
|
|||
104 | - Web-based merges for pull requests |
|
|||
105 | - Tracking history for each lines in files |
|
|||
106 | - Simple issue tracker |
|
|||
107 | - SSH-based authentication with server side key management |
|
|||
108 | - Commit based built in wiki system |
|
|||
109 | - More statistics and graph (global annotation + some more statistics) |
|
|||
110 | - Other advancements as development continues (or you can of course make |
|
|||
111 | additions and or requests) |
|
|||
112 |
|
92 | |||
113 | License |
|
93 | License | |
114 | ------- |
|
94 | ------- | |
115 |
|
95 | |||
116 | ``Kallithea`` is released under the GPLv3 license. |
|
96 | ``Kallithea`` is released under the GPLv3 license. ``Kallithea`` is a | |
|
97 | `Software Freedom Conservancy`_ project and thus controlled by a non-profit organization. | |||
|
98 | No commercial entity can take ownership of the project and change the direction. | |||
|
99 | ||||
|
100 | Kallithea started out as an effort to make sure the existing GPLv3 codebase would stay | |||
|
101 | available under a legal license. Kallithea thus has to stay GPLv3 compatible ... | |||
|
102 | but we are also happy it is GPLv3 and happy to keep it that way. | |||
|
103 | A different license (such as AGPL) could perhaps help attract a different community | |||
|
104 | with a different mix of Free Software people and companies but we are happy with the current focus. | |||
117 |
|
105 | |||
118 |
|
106 | |||
119 | Getting help |
|
107 | Community | |
120 |
--------- |
|
108 | --------- | |
|
109 | ||||
|
110 | ``Kallithea`` is maintained by its users who contribute the fixes they would like to see. | |||
121 |
|
111 | |||
122 | Listed bellow are various support resources that should help. |
|
112 | Get in touch with the rest of the community: | |
123 |
|
113 | |||
124 | .. note:: |
|
114 | - Join the mailing list users and developers - see | |
|
115 | http://lists.sfconservancy.org/mailman/listinfo/kallithea-general. | |||
125 |
|
116 | |||
126 | Please try to read the documentation before posting any issues, especially |
|
117 | - Use IRC and join #kallithea on FreeNode (irc.freenode.net) | |
127 | the **troubleshooting section** |
|
118 | or use http://webchat.freenode.net/?channels=kallithea. | |
128 |
|
119 | |||
129 | - Open an issue at `issue tracker <https://bitbucket.org/conservancy/kallithea/issues>`_ |
|
120 | - Follow ``Kallithea`` on Twitter, **@KallitheaSCM**. | |
130 |
|
121 | |||
131 | - Join #kallithea on FreeNode (irc.freenode.net) |
|
122 | - Issues can be reported at `issue tracker <https://bitbucket.org/conservancy/kallithea/issues>`_. | |
132 | or use http://webchat.freenode.net/?channels=kallithea for web access to irc. |
|
|||
133 |
|
123 | |||
134 | You can follow this project on Twitter, **@KallitheaSCM**. |
|
124 | .. note:: | |
|
125 | ||||
|
126 | Please try to read the documentation before posting any issues, especially | |||
|
127 | the **troubleshooting section** | |||
135 |
|
128 | |||
136 |
|
129 | |||
137 | Online documentation |
|
130 | Online documentation | |
138 | -------------------- |
|
131 | -------------------- | |
139 |
|
132 | |||
140 | Online documentation for the current version of Kallithea is available at |
|
133 | Online documentation for the current version of Kallithea is available at https://pythonhosted.org/Kallithea/. | |
141 | - http://packages.python.org/Kallithea/ |
|
134 | Documentation for the current development version can be found on http://kallithea.readthedocs.org/. | |
142 | - http://kallithea.readthedocs.org/ |
|
|||
143 |
|
135 | |||
144 |
You |
|
136 | You can also build the documentation locally: go to ``docs/`` and run:: | |
145 |
|
137 | |||
146 | make html |
|
138 | make html | |
147 |
|
139 | |||
148 | (You need to have Sphinx_ installed to build the documentation. If you don't |
|
140 | (You need to have Sphinx_ installed to build the documentation. If you don't | |
149 | have Sphinx_ installed you can install it via the command: |
|
141 | have Sphinx_ installed you can install it via the command: | |
150 |
`` |
|
142 | ``pip install sphinx``) | |
151 |
|
143 | |||
152 |
|
144 | |||
153 | Converting from RhodeCode |
|
145 | Converting from RhodeCode | |
@@ -160,7 +152,7 b' Currently, you have two options for work' | |||||
160 | Maintaining Interoperability |
|
152 | Maintaining Interoperability | |
161 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
153 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
162 |
|
154 | |||
163 |
Interoperability with RhodeCode 2.2. |
|
155 | Interoperability with RhodeCode 2.2.X installations is provided so you don't | |
164 | have to immediately commit to switching to Kallithea. This option will most |
|
156 | have to immediately commit to switching to Kallithea. This option will most | |
165 | likely go away once the two projects have diverged significantly. |
|
157 | likely go away once the two projects have diverged significantly. | |
166 |
|
158 | |||
@@ -173,7 +165,7 b' This location will depend on where you i' | |||||
173 | python setup.py install |
|
165 | python setup.py install | |
174 |
|
166 | |||
175 | then you will find this location at |
|
167 | then you will find this location at | |
176 |
``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea- |
|
168 | ``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-0.1-py2.7.egg/kallithea``. | |
177 |
|
169 | |||
178 | One-time Conversion |
|
170 | One-time Conversion | |
179 | ~~~~~~~~~~~~~~~~~~~ |
|
171 | ~~~~~~~~~~~~~~~~~~~ | |
@@ -188,10 +180,10 b' database, using the database string you ' | |||||
188 | pip install sqlalchemy-migrate |
|
180 | pip install sqlalchemy-migrate | |
189 | python kallithea/bin/rebranddb.py sqlite:///kallithea.db |
|
181 | python kallithea/bin/rebranddb.py sqlite:///kallithea.db | |
190 |
|
182 | |||
191 | .. WARNING:: |
|
183 | .. Note:: | |
192 |
|
184 | |||
193 | If you used the other method for interoperability, overwrite brand.py with |
|
185 | If you started out using the branding interoperability approach mentioned | |
194 |
a |
|
186 | above, watch out for stray brand.pyc after removing brand.py. | |
195 |
|
187 | |||
196 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv |
|
188 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv | |
197 | .. _Python: http://www.python.org/ |
|
189 | .. _Python: http://www.python.org/ | |
@@ -203,3 +195,4 b' database, using the database string you ' | |||||
203 | .. _Git: http://git-scm.com/ |
|
195 | .. _Git: http://git-scm.com/ | |
204 | .. _Celery: http://celeryproject.org/ |
|
196 | .. _Celery: http://celeryproject.org/ | |
205 | .. _vcs: http://pypi.python.org/pypi/vcs |
|
197 | .. _vcs: http://pypi.python.org/pypi/vcs | |
|
198 | .. _Software Freedom Conservancy: http://sfconservancy.org/ |
@@ -10,7 +10,7 b' methods. Everything is available by send' | |||||
10 | <your_server>/_admin/api . |
|
10 | <your_server>/_admin/api . | |
11 |
|
11 | |||
12 |
|
12 | |||
13 | API ACCESS FOR WEB VIEWS |
|
13 | API access for web views | |
14 | ++++++++++++++++++++++++ |
|
14 | ++++++++++++++++++++++++ | |
15 |
|
15 | |||
16 | API access can also be turned on for each web view in Kallithea that is |
|
16 | API access can also be turned on for each web view in Kallithea that is | |
@@ -36,7 +36,7 b' Exposing raw diffs is a good way to inte' | |||||
36 | 3rd party services like code review, or build farms that could download archives. |
|
36 | 3rd party services like code review, or build farms that could download archives. | |
37 |
|
37 | |||
38 |
|
38 | |||
39 | API ACCESS |
|
39 | API access | |
40 | ++++++++++ |
|
40 | ++++++++++ | |
41 |
|
41 | |||
42 | Clients must send JSON encoded JSON-RPC requests:: |
|
42 | Clients must send JSON encoded JSON-RPC requests:: | |
@@ -75,7 +75,7 b' the reponse will have a failure descript' | |||||
75 | *result* will be null. |
|
75 | *result* will be null. | |
76 |
|
76 | |||
77 |
|
77 | |||
78 | API CLIENT |
|
78 | API client | |
79 | ++++++++++ |
|
79 | ++++++++++ | |
80 |
|
80 | |||
81 | Kallithea comes with a `kallithea-api` command line tool providing a convenient |
|
81 | Kallithea comes with a `kallithea-api` command line tool providing a convenient | |
@@ -109,7 +109,7 b' This will create a `~/.config/kallithea`' | |||||
109 | so you don't have to specify them every time. |
|
109 | so you don't have to specify them every time. | |
110 |
|
110 | |||
111 |
|
111 | |||
112 | API METHODS |
|
112 | API methods | |
113 | +++++++++++ |
|
113 | +++++++++++ | |
114 |
|
114 | |||
115 |
|
115 |
@@ -4,40 +4,54 b'' | |||||
4 | Contributing to Kallithea |
|
4 | Contributing to Kallithea | |
5 | ========================= |
|
5 | ========================= | |
6 |
|
6 | |||
7 | If you would like to contribute to Kallithea, please contact us, any help is |
|
7 | Kallithea is developed and maintained by its users. Please join us and scratch | |
8 | greatly appreciated! |
|
8 | your own itch. | |
|
9 | ||||
|
10 | ||||
|
11 | Infrastructure | |||
|
12 | -------------- | |||
9 |
|
13 | |||
10 | Could I request that you make your source contributions by first forking the |
|
14 | The main repository is hosted at Our Own Kallithea (aka OOK) on | |
11 | Kallithea repository on bitbucket_ |
|
15 | https://kallithea-scm.org/repos/kallithea/ (which is our self-hosted instance | |
12 | https://bitbucket.org/conservancy/kallithea and then make your changes to |
|
16 | of Kallithea). | |
13 | your forked repository. Please post all fixes into **dev** bookmark since your |
|
|||
14 | change might be already fixed there and i try to merge all fixes from dev into |
|
|||
15 | stable, and not the other way. Finally, when you are finished with your changes, |
|
|||
16 | please send us a pull request. |
|
|||
17 |
|
17 | |||
18 | To run Kallithea in a development version you always need to install the latest |
|
18 | For now, we use Bitbucket_ for `Pull Requests`_ and `Issue Tracker`_ services. The | |
19 | required libs. Simply clone Kallithea and switch to beta branch:: |
|
19 | issue tracker is for tracking bugs, not for "support", discussion or ideas - | |
|
20 | please use the `mailing list`_ to reach the community. | |||
|
21 | ||||
|
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. | |||
|
24 | To register, you can use your Bitbucket or GitHub account. | |||
|
25 | ||||
20 |
|
26 | |||
21 | hg clone https://kallithea-scm.org/repos/kallithea |
|
27 | Getting started | |
|
28 | --------------- | |||
22 |
|
29 | |||
23 | after downloading/pulling Kallithea make sure you run:: |
|
30 | To get started with development:: | |
24 |
|
||||
25 | python setup.py develop |
|
|||
26 |
|
|
31 | ||
27 | command to install/verify all required packages, and prepare development |
|
32 | hg clone https://kallithea-scm.org/repos/kallithea | |
28 | enviroment. |
|
33 | cd kallithea | |
|
34 | virtualenv ../kallithea-venv | |||
|
35 | source ../kallithea-venv/bin/activate | |||
|
36 | python setup.py develop | |||
|
37 | paster make-config Kallithea my.ini | |||
|
38 | paster setup-db my.ini --user=user --email=user@example.com --password=password --repos=/tmp | |||
|
39 | paster serve my.ini --reload & | |||
|
40 | firefox http://127.0.0.1:5000/ | |||
29 |
|
|
41 | ||
30 | There are two files in the directory production.ini and developement.ini copy |
|
42 | You can also start out by forking https://bitbucket.org/conservancy/kallithea | |
31 | the `development.ini` file as rc.ini (which is excluded from version controll) |
|
43 | on Bitbucket_ and create a local clone of your own fork. | |
32 | and put all your changes like db connection or server port in there. |
|
44 | ||
33 |
|
45 | |||
34 | After finishing your changes make sure all tests passes ok. You can run |
|
46 | Running tests | |
|
47 | ------------- | |||
|
48 | ||||
|
49 | After finishing your changes make sure all tests pass cleanly. You can run | |||
35 | the testsuite running ``nosetest`` from the project root, or if you use tox |
|
50 | the testsuite running ``nosetest`` from the project root, or if you use tox | |
36 | run tox for python2.6-2.7 with multiple database test. When using `nosetests` |
|
51 | run tox for python2.6-2.7 with multiple database test. When using `nosetests` | |
37 | test.ini file is used and by default it uses sqlite for tests, edit this file |
|
52 | test.ini file is used and by default it uses sqlite for tests, edit this file | |
38 | to change your testing enviroment. |
|
53 | to change your testing enviroment. | |
39 |
|
54 | |||
40 |
|
||||
41 | There's a special set of tests for push/pull operations, you can runn them using:: |
|
55 | There's a special set of tests for push/pull operations, you can runn them using:: | |
42 |
|
56 | |||
43 | paster serve test.ini --pid-file=test.pid --daemon |
|
57 | paster serve test.ini --pid-file=test.pid --daemon | |
@@ -45,7 +59,102 b" There's a special set of tests for push/" | |||||
45 | kill -9 $(cat test.pid) |
|
59 | kill -9 $(cat test.pid) | |
46 |
|
60 | |||
47 |
|
61 | |||
48 | | Thank you for any contributions! |
|
62 | Coding/contribution guidelines | |
|
63 | ------------------------------ | |||
|
64 | ||||
|
65 | Kallithea is GPLv3 and we assume all contributions are made by the | |||
|
66 | committer/contributor and under GPLv3 unless explicitly stated. We do care a | |||
|
67 | lot about preservation of copyright and license information for existing code | |||
|
68 | that is brought into the project. | |||
|
69 | ||||
|
70 | We don't have a formal coding/formatting standard. We are currently using a mix | |||
|
71 | of Mercurial (http://mercurial.selenic.com/wiki/CodingStyle), pep8, and | |||
|
72 | consistency with existing code. Run whitespacecleanup.sh to avoid stupid | |||
|
73 | whitespace noise in your patches. | |||
|
74 | ||||
|
75 | We support both Python 2.6.x and 2.7.x and nothing else. For now we don't care | |||
|
76 | about Python 3 compatibility. | |||
|
77 | ||||
|
78 | We try to support the most common modern web browsers. IE8 is still supported | |||
|
79 | to the extent it is feasible but we may stop supporting it very soon. | |||
|
80 | ||||
|
81 | We primarily support Linux and OS X on the server side but Windows should also work. | |||
|
82 | ||||
|
83 | Html templates should use 2 spaces for indentation ... but be pragmatic. We | |||
|
84 | should use templates cleverly and avoid duplication. We should use reasonable | |||
|
85 | semantic markup with classes and ids that can be used for styling and testing. | |||
|
86 | We should only use inline styles in places where it really is semantic (such as | |||
|
87 | display:none). | |||
|
88 | ||||
|
89 | JavaScript must use ';' between/after statements. Indentation 4 spaces. Inline | |||
|
90 | multiline functions should be indented two levels - one for the () and one for | |||
|
91 | {}. jQuery value arrays should have a leading $. | |||
|
92 | ||||
|
93 | Commit messages should have a leading short line summarizing the changes. For | |||
|
94 | bug fixes, put "(Issue #123)" at the end of this line. | |||
|
95 | ||||
|
96 | Contributions will be accepted in most formats - such as pull requests on | |||
|
97 | bitbucket, something hosted on your own Kallithea instance, or patches sent by | |||
|
98 | mail to the kallithea-general mailing list. | |||
|
99 | ||||
|
100 | Make sure to test your changes both manually and with the automatic tests | |||
|
101 | before posting. | |||
|
102 | ||||
|
103 | We care about quality and review and keeping a clean repository history. We | |||
|
104 | might give feedback that requests polishing contributions until they are | |||
|
105 | "perfect". We might also rebase and collapse and make minor adjustments to your | |||
|
106 | changes when we apply them. | |||
|
107 | ||||
|
108 | We try to make sure we have consensus on the direction the project is taking. | |||
|
109 | Everything non-sensitive should be discussed in public - preferably on the | |||
|
110 | mailing list. We aim at having all non-trivial changes reviewed by at least | |||
|
111 | one other core developer before pushing. Obvious non-controversial changes will | |||
|
112 | be handled more casually. | |||
|
113 | ||||
|
114 | For now we just have one official branch ("default") and will keep it so stable | |||
|
115 | that it can be (and is) used in production. Experimental changes should live | |||
|
116 | elsewhere (for example in a pull request) until they are ready. | |||
49 |
|
117 | |||
50 |
|
118 | |||
|
119 | "Roadmap" | |||
|
120 | --------- | |||
|
121 | ||||
|
122 | We do not have a road map but are waiting for your contributions. Here are some | |||
|
123 | ideas of places we might want to go - contributions in these areas are very | |||
|
124 | welcome: | |||
|
125 | ||||
|
126 | * Front end: | |||
|
127 | * kill YUI - more jQuery | |||
|
128 | * remove other dependencies - especially the embedded cut'n'pasted ones | |||
|
129 | * remove hardcoded styling in templates, make markup more semantic while moving all styling to css | |||
|
130 | * switch to bootstrap or some other modern UI library and cleanup of style.css and contextbar.css | |||
|
131 | * new fancy style that looks good | |||
|
132 | * testing | |||
|
133 | * better test coverage with the existing high level test framework | |||
|
134 | * test even more high level and javascript - selenium/robot and splinter seems like the top candidates | |||
|
135 | * more unit testing | |||
|
136 | * code cleanup | |||
|
137 | * move code from templates to controllers and from controllers to libs or models | |||
|
138 | * more best practice for web apps and the frameworks | |||
|
139 | * features | |||
|
140 | * relax dependency version requirements after thorough testing | |||
|
141 | * support for evolve | |||
|
142 | * updates of PRs ... while preserving history and comment context | |||
|
143 | * auto pr merge/rebase | |||
|
144 | * ssh | |||
|
145 | * bitbucket compatible wiki | |||
|
146 | * realtime preview / wysiwyg when editing comments and files | |||
|
147 | * make journal more useful - filtering on branches and files | |||
|
148 | * community mode with self registration and personal space | |||
|
149 | * improve documentation | |||
|
150 | ||||
|
151 | Thank you for your contribution! | |||
|
152 | -------------------------------- | |||
|
153 | ||||
|
154 | ||||
|
155 | .. _Weblate: http://weblate.org/ | |||
|
156 | .. _Issue Tracker: https://bitbucket.org/conservancy/kallithea/issues?status=new&status=open | |||
|
157 | .. _Pull Requests: https://bitbucket.org/conservancy/kallithea/pull-requests | |||
51 | .. _bitbucket: http://bitbucket.org/ |
|
158 | .. _bitbucket: http://bitbucket.org/ | |
|
159 | .. _mailing list: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general | |||
|
160 | .. _Hosted Weblate: https://hosted.weblate.org/projects/kallithea/kallithea/ |
@@ -1,17 +1,21 b'' | |||||
1 | .. _index: |
|
1 | .. _index: | |
2 |
|
2 | |||
3 | .. include:: ./../README.rst |
|
3 | Administrators Guide | |
|
4 | -------------------- | |||
|
5 | ||||
|
6 | **Readme** | |||
4 |
|
7 | |||
5 | Users Guide |
|
8 | .. toctree:: | |
6 | ----------- |
|
9 | :maxdepth: 1 | |
7 |
|
10 | |||
8 | **Installation:** |
|
11 | readme | |
|
12 | ||||
|
13 | **Installation** | |||
9 |
|
14 | |||
10 | .. toctree:: |
|
15 | .. toctree:: | |
11 | :maxdepth: 1 |
|
16 | :maxdepth: 1 | |
12 |
|
17 | |||
13 | installation |
|
18 | installation | |
14 | upgrade |
|
|||
15 | installation_win |
|
19 | installation_win | |
16 | installation_win_old |
|
20 | installation_win_old | |
17 | installation_iis |
|
21 | installation_iis |
@@ -4,69 +4,42 b'' | |||||
4 | Installation on Unix/Linux |
|
4 | Installation on Unix/Linux | |
5 | ========================== |
|
5 | ========================== | |
6 |
|
6 | |||
7 |
``Kallithea`` is written entirely in Python. |
|
7 | ``Kallithea`` is written entirely in Python. Kallithea requires Python version | |
8 | sure, your not missing any system libraries and using right version of |
|
8 | 2.6 or higher. | |
9 | libraries required by Kallithea. There's also restriction in terms of mercurial |
|
9 | ||
10 | clients. Minimal version of hg client known working fine with Kallithea is |
|
10 | .. Note:: Alternative very detailed installation instructions for Ubuntu Server | |
11 | **1.6**. If you're using older client, please upgrade. |
|
11 | with celery, indexer and daemon scripts: https://gist.github.com/4546398 | |
12 |
|
12 | |||
13 |
|
13 | |||
14 |
Installing Kallithea from Py |
|
14 | Installing Kallithea from Python Package Index (PyPI) | |
15 | ------------------------------------------------- |
|
15 | ----------------------------------------------------- | |
16 |
|
||||
17 | Kallithea requires python version 2.6 or higher. |
|
|||
18 |
|
16 | |||
19 | The easiest way to install ``kallithea`` is to run:: |
|
17 | ``Kallithea`` can be installed from PyPI with:: | |
20 |
|
||||
21 | easy_install kallithea |
|
|||
22 |
|
||||
23 | Or:: |
|
|||
24 |
|
18 | |||
25 | pip install kallithea |
|
19 | pip install kallithea | |
26 |
|
20 | |||
27 | If you prefer to install Kallithea manually simply grab latest release from |
|
|||
28 | http://pypi.python.org/pypi/Kallithea, decompress the archive and run:: |
|
|||
29 |
|
21 | |||
30 | python setup.py install |
|
22 | Installation in virtualenv | |
31 |
|
23 | -------------------------- | ||
32 | Step by step installation example for Windows |
|
|||
33 | --------------------------------------------- |
|
|||
34 |
|
||||
35 | :ref:`installation_win` |
|
|||
36 |
|
||||
37 |
|
24 | |||
38 | Step by step installation example for Linux |
|
25 | It is highly recommended to use a separate virtualenv_ for installing Kallithea. | |
39 | ------------------------------------------- |
|
26 | This way, all libraries required by Kallithea will be installed separately from your | |
40 |
|
27 | main Python installation and things will be less problematic when upgrading the | ||
|
28 | system or Kallithea. | |||
|
29 | An additional benefit of virtualenv_ is that it doesn't require root privileges. | |||
41 |
|
30 | |||
42 | For installing Kallithea i highly recommend using separate virtualenv_. This |
|
31 | - Assuming you have installed virtualenv_, create a new virtual environment | |
43 | way many required by Kallithea libraries will remain sandboxed from your main |
|
|||
44 | python and making things less problematic when doing system python updates. |
|
|||
45 |
|
||||
46 | Alternative very detailed installation instructions for Ubuntu Server with |
|
|||
47 | celery, indexer and daemon scripts: https://gist.github.com/4546398 |
|
|||
48 |
|
||||
49 |
|
||||
50 | - Assuming you have installed virtualenv_ create a new virtual environment |
|
|||
51 | using virtualenv command:: |
|
32 | using virtualenv command:: | |
52 |
|
33 | |||
53 |
virtualenv |
|
34 | virtualenv /srv/kallithea/venv | |
54 |
|
35 | |||
|
36 | .. note:: Older versions of virtualenv required ``--no-site-packages`` to work | |||
|
37 | correctly. It should no longer be necessary. | |||
55 |
|
38 | |||
56 | .. note:: Using ``--no-site-packages`` when generating your |
|
39 | - this will install new virtualenv_ into `/srv/kallithea/venv`. | |
57 | virtualenv is **very important**. This flag provides the necessary |
|
40 | - Activate the virtualenv_ in your current shell session by running:: | |
58 | isolation for running the set of packages required by |
|
|||
59 | Kallithea. If you do not specify ``--no-site-packages``, |
|
|||
60 | it's possible that Kallithea will not install properly into |
|
|||
61 | the virtualenv, or, even if it does, may not run properly, |
|
|||
62 | depending on the packages you've already got installed into your |
|
|||
63 | Python's "main" site-packages dir. |
|
|||
64 |
|
41 | |||
65 |
|
42 | source /srv/kallithea/venv/bin/activate | ||
66 | - this will install new virtualenv_ into `/opt/kallithea-venv`. |
|
|||
67 | - Activate the virtualenv_ by running:: |
|
|||
68 |
|
||||
69 | source /opt/kallithea-venv/bin/activate |
|
|||
70 |
|
43 | |||
71 | .. note:: If you're using UNIX, *do not* use ``sudo`` to run the |
|
44 | .. note:: If you're using UNIX, *do not* use ``sudo`` to run the | |
72 | ``virtualenv`` script. It's perfectly acceptable (and desirable) |
|
45 | ``virtualenv`` script. It's perfectly acceptable (and desirable) | |
@@ -75,19 +48,20 b' celery, indexer and daemon scripts: http' | |||||
75 | - Make a folder for Kallithea data files, and configuration somewhere on the |
|
48 | - Make a folder for Kallithea data files, and configuration somewhere on the | |
76 | filesystem. For example:: |
|
49 | filesystem. For example:: | |
77 |
|
50 | |||
78 |
mkdir / |
|
51 | mkdir /srv/kallithea | |
79 |
|
||||
80 |
|
52 | |||
81 | - Go into the created directory run this command to install kallithea:: |
|
53 | - Go into the created directory run this command to install kallithea:: | |
82 |
|
54 | |||
83 | easy_install kallithea |
|
|||
84 |
|
||||
85 | or:: |
|
|||
86 |
|
||||
87 | pip install kallithea |
|
55 | pip install kallithea | |
88 |
|
56 | |||
|
57 | Alternatively, download a .tar.gz from http://pypi.python.org/pypi/Kallithea, | |||
|
58 | extract it and run:: | |||
|
59 | ||||
|
60 | python setup.py install | |||
|
61 | ||||
89 | - This will install Kallithea together with pylons and all other required |
|
62 | - This will install Kallithea together with pylons and all other required | |
90 | python libraries into activated virtualenv |
|
63 | python libraries into the activated virtualenv. | |
|
64 | ||||
91 |
|
65 | |||
92 | Requirements for Celery (optional) |
|
66 | Requirements for Celery (optional) | |
93 | ---------------------------------- |
|
67 | ---------------------------------- | |
@@ -121,9 +95,103 b' http://ask.github.com/celery/getting-sta' | |||||
121 | This is a very nice tutorial on how to start using celery_ with rabbitmq_ |
|
95 | This is a very nice tutorial on how to start using celery_ with rabbitmq_ | |
122 |
|
96 | |||
123 |
|
97 | |||
124 | You can now proceed to :ref:`setup` |
|
98 | Next | |
125 | ----------------------------------- |
|
99 | ---- | |
|
100 | ||||
|
101 | You can now proceed to :ref:`setup`. | |||
|
102 | ||||
|
103 | ||||
|
104 | Upgrading Kallithea from Python Package Index (PyPI) | |||
|
105 | ----------------------------------------------------- | |||
|
106 | ||||
|
107 | .. note:: | |||
|
108 | Firstly, it is recommended that you **always** perform a database and | |||
|
109 | configuration backup before doing an upgrade. | |||
|
110 | ||||
|
111 | (These directions will use '{version}' to note that this is the version of | |||
|
112 | Kallithea that these files were used with. If backing up your Kallithea | |||
|
113 | instance from version 0.1 to 0.2, the ``my.ini`` file could be | |||
|
114 | backed up to ``my.ini.0-1``.) | |||
|
115 | ||||
|
116 | ||||
|
117 | If using a sqlite database, stop the Kallithea process/daemon/service, and | |||
|
118 | then make a copy of the database file:: | |||
|
119 | ||||
|
120 | service kallithea stop | |||
|
121 | cp kallithea.db kallithea.db.{version} | |||
|
122 | ||||
|
123 | ||||
|
124 | Back up your configuration file:: | |||
|
125 | ||||
|
126 | cp my.ini my.ini.{version} | |||
|
127 | ||||
|
128 | ||||
|
129 | Ensure that you are using the Python Virtual Environment that you'd originally | |||
|
130 | installed Kallithea in:: | |||
|
131 | ||||
|
132 | pip freeze | |||
|
133 | ||||
|
134 | will list all packages installed in the current environment. If Kallithea | |||
|
135 | isn't listed, change virtual environments to your venv location:: | |||
|
136 | ||||
|
137 | source /srv/kallithea/venv/bin/activate | |||
|
138 | ||||
|
139 | ||||
|
140 | Once you have verified the environment you can upgrade ``Kallithea`` with:: | |||
|
141 | ||||
|
142 | pip install --upgrade kallithea | |||
|
143 | ||||
|
144 | ||||
|
145 | Then run the following command from the installation directory:: | |||
126 |
|
|
146 | ||
|
147 | paster make-config Kallithea my.ini | |||
|
148 | ||||
|
149 | This will display any changes made by the new version of Kallithea to your | |||
|
150 | current configuration. It will try to perform an automerge. It's recommended | |||
|
151 | that you re-check the content after the automerge. | |||
|
152 | ||||
|
153 | .. note:: | |||
|
154 | Please always make sure your .ini files are up to date. Often errors are | |||
|
155 | caused by missing params added in new versions. | |||
|
156 | ||||
|
157 | ||||
|
158 | It is also recommended that you rebuild the whoosh index after upgrading since | |||
|
159 | the new whoosh version could introduce some incompatible index changes. Please | |||
|
160 | read the changelog to see if there were any changes to whoosh. | |||
|
161 | ||||
|
162 | ||||
|
163 | The final step is to upgrade the database. To do this simply run:: | |||
|
164 | ||||
|
165 | paster upgrade-db my.ini | |||
|
166 | ||||
|
167 | This will upgrade the schema and update some of the defaults in the database, | |||
|
168 | and will always recheck the settings of the application, if there are no new | |||
|
169 | options that need to be set. | |||
|
170 | ||||
|
171 | ||||
|
172 | .. note:: | |||
|
173 | DB schema upgrade library has some limitations and can sometimes fail if you try to | |||
|
174 | upgrade from older major releases. In such case simply run upgrades sequentially, eg. | |||
|
175 | upgrading from 0.1.X to 0.3.X should be done like that: 0.1.X. > 0.2.X > 0.3.X | |||
|
176 | You can always specify what version of Kallithea you want to install for example in pip | |||
|
177 | `pip install Kallithea==0.2` | |||
|
178 | ||||
|
179 | You may find it helpful to clear out your log file so that new errors are | |||
|
180 | readily apparent:: | |||
|
181 | ||||
|
182 | echo > kallithea.log | |||
|
183 | ||||
|
184 | Once that is complete, you may now start your upgraded Kallithea Instance:: | |||
|
185 | ||||
|
186 | service kallithea start | |||
|
187 | ||||
|
188 | Or:: | |||
|
189 | ||||
|
190 | paster serve /srv/kallithea/my.ini | |||
|
191 | ||||
|
192 | .. note:: | |||
|
193 | If you're using Celery, make sure you restart all instances of it after | |||
|
194 | upgrade. | |||
127 |
|
195 | |||
128 |
|
196 | |||
129 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv |
|
197 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv |
@@ -71,6 +71,7 b' If it was not installed or if you are us' | |||||
71 | - Go to https://bootstrap.pypa.io |
|
71 | - Go to https://bootstrap.pypa.io | |
72 | - Right-click on get-pip.py and choose Saves as... |
|
72 | - Right-click on get-pip.py and choose Saves as... | |
73 | - Run "python get-pip.py" in the folder where you downloaded get-pip.py (may require admin access). |
|
73 | - Run "python get-pip.py" in the folder where you downloaded get-pip.py (may require admin access). | |
|
74 | ||||
74 | (See http://stackoverflow.com/questions/4750806/how-to-install-pip-on-windows for explanations or alternatives) |
|
75 | (See http://stackoverflow.com/questions/4750806/how-to-install-pip-on-windows for explanations or alternatives) | |
75 |
|
76 | |||
76 | Note that pip.exe will be placed inside your Python installation's Scripts folder, which is likely not on your path. |
|
77 | Note that pip.exe will be placed inside your Python installation's Scripts folder, which is likely not on your path. |
@@ -11,22 +11,22 b' Setting up Kallithea' | |||||
11 | First, you will need to create a Kallithea configuration file. Run the |
|
11 | First, you will need to create a Kallithea configuration file. Run the | |
12 | following command to do this:: |
|
12 | following command to do this:: | |
13 |
|
13 | |||
14 |
paster make-config Kallithea |
|
14 | paster make-config Kallithea my.ini | |
15 |
|
15 | |||
16 |
- This will create the file ` |
|
16 | - This will create the file `my.ini` in the current directory. This | |
17 | configuration file contains the various settings for Kallithea, e.g proxy |
|
17 | configuration file contains the various settings for Kallithea, e.g proxy | |
18 | port, email settings, usage of static files, cache, celery settings and |
|
18 | port, email settings, usage of static files, cache, celery settings and | |
19 | logging. |
|
19 | logging. | |
20 |
|
20 | |||
21 |
|
21 | |||
22 |
Next, you need to create the databases used by Kallithea. I recommend t |
|
22 | Next, you need to create the databases used by Kallithea. It is recommended to | |
23 | use postgresql or sqlite (default). If you choose a database other than the |
|
23 | use postgresql or sqlite (default). If you choose a database other than the | |
24 |
default ensure you properly adjust the db url in your |
|
24 | default ensure you properly adjust the db url in your my.ini | |
25 | configuration file to use this other database. Kallithea currently supports |
|
25 | configuration file to use this other database. Kallithea currently supports | |
26 | postgresql, sqlite and mysql databases. Create the database by running |
|
26 | postgresql, sqlite and mysql databases. Create the database by running | |
27 | the following command:: |
|
27 | the following command:: | |
28 |
|
28 | |||
29 |
paster setup-db |
|
29 | paster setup-db my.ini | |
30 |
|
30 | |||
31 | This will prompt you for a "root" path. This "root" path is the location where |
|
31 | This will prompt you for a "root" path. This "root" path is the location where | |
32 | Kallithea will store all of its repositories on the current machine. After |
|
32 | Kallithea will store all of its repositories on the current machine. After | |
@@ -36,7 +36,7 b' up for you.' | |||||
36 |
|
36 | |||
37 | setup process can be fully automated, example for lazy:: |
|
37 | setup process can be fully automated, example for lazy:: | |
38 |
|
38 | |||
39 |
paster setup-db |
|
39 | paster setup-db my.ini --user=nn --password=secret --email=nn@your.kallithea.server --repos=/srv/repos | |
40 |
|
40 | |||
41 |
|
41 | |||
42 | - The ``setup-db`` command will create all of the needed tables and an |
|
42 | - The ``setup-db`` command will create all of the needed tables and an | |
@@ -52,22 +52,22 b' setup process can be fully automated, ex' | |||||
52 |
|
52 | |||
53 | You are now ready to use Kallithea, to run it simply execute:: |
|
53 | You are now ready to use Kallithea, to run it simply execute:: | |
54 |
|
54 | |||
55 |
paster serve |
|
55 | paster serve my.ini | |
56 |
|
56 | |||
57 | - This command runs the Kallithea server. The web app should be available at the |
|
57 | - This command runs the Kallithea server. The web app should be available at the | |
58 |
127.0.0.1:5000. This ip and port is configurable via the |
|
58 | 127.0.0.1:5000. This ip and port is configurable via the my.ini | |
59 | file created in previous step |
|
59 | file created in previous step | |
60 | - Use the admin account you created above when running ``setup-db`` |
|
60 | - Use the admin account you created above when running ``setup-db`` | |
61 | to login to the web app. |
|
61 | to login to the web app. | |
62 | - The default permissions on each repository is read, and the owner is admin. |
|
62 | - The default permissions on each repository is read, and the owner is admin. | |
63 | Remember to update these if needed. |
|
63 | Remember to update these if needed. | |
64 |
- In the admin panel you can toggle |
|
64 | - In the admin panel you can toggle LDAP, anonymous, permissions settings. As | |
65 | well as edit more advanced options on users and repositories |
|
65 | well as edit more advanced options on users and repositories | |
66 |
|
66 | |||
67 | Optionally users can create `rcextensions` package that extends Kallithea |
|
67 | Optionally users can create `rcextensions` package that extends Kallithea | |
68 | functionality. To do this simply execute:: |
|
68 | functionality. To do this simply execute:: | |
69 |
|
69 | |||
70 |
paster make-rcext |
|
70 | paster make-rcext my.ini | |
71 |
|
71 | |||
72 | This will create `rcextensions` package in the same place that your `ini` file |
|
72 | This will create `rcextensions` package in the same place that your `ini` file | |
73 | lives. With `rcextensions` it's possible to add additional mapping for whoosh, |
|
73 | lives. With `rcextensions` it's possible to add additional mapping for whoosh, | |
@@ -96,10 +96,10 b' login accounts have the correct permissi' | |||||
96 | using the Kallithea web interface.) |
|
96 | using the Kallithea web interface.) | |
97 |
|
97 | |||
98 | If your main directory (the same as set in Kallithea settings) is for example |
|
98 | If your main directory (the same as set in Kallithea settings) is for example | |
99 |
set to **/ |
|
99 | set to **/srv/repos** and the repository you are using is named `kallithea`, then | |
100 | to clone via ssh you should run:: |
|
100 | to clone via ssh you should run:: | |
101 |
|
101 | |||
102 |
hg clone ssh://user@server.com/ |
|
102 | hg clone ssh://user@server.com//srv/repos/kallithea | |
103 |
|
103 | |||
104 | Using other external tools such as mercurial-server_ or using ssh key based |
|
104 | Using other external tools such as mercurial-server_ or using ssh key based | |
105 | authentication is fully supported. |
|
105 | authentication is fully supported. | |
@@ -112,12 +112,12 b' permissions against that.' | |||||
112 | Setting up Whoosh full text search |
|
112 | Setting up Whoosh full text search | |
113 | ---------------------------------- |
|
113 | ---------------------------------- | |
114 |
|
114 | |||
115 |
|
|
115 | The whoosh index can be build by using the paster | |
116 | command ``make-index``. To use ``make-index`` you must specify the configuration |
|
116 | command ``make-index``. To use ``make-index`` you must specify the configuration | |
117 | file that stores the location of the index. You may specify the location of the |
|
117 | file that stores the location of the index. You may specify the location of the | |
118 | repositories (`--repo-location`). If not specified, this value is retrieved |
|
118 | repositories (`--repo-location`). If not specified, this value is retrieved | |
119 | from the Kallithea database. This was required prior to 1.2. Starting from |
|
119 | from the Kallithea database. | |
120 |
|
|
120 | It is also possible to specify a comma separated list of | |
121 | repositories (`--index-only`) to build index only on chooses repositories |
|
121 | repositories (`--index-only`) to build index only on chooses repositories | |
122 | skipping any other found in repos location |
|
122 | skipping any other found in repos location | |
123 |
|
123 | |||
@@ -126,23 +126,23 b' the `-f` option, indexing will run alway' | |||||
126 |
|
126 | |||
127 | For an incremental index build use:: |
|
127 | For an incremental index build use:: | |
128 |
|
128 | |||
129 |
paster make-index |
|
129 | paster make-index my.ini | |
130 |
|
130 | |||
131 | For a full index rebuild use:: |
|
131 | For a full index rebuild use:: | |
132 |
|
132 | |||
133 |
paster make-index |
|
133 | paster make-index my.ini -f | |
134 |
|
134 | |||
135 |
|
135 | |||
136 | building index just for chosen repositories is possible with such command:: |
|
136 | building index just for chosen repositories is possible with such command:: | |
137 |
|
137 | |||
138 |
paster make-index |
|
138 | paster make-index my.ini --index-only=vcs,kallithea | |
139 |
|
139 | |||
140 |
|
140 | |||
141 | In order to do periodical index builds and keep your index always up to date. |
|
141 | In order to do periodical index builds and keep your index always up to date. | |
142 | It's recommended to do a crontab entry for incremental indexing. |
|
142 | It's recommended to do a crontab entry for incremental indexing. | |
143 | An example entry might look like this:: |
|
143 | An example entry might look like this:: | |
144 |
|
144 | |||
145 |
/path/to/python/bin/paster make-index /path/to/kallithea/ |
|
145 | /path/to/python/bin/paster make-index /path/to/kallithea/my.ini | |
146 |
|
146 | |||
147 | When using incremental mode (the default) whoosh will check the last |
|
147 | When using incremental mode (the default) whoosh will check the last | |
148 | modification date of each file and add it to be reindexed if a newer file is |
|
148 | modification date of each file and add it to be reindexed if a newer file is | |
@@ -156,25 +156,19 b' or in the admin panel you can check `bui' | |||||
156 | Setting up LDAP support |
|
156 | Setting up LDAP support | |
157 | ----------------------- |
|
157 | ----------------------- | |
158 |
|
158 | |||
159 |
Kallithea s |
|
159 | Kallithea supports LDAP authentication. In order | |
160 | to use LDAP, you have to install the python-ldap_ package. This package is |
|
160 | to use LDAP, you have to install the python-ldap_ package. This package is | |
161 | available via pypi, so you can install it by running |
|
161 | available via pypi, so you can install it by running | |
162 |
|
162 | |||
163 | using easy_install:: |
|
|||
164 |
|
||||
165 | easy_install python-ldap |
|
|||
166 |
|
||||
167 | using pip:: |
|
|||
168 |
|
||||
169 | pip install python-ldap |
|
163 | pip install python-ldap | |
170 |
|
164 | |||
171 | .. note:: |
|
165 | .. note:: | |
172 | python-ldap requires some certain libs on your system, so before installing |
|
166 | python-ldap requires some certain libs on your system, so before installing | |
173 | it check that you have at least `openldap`, and `sasl` libraries. |
|
167 | it check that you have at least `openldap`, and `sasl` libraries. | |
174 |
|
168 | |||
175 |
LDAP settings are located in |
|
169 | LDAP settings are located in Admin->LDAP section. | |
176 |
|
170 | |||
177 |
Here's a typical |
|
171 | Here's a typical LDAP setup:: | |
178 |
|
172 | |||
179 | Connection settings |
|
173 | Connection settings | |
180 | Enable LDAP = checked |
|
174 | Enable LDAP = checked | |
@@ -241,7 +235,7 b' Connection Security : required' | |||||
241 | Plain non encrypted connection |
|
235 | Plain non encrypted connection | |
242 |
|
236 | |||
243 | LDAPS connection |
|
237 | LDAPS connection | |
244 |
Enable |
|
238 | Enable LDAPS connections. It will likely require `Port`_ to be set to | |
245 | a different value (standard LDAPS port is 636). When LDAPS is enabled |
|
239 | a different value (standard LDAPS port is 636). When LDAPS is enabled | |
246 | then `Certificate Checks`_ is required. |
|
240 | then `Certificate Checks`_ is required. | |
247 |
|
241 | |||
@@ -338,7 +332,7 b' Email Attribute : required' | |||||
338 | The LDAP record attribute which represents the user's email address. |
|
332 | The LDAP record attribute which represents the user's email address. | |
339 |
|
333 | |||
340 | If all data are entered correctly, and python-ldap_ is properly installed |
|
334 | If all data are entered correctly, and python-ldap_ is properly installed | |
341 |
users should be granted access to Kallithea with |
|
335 | users should be granted access to Kallithea with LDAP accounts. At this | |
342 | time user information is copied from LDAP into the Kallithea user database. |
|
336 | time user information is copied from LDAP into the Kallithea user database. | |
343 | This means that updates of an LDAP user object may not be reflected as a |
|
337 | This means that updates of an LDAP user object may not be reflected as a | |
344 | user update in Kallithea. |
|
338 | user update in Kallithea. | |
@@ -417,7 +411,7 b' reverse-proxy setup with basic auth::' | |||||
417 |
|
411 | |||
418 | AuthType Basic |
|
412 | AuthType Basic | |
419 | AuthName "Kallithea authentication" |
|
413 | AuthName "Kallithea authentication" | |
420 |
AuthUserFile / |
|
414 | AuthUserFile /srv/kallithea/.htpasswd | |
421 | require valid-user |
|
415 | require valid-user | |
422 |
|
416 | |||
423 | RequestHeader unset X-Forwarded-User |
|
417 | RequestHeader unset X-Forwarded-User | |
@@ -491,18 +485,18 b' can be found at *kallithea.lib.hooks*.' | |||||
491 | Changing default encoding |
|
485 | Changing default encoding | |
492 | ------------------------- |
|
486 | ------------------------- | |
493 |
|
487 | |||
494 |
By default Kallithea uses utf8 encoding |
|
488 | By default, Kallithea uses utf8 encoding. | |
495 | can be changed, simply edit default_encoding in .ini file to desired one. |
|
489 | It is configurable as `default_encoding` in the .ini file. | |
496 |
This affects many parts in Kallithea including |
|
490 | This affects many parts in Kallithea including user names, filenames, and | |
497 | encoding of commit messages. In addition Kallithea can detect if `chardet` |
|
491 | encoding of commit messages. In addition Kallithea can detect if `chardet` | |
498 | library is installed. If `chardet` is detected Kallithea will fallback to it |
|
492 | library is installed. If `chardet` is detected Kallithea will fallback to it | |
499 | when there are encode/decode errors. |
|
493 | when there are encode/decode errors. | |
500 |
|
494 | |||
501 |
|
495 | |||
502 | Setting Up Celery |
|
496 | Celery configuration | |
503 | ----------------- |
|
497 | -------------------- | |
504 |
|
498 | |||
505 |
|
|
499 | Celery is configured in the Kallithea ini configuration files. | |
506 | Simply set use_celery=true in the ini file then add / change the configuration |
|
500 | Simply set use_celery=true in the ini file then add / change the configuration | |
507 | variables inside the ini file. |
|
501 | variables inside the ini file. | |
508 |
|
502 | |||
@@ -537,7 +531,7 b' Nginx virtual host example' | |||||
537 |
|
531 | |||
538 | Sample config for nginx using proxy:: |
|
532 | Sample config for nginx using proxy:: | |
539 |
|
533 | |||
540 |
upstream |
|
534 | upstream kallithea { | |
541 | server 127.0.0.1:5000; |
|
535 | server 127.0.0.1:5000; | |
542 | # add more instances for load balancing |
|
536 | # add more instances for load balancing | |
543 | #server 127.0.0.1:5001; |
|
537 | #server 127.0.0.1:5001; | |
@@ -586,11 +580,11 b' Sample config for nginx using proxy::' | |||||
586 | #root /path/to/installation/kallithea/public; |
|
580 | #root /path/to/installation/kallithea/public; | |
587 | include /etc/nginx/proxy.conf; |
|
581 | include /etc/nginx/proxy.conf; | |
588 | location / { |
|
582 | location / { | |
589 |
try_files $uri @ |
|
583 | try_files $uri @kallithea; | |
590 | } |
|
584 | } | |
591 |
|
585 | |||
592 |
location @ |
|
586 | location @kallithea { | |
593 |
proxy_pass http:// |
|
587 | proxy_pass http://kallithea; | |
594 | } |
|
588 | } | |
595 |
|
589 | |||
596 | } |
|
590 | } | |
@@ -699,50 +693,66 b" that, you'll need to:" | |||||
699 |
|
693 | |||
700 | Here is a sample excerpt from an Apache Virtual Host configuration file:: |
|
694 | Here is a sample excerpt from an Apache Virtual Host configuration file:: | |
701 |
|
695 | |||
702 |
WSGIDaemonProcess |
|
696 | WSGIDaemonProcess kallithea \ | |
703 | threads=4 \ |
|
697 | processes=1 threads=4 \ | |
704 |
python-path=/ |
|
698 | python-path=/srv/kallithea/pyenv/lib/python2.7/site-packages | |
705 |
WSGIScriptAlias / / |
|
699 | WSGIScriptAlias / /srv/kallithea/dispatch.wsgi | |
706 | WSGIPassAuthorization On |
|
700 | WSGIPassAuthorization On | |
707 |
|
701 | |||
|
702 | Or if using a dispatcher wsgi script with proper virtualenv activation:: | |||
|
703 | ||||
|
704 | WSGIDaemonProcess kallithea processes=1 threads=4 | |||
|
705 | WSGIScriptAlias / /srv/kallithea/dispatch.wsgi | |||
|
706 | WSGIPassAuthorization On | |||
|
707 | ||||
|
708 | ||||
708 | .. note:: |
|
709 | .. note:: | |
709 |
|
|
710 | When running apache as root, please make sure it doesn't run Kallithea as | |
710 | into above configuration |
|
711 | root, for examply by adding: `user=www-data group=www-data` to the configuration. | |
711 |
|
712 | |||
712 | .. note:: |
|
713 | .. note:: | |
713 |
|
|
714 | If running Kallithea in multiprocess mode, | |
714 | make sure you don't specify `processes=num` directive in the config |
|
715 | make sure you set `instance_id = \*` in the configuration so each process | |
|
716 | gets it's own cache invalidationkey. | |||
715 |
|
717 | |||
716 |
|
718 | |||
717 | Example wsgi dispatch script:: |
|
719 | Example wsgi dispatch script:: | |
718 |
|
720 | |||
719 | import os |
|
721 | import os | |
720 | os.environ["HGENCODING"] = "UTF-8" |
|
722 | os.environ["HGENCODING"] = "UTF-8" | |
721 |
os.environ['PYTHON_EGG_CACHE'] = '/ |
|
723 | os.environ['PYTHON_EGG_CACHE'] = '/srv/kallithea/.egg-cache' | |
722 |
|
724 | |||
723 | # sometimes it's needed to set the curent dir |
|
725 | # sometimes it's needed to set the curent dir | |
724 |
os.chdir('/ |
|
726 | os.chdir('/srv/kallithea/') | |
725 |
|
727 | |||
726 | import site |
|
728 | import site | |
727 |
site.addsitedir("/ |
|
729 | site.addsitedir("/srv/kallithea/pyenv/lib/python2.7/site-packages") | |
728 |
|
730 | |||
729 | from paste.deploy import loadapp |
|
731 | from paste.deploy import loadapp | |
730 | from paste.script.util.logging_config import fileConfig |
|
732 | from paste.script.util.logging_config import fileConfig | |
731 |
|
733 | |||
732 |
fileConfig('/ |
|
734 | fileConfig('/srv/kallithea/my.ini') | |
733 |
application = loadapp('config:/ |
|
735 | application = loadapp('config:/srv/kallithea/my.ini') | |
|
736 | ||||
|
737 | Or using proper virtualenv activation:: | |||
|
738 | ||||
|
739 | activate_this = '/srv/kallithea/venv/bin/activate_this.py' | |||
|
740 | execfile(activate_this,dict(__file__=activate_this)) | |||
734 |
|
741 | |||
735 | Note: when using mod_wsgi you'll need to install the same version of |
|
742 | import os | |
736 | Mercurial that's inside Kallithea's virtualenv also on the system's Python |
|
743 | os.environ['HOME'] = '/srv/kallithea' | |
737 | environment. |
|
744 | ||
|
745 | ini = '/srv/kallithea/kallithea.ini' | |||
|
746 | from paste.script.util.logging_config import fileConfig | |||
|
747 | fileConfig(ini) | |||
|
748 | from paste.deploy import loadapp | |||
|
749 | application = loadapp('config:' + ini) | |||
738 |
|
|
750 | ||
739 |
|
|
751 | ||
740 | Other configuration files |
|
752 | Other configuration files | |
741 | ------------------------- |
|
753 | ------------------------- | |
742 |
|
754 | |||
743 | Some example init.d scripts can be found in init.d directory:: |
|
755 | Some example init.d scripts can be found in init.d directory: https://kallithea-scm.org/repos/kallithea/files/tip/init.d/ | |
744 |
|
||||
745 | https://kallithea-scm.org/repos/kallithea/files/tip/init.d/ |
|
|||
746 |
|
756 | |||
747 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv |
|
757 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv | |
748 | .. _python: http://www.python.org/ |
|
758 | .. _python: http://www.python.org/ | |
@@ -752,4 +762,3 b' Some example init.d scripts can be found' | |||||
752 | .. _python-ldap: http://www.python-ldap.org/ |
|
762 | .. _python-ldap: http://www.python-ldap.org/ | |
753 | .. _mercurial-server: http://www.lshift.net/mercurial-server.html |
|
763 | .. _mercurial-server: http://www.lshift.net/mercurial-server.html | |
754 | .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories |
|
764 | .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories | |
755 | .. _Issues tracker: https://bitbucket.org/conservancy/kallithea/issues |
|
@@ -1,6 +1,9 b'' | |||||
1 | {% extends "basic/layout.html" %} |
|
1 | {% extends "basic/layout.html" %} | |
2 |
|
2 | |||
3 | {% block sidebarlogo %} |
|
3 | {% block sidebarlogo %} | |
|
4 | <div style="text-align:center;margin:10px;padding:20px;background:white"> | |||
|
5 | <img src="{{pathto('_static/kallithea-logo.svg',1)}}"/> | |||
|
6 | </div> | |||
4 | <h3>Support Kallithea development</h3> |
|
7 | <h3>Support Kallithea development</h3> | |
5 | <div style="text-align:center"> |
|
8 | <div style="text-align:center"> | |
6 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"> |
|
9 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"> |
@@ -9,7 +9,7 b' possibly debug them.' | |||||
9 |
|
9 | |||
10 | ** First make sure you're using the latest version available.** |
|
10 | ** First make sure you're using the latest version available.** | |
11 |
|
11 | |||
12 |
|
|
12 | Enable detailed debug | |
13 | --------------------- |
|
13 | --------------------- | |
14 |
|
14 | |||
15 | Kallithea uses standard python logging modules to log it's output. |
|
15 | Kallithea uses standard python logging modules to log it's output. | |
@@ -19,7 +19,7 b' This change will allow to see much more ' | |||||
19 | console. This generally helps a lot to track issues. |
|
19 | console. This generally helps a lot to track issues. | |
20 |
|
20 | |||
21 |
|
21 | |||
22 |
|
|
22 | Enable interactive debug mode | |
23 | ----------------------------- |
|
23 | ----------------------------- | |
24 |
|
24 | |||
25 | To enable interactive debug mode simply comment out `set debug = false` in |
|
25 | To enable interactive debug mode simply comment out `set debug = false` in |
@@ -16,7 +16,7 b' delete a repository You can easy restore' | |||||
16 | from the repository name, and internal repository storage (.hg/.git). There |
|
16 | from the repository name, and internal repository storage (.hg/.git). There | |
17 | is also a special command for cleaning such archived repos:: |
|
17 | is also a special command for cleaning such archived repos:: | |
18 |
|
18 | |||
19 |
paster cleanup-repos --older-than=30d |
|
19 | paster cleanup-repos --older-than=30d my.ini | |
20 |
|
20 | |||
21 | This command will scan for archived repositories that are older than 30d, |
|
21 | This command will scan for archived repositories that are older than 30d, | |
22 | display them and ask if you want to delete them (there's a --dont-ask flag also) |
|
22 | display them and ask if you want to delete them (there's a --dont-ask flag also) |
@@ -5,24 +5,18 b' GIT support' | |||||
5 | =========== |
|
5 | =========== | |
6 |
|
6 | |||
7 |
|
7 | |||
8 |
Git support i |
|
8 | Kallithea Git support is enabled by default. You just need a git | |
9 |
client installed on the |
|
9 | command line client installed on the server to make Git work fully. | |
10 |
|
10 | |||
11 | Although There is one limitation on git usage. |
|
11 | Web server with chunked encoding | |
12 |
|
12 | -------------------------------- | ||
13 | - large pushes requires a http server with chunked encoding support. |
|
|||
14 |
|
13 | |||
15 | if you plan to use git you need to run Kallithea with some |
|
14 | Large Git pushes do however require a http server with support for chunked encoding for POST. | |
16 | http server that supports chunked encoding which git http protocol uses, |
|
|||
17 | i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app |
|
|||
18 | replacement. Starting from version 1.4 waitress_ is the default wsgi server |
|
|||
19 | used in Kallithea. |
|
|||
20 |
|
15 | |||
21 | To use, simply change change the following in the .ini file:: |
|
16 | The Python web servers waitress_ and gunicorn_ (linux only) can be used. | |
|
17 | By default, Kallithea uses waitress_ for `paster serve` instead of the built-in `paste` WSGI server. | |||
22 |
|
18 | |||
23 | use = egg:Paste#http |
|
19 | The default paste server is controlled in the .ini file:: | |
24 |
|
||||
25 | to:: |
|
|||
26 |
|
20 | |||
27 | use = egg:waitress#main |
|
21 | use = egg:waitress#main | |
28 |
|
22 | |||
@@ -31,18 +25,18 b' or::' | |||||
31 | use = egg:gunicorn#main |
|
25 | use = egg:gunicorn#main | |
32 |
|
26 | |||
33 |
|
27 | |||
34 |
A |
|
28 | Also make sure to comment out the following options:: | |
35 |
|
29 | |||
36 | threadpool_workers = |
|
30 | threadpool_workers = | |
37 | threadpool_max_requests = |
|
31 | threadpool_max_requests = | |
38 | use_threadpool = |
|
32 | use_threadpool = | |
39 |
|
33 | |||
40 |
|
34 | |||
41 | You can simply run `paster serve` as usual. |
|
35 | Disabling Git | |
42 |
|
36 | ------------- | ||
43 |
|
37 | |||
44 | You can always disable git/hg support by editing a |
|
38 | You can always disable git/hg support by editing a | |
45 |
file **kallithea/__init__.py** and commenting out backend |
|
39 | file **kallithea/__init__.py** and commenting out the backend. | |
46 |
|
40 | |||
47 | .. code-block:: python |
|
41 | .. code-block:: python | |
48 |
|
42 |
@@ -5,6 +5,12 b' Kallithea repository locking system' | |||||
5 | =================================== |
|
5 | =================================== | |
6 |
|
6 | |||
7 |
|
7 | |||
|
8 | The scenario for repos with `locking function` enabled is that | |||
|
9 | every initial clone and every pull gives users (with write permission) | |||
|
10 | the exclusive right to do a push. | |||
|
11 | ||||
|
12 | Each repo can be manually unlocked by admin from the repo settings menu. | |||
|
13 | ||||
8 | | Repos with **locking function=disabled** is the default, that's how repos work |
|
14 | | Repos with **locking function=disabled** is the default, that's how repos work | |
9 | today. |
|
15 | today. | |
10 | | Repos with **locking function=enabled** behaves like follows: |
|
16 | | Repos with **locking function=enabled** behaves like follows: | |
@@ -20,22 +26,13 b' influence this state:' | |||||
20 | user has write/admin permissions on this repo |
|
26 | user has write/admin permissions on this repo | |
21 |
|
27 | |||
22 |
|
28 | |||
23 | Kallithea will remember the user id who locked the repo |
|
29 | Kallithea will remember the user id who locked the repo so | |
24 | only this specific user can unlock the repo (locked=false) by calling |
|
30 | only this specific user can unlock the repo (locked=false) by calling | |
25 |
|
31 | |||
26 | - `hg/git push <repo>` |
|
32 | - `hg/git push <repo>` | |
27 |
|
33 | |||
28 |
|
|
34 | Every other command on that repo from this user and | |
29 | every command from any other user will result in http return code 423 (locked) |
|
35 | every command from any other user will result in http return code 423 (locked). | |
30 |
|
||||
31 |
|
||||
32 | additionally the http error includes the <user> that locked the repo |
|
|||
33 | (e.g. “repository <repo> locked by user <user>”) |
|
|||
34 |
|
36 | |||
35 |
|
37 | Additionally, the http error includes the <user> that locked the repo | ||
36 | So the scenario of use for repos with `locking function` enabled is that |
|
38 | (e.g. “repository <repo> locked by user <user>”). | |
37 | every initial clone and every pull gives users (with write permission) |
|
|||
38 | the exclusive right to do a push. |
|
|||
39 |
|
||||
40 |
|
||||
41 | Each repo can be manually unlocked by admin from the repo settings menu. |
|
@@ -6,7 +6,7 b' Statistics' | |||||
6 |
|
6 | |||
7 | The Kallithea statistics system makes heavy demands of the server resources, so |
|
7 | The Kallithea statistics system makes heavy demands of the server resources, so | |
8 | in order to keep a balance between usability and performance, the statistics are |
|
8 | in order to keep a balance between usability and performance, the statistics are | |
9 |
cached inside db and are gathered incrementally |
|
9 | cached inside db and are gathered incrementally. This is how Kallithea does | |
10 | this: |
|
10 | this: | |
11 |
|
11 | |||
12 | With Celery disabled |
|
12 | With Celery disabled |
@@ -1,10 +1,10 b'' | |||||
1 | .. _subrepos: |
|
1 | .. _subrepos: | |
2 |
|
2 | |||
3 | ============================================= |
|
3 | ============================================= | |
4 |
|
|
4 | Working with Kallithea and Mercurial subrepos | |
5 | ============================================= |
|
5 | ============================================= | |
6 |
|
6 | |||
7 |
|
|
7 | Example usage of Subrepos with Kallithea:: | |
8 |
|
8 | |||
9 | ## init a simple repo |
|
9 | ## init a simple repo | |
10 | hg init repo1 |
|
10 | hg init repo1 | |
@@ -14,24 +14,23 b' example usage of Subrepos with Kallithea' | |||||
14 | hg ci --message "initial file 1" |
|
14 | hg ci --message "initial file 1" | |
15 |
|
15 | |||
16 | #clone subrepo we want to add |
|
16 | #clone subrepo we want to add | |
17 |
hg clone http:// |
|
17 | hg clone http://kallithea.local/subrepo | |
18 |
|
18 | |||
19 | ## use path like url to existing repo in Kallithea |
|
19 | ## use path like url to existing repo in Kallithea | |
20 |
echo "subrepo = http:// |
|
20 | echo "subrepo = http://kallithea.local/subrepo" > .hgsub | |
21 |
|
21 | |||
22 | hg add .hgsub |
|
22 | hg add .hgsub | |
23 | hg ci --message "added remote subrepo" |
|
23 | hg ci --message "added remote subrepo" | |
24 |
|
24 | |||
25 |
|
25 | |||
|
26 | In the file list of a clone of repo1 you will see a connected subrepo at | |||
|
27 | revision it was during cloning. | |||
|
28 | Clicking in subrepos link should send you to proper repository in Kallithea. | |||
26 |
|
29 | |||
27 | In file list of repo1 you will see a connected subrepo at revision it was |
|
30 | Cloning repo1 will also clone attached subrepository. | |
28 | during cloning. |
|
|||
29 | Clicking in subrepos link should send you to proper repository in Kallithea |
|
|||
30 |
|
||||
31 | cloning repo1 will also clone attached subrepository. |
|
|||
32 |
|
31 | |||
33 | Next we can edit the subrepo data, and push back to Kallithea. This will update |
|
32 | Next we can edit the subrepo data, and push back to Kallithea. This will update | |
34 | both of repositories. |
|
33 | both of repositories. | |
35 |
|
34 | |||
36 |
|
|
35 | See http://mercurial.aragost.com/kick-start/en/subrepositories/ for more | |
37 | information about subrepositories |
|
36 | information about subrepositories. |
@@ -39,11 +39,11 b' Troubleshooting' | |||||
39 |
|
39 | |||
40 | :Q: **Git fails on push/pull?** |
|
40 | :Q: **Git fails on push/pull?** | |
41 | :A: Make sure you're using an wsgi http server that can handle chunked encoding |
|
41 | :A: Make sure you're using an wsgi http server that can handle chunked encoding | |
42 | such as `waitress` or `gunicorn` |
|
42 | such as `waitress` or `gunicorn`. | |
43 |
|
43 | |||
44 | | |
|
44 | | | |
45 |
|
45 | |||
46 |
:Q: **How |
|
46 | :Q: **How can I use hooks in Kallithea?** | |
47 | :A: It's easy if they are python hooks just use advanced link in hooks section |
|
47 | :A: It's easy if they are python hooks just use advanced link in hooks section | |
48 | in Admin panel, that works only for Mercurial. If you want to use githooks, |
|
48 | in Admin panel, that works only for Mercurial. If you want to use githooks, | |
49 | just install proper one in repository eg. create file in |
|
49 | just install proper one in repository eg. create file in | |
@@ -52,19 +52,19 b' Troubleshooting' | |||||
52 |
|
52 | |||
53 | | |
|
53 | | | |
54 |
|
54 | |||
55 |
:Q: **Kallithea is slow for me, how can |
|
55 | :Q: **Kallithea is slow for me, how can I make it faster?** | |
56 | :A: See the :ref:`performance` section |
|
56 | :A: See the :ref:`performance` section. | |
57 |
|
57 | |||
58 | | |
|
58 | | | |
59 |
|
59 | |||
60 | :Q: **UnicodeDecodeError on Apache mod_wsgi** |
|
60 | :Q: **UnicodeDecodeError on Apache mod_wsgi** | |
61 | :A: Please read: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror |
|
61 | :A: Please read: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror. | |
62 |
|
62 | |||
63 | | |
|
63 | | | |
64 |
|
64 | |||
65 | :Q: **Requests hanging on Windows** |
|
65 | :Q: **Requests hanging on Windows** | |
66 | :A: Please try out with disabled Antivirus software, there are some known problems with Eset Anitivirus. Make sure |
|
66 | :A: Please try out with disabled Antivirus software, there are some known problems with Eset Anitivirus. Make sure | |
67 | you have installed latest windows patches (especially KB2789397) |
|
67 | you have installed latest windows patches (especially KB2789397). | |
68 |
|
68 | |||
69 |
|
69 | |||
70 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv |
|
70 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv | |
@@ -73,6 +73,3 b' Troubleshooting' | |||||
73 | .. _celery: http://celeryproject.org/ |
|
73 | .. _celery: http://celeryproject.org/ | |
74 | .. _rabbitmq: http://www.rabbitmq.com/ |
|
74 | .. _rabbitmq: http://www.rabbitmq.com/ | |
75 | .. _python-ldap: http://www.python-ldap.org/ |
|
75 | .. _python-ldap: http://www.python-ldap.org/ | |
76 | .. _mercurial-server: http://www.lshift.net/mercurial-server.html |
|
|||
77 | .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories |
|
|||
78 | .. _Issues tracker: https://bitbucket.org/conservancy/kallithea/issues |
|
@@ -23,7 +23,7 b' user=username ; (defaul' | |||||
23 | ;directory=/tmp ; (default is not to cd during start) |
|
23 | ;directory=/tmp ; (default is not to cd during start) | |
24 | ;nocleanup=true ; (don't clean up tempfiles at start;default false) |
|
24 | ;nocleanup=true ; (don't clean up tempfiles at start;default false) | |
25 | ;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP) |
|
25 | ;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP) | |
26 |
environment=HOME=/ |
|
26 | environment=HOME=/srv/kallithea ; (key value pairs to add to environment) | |
27 | ;strip_ansi=false ; (strip ansi escape codes in logs; def. false) |
|
27 | ;strip_ansi=false ; (strip ansi escape codes in logs; def. false) | |
28 |
|
28 | |||
29 | ; the below section must remain in the config file for RPC |
|
29 | ; the below section must remain in the config file for RPC | |
@@ -44,8 +44,8 b' serverurl=http://127.0.0.1:9001 ; use an' | |||||
44 | [program:kallithea] |
|
44 | [program:kallithea] | |
45 | numprocs = 1 |
|
45 | numprocs = 1 | |
46 | numprocs_start = 5000 # possible should match ports |
|
46 | numprocs_start = 5000 # possible should match ports | |
47 |
directory=/ |
|
47 | directory=/srv/kallithea | |
48 |
command = / |
|
48 | command = /srv/kallithea/venv/bin/paster serve my.ini | |
49 | process_name = %(program_name)s_%(process_num)04d |
|
49 | process_name = %(program_name)s_%(process_num)04d | |
50 | redirect_stderr=true |
|
50 | redirect_stderr=true | |
51 | stdout_logfile=/%(here)s/kallithea.log No newline at end of file |
|
51 | stdout_logfile=/%(here)s/kallithea.log |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now