##// END OF EJS Templates
docs: clarify Python 2 requirement in README
Mads Kiilerich -
r5401:11bc459d default
parent child Browse files
Show More
@@ -1,211 +1,212 b''
1 ================
1 ================
2 Kallithea README
2 Kallithea README
3 ================
3 ================
4
4
5 About
5 About
6 -----
6 -----
7
7
8 **Kallithea** is a fast and powerful management tool for Mercurial_ and Git_
8 **Kallithea** is a fast and powerful management tool for Mercurial_ and Git_
9 with a built-in push/pull server, full text search and code-review. It works on
9 with a built-in push/pull server, full text search and code-review. It works on
10 http/https and has a built in permission/authentication system with the ability
10 http/https and has a built in permission/authentication system with the ability
11 to authenticate via LDAP or ActiveDirectory. Kallithea also provides simple API
11 to authenticate via LDAP or ActiveDirectory. Kallithea also provides simple API
12 so it's easy to integrate with existing external systems.
12 so it's easy to integrate with existing external systems.
13
13
14 Kallithea is similar in some respects to GitHub_ or Bitbucket_, however
14 Kallithea is similar in some respects to GitHub_ or Bitbucket_, however
15 Kallithea can be run as standalone hosted application on your own server. It is
15 Kallithea can be run as standalone hosted application on your own server. It is
16 open-source donationware and focuses more on providing a customised,
16 open-source donationware and focuses more on providing a customised,
17 self-administered interface for Mercurial_ and Git_ repositories. Kallithea
17 self-administered interface for Mercurial_ and Git_ repositories. Kallithea
18 works on Unix-like systems and Windows, and is powered by the vcs_ library
18 works on Unix-like systems and Windows, and is powered by the vcs_ library
19 created by Łukasz Balcerzak and Marcin KuΕΊmiΕ„ski to uniformly handle multiple
19 created by Łukasz Balcerzak and Marcin KuΕΊmiΕ„ski to uniformly handle multiple
20 version control systems.
20 version control systems.
21
21
22 Kallithea was forked from RhodeCode in July 2014 and has been heavily modified.
22 Kallithea was forked from RhodeCode in July 2014 and has been heavily modified.
23
23
24 Installation
24 Installation
25 ------------
25 ------------
26 Official releases of Kallithea can be installed via::
26 Kallithea requires Python_ 2.x and it is recommended to install it in a
27 virtualenv_. Official releases of Kallithea can be installed with::
27
28
28 pip install kallithea
29 pip install kallithea
29
30
30 The development repository is kept very stable and used in production by the
31 The development repository is kept very stable and used in production by the
31 developers - you can do the same.
32 developers - you can do the same.
32
33
33 Please visit https://docs.kallithea-scm.org/en/latest/installation.html for
34 Please visit https://docs.kallithea-scm.org/en/latest/installation.html for
34 more details.
35 more details.
35
36
36
37
37 Source code
38 Source code
38 -----------
39 -----------
39
40
40 The latest sources can be obtained from
41 The latest sources can be obtained from
41 https://kallithea-scm.org/repos/kallithea.
42 https://kallithea-scm.org/repos/kallithea.
42
43
43 The issue tracker and a repository mirror can be found at Bitbucket_ on
44 The issue tracker and a repository mirror can be found at Bitbucket_ on
44 https://bitbucket.org/conservancy/kallithea.
45 https://bitbucket.org/conservancy/kallithea.
45
46
46
47
47
48
48 Kallithea Features
49 Kallithea Features
49 ------------------
50 ------------------
50
51
51 - Has its own middleware to handle Mercurial_ and Git_ protocol requests. Each
52 - Has its own middleware to handle Mercurial_ and Git_ protocol requests. Each
52 request is authenticated and logged together with IP address.
53 request is authenticated and logged together with IP address.
53 - Built for speed and performance. You can make multiple pulls/pushes
54 - Built for speed and performance. You can make multiple pulls/pushes
54 simultaneously. Proven to work with thousands of repositories and users.
55 simultaneously. Proven to work with thousands of repositories and users.
55 - Supports http/https, LDAP, AD, proxy-pass authentication.
56 - Supports http/https, LDAP, AD, proxy-pass authentication.
56 - Full permissions (private/read/write/admin) together with IP restrictions for
57 - Full permissions (private/read/write/admin) together with IP restrictions for
57 each repository, additional explicit forking, repositories group and
58 each repository, additional explicit forking, repositories group and
58 repository creation permissions.
59 repository creation permissions.
59 - User groups for easier permission management.
60 - User groups for easier permission management.
60 - Repository groups let you group repos and manage them easier. They come with
61 - Repository groups let you group repos and manage them easier. They come with
61 permission delegation features, so you can delegate groups management.
62 permission delegation features, so you can delegate groups management.
62 - Users can fork other users repos, and compare them at any time.
63 - Users can fork other users repos, and compare them at any time.
63 - Built-in versioned paste functionality (Gist) for sharing code snippets.
64 - Built-in versioned paste functionality (Gist) for sharing code snippets.
64 - Integrates easily with other systems, with custom created mappers you can
65 - Integrates easily with other systems, with custom created mappers you can
65 connect it to almost any issue tracker, and with a JSON-RPC API you can make
66 connect it to almost any issue tracker, and with a JSON-RPC API you can make
66 much more.
67 much more.
67 - Built-in commit API lets you add, edit and commit files right from Kallithea
68 - Built-in commit API lets you add, edit and commit files right from Kallithea
68 web interface using simple editor or upload binary files using simple form.
69 web interface using simple editor or upload binary files using simple form.
69 - Powerful pull request driven review system with inline commenting, changeset
70 - Powerful pull request driven review system with inline commenting, changeset
70 statuses, and notification system.
71 statuses, and notification system.
71 - Importing and syncing repositories from remote locations for Git_, Mercurial_
72 - Importing and syncing repositories from remote locations for Git_, Mercurial_
72 and Subversion.
73 and Subversion.
73 - Mako templates let you customize the look and feel of the application.
74 - Mako templates let you customize the look and feel of the application.
74 - Beautiful diffs, annotations and source code browsing all colored by
75 - Beautiful diffs, annotations and source code browsing all colored by
75 pygments. Raw diffs are made in Git-diff format for both VCS systems,
76 pygments. Raw diffs are made in Git-diff format for both VCS systems,
76 including Git_ binary-patches.
77 including Git_ binary-patches.
77 - Mercurial_ and Git_ DAG graphs and Flot-powered graphs with zooming and
78 - Mercurial_ and Git_ DAG graphs and Flot-powered graphs with zooming and
78 statistics to track activity for repositories.
79 statistics to track activity for repositories.
79 - Admin interface with user/permission management. Admin activity journal, logs
80 - Admin interface with user/permission management. Admin activity journal, logs
80 pulls, pushes, forks, registrations and other actions made by all users.
81 pulls, pushes, forks, registrations and other actions made by all users.
81 - Server side forks. It is possible to fork a project and modify it freely
82 - Server side forks. It is possible to fork a project and modify it freely
82 without breaking the main repository.
83 without breaking the main repository.
83 - reST and Markdown README support for repositories.
84 - reST and Markdown README support for repositories.
84 - Full text search powered by Whoosh on the source files, commit messages, and
85 - Full text search powered by Whoosh on the source files, commit messages, and
85 file names. Built-in indexing daemons, with optional incremental index build
86 file names. Built-in indexing daemons, with optional incremental index build
86 (no external search servers required all in one application).
87 (no external search servers required all in one application).
87 - Setup project descriptions/tags and info inside built in DB for easy,
88 - Setup project descriptions/tags and info inside built in DB for easy,
88 non-filesystem operations.
89 non-filesystem operations.
89 - Intelligent cache with invalidation after push or project change, provides
90 - Intelligent cache with invalidation after push or project change, provides
90 high performance and always up to date data.
91 high performance and always up to date data.
91 - RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz.
92 - RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz.
92 - Optional async tasks for speed and performance using Celery_.
93 - Optional async tasks for speed and performance using Celery_.
93 - Backup scripts can do backup of whole app and send it over scp to desired
94 - Backup scripts can do backup of whole app and send it over scp to desired
94 location.
95 location.
95 - Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs.
96 - Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs.
96
97
97
98
98 License
99 License
99 -------
100 -------
100
101
101 **Kallithea** is released under the GPLv3 license. Kallithea is a `Software
102 **Kallithea** is released under the GPLv3 license. Kallithea is a `Software
102 Freedom Conservancy`_ project and thus controlled by a non-profit organization.
103 Freedom Conservancy`_ project and thus controlled by a non-profit organization.
103 No commercial entity can take ownership of the project and change the
104 No commercial entity can take ownership of the project and change the
104 direction.
105 direction.
105
106
106 Kallithea started out as an effort to make sure the existing GPLv3 codebase
107 Kallithea started out as an effort to make sure the existing GPLv3 codebase
107 would stay available under a legal license. Kallithea thus has to stay GPLv3
108 would stay available under a legal license. Kallithea thus has to stay GPLv3
108 compatible ... but we are also happy it is GPLv3 and happy to keep it that way.
109 compatible ... but we are also happy it is GPLv3 and happy to keep it that way.
109 A different license (such as AGPL) could perhaps help attract a different
110 A different license (such as AGPL) could perhaps help attract a different
110 community with a different mix of Free Software people and companies but we are
111 community with a different mix of Free Software people and companies but we are
111 happy with the current focus.
112 happy with the current focus.
112
113
113
114
114 Community
115 Community
115 ---------
116 ---------
116
117
117 **Kallithea** is maintained by its users who contribute the fixes they would
118 **Kallithea** is maintained by its users who contribute the fixes they would
118 like to see.
119 like to see.
119
120
120 Get in touch with the rest of the community:
121 Get in touch with the rest of the community:
121
122
122 - Join the mailing list users and developers - see
123 - Join the mailing list users and developers - see
123 http://lists.sfconservancy.org/mailman/listinfo/kallithea-general.
124 http://lists.sfconservancy.org/mailman/listinfo/kallithea-general.
124
125
125 - Use IRC and join #kallithea on FreeNode (irc.freenode.net) or use
126 - Use IRC and join #kallithea on FreeNode (irc.freenode.net) or use
126 http://webchat.freenode.net/?channels=kallithea.
127 http://webchat.freenode.net/?channels=kallithea.
127
128
128 - Follow Kallithea on Twitter, **@KallitheaSCM**.
129 - Follow Kallithea on Twitter, **@KallitheaSCM**.
129
130
130 - Issues can be reported at `issue tracker
131 - Issues can be reported at `issue tracker
131 <https://bitbucket.org/conservancy/kallithea/issues>`_.
132 <https://bitbucket.org/conservancy/kallithea/issues>`_.
132
133
133 .. note::
134 .. note::
134
135
135 Please try to read the documentation before posting any issues,
136 Please try to read the documentation before posting any issues,
136 especially the **troubleshooting section**
137 especially the **troubleshooting section**
137
138
138
139
139 Online documentation
140 Online documentation
140 --------------------
141 --------------------
141
142
142 Online documentation for the current version of Kallithea is available at
143 Online documentation for the current version of Kallithea is available at
143 https://pythonhosted.org/Kallithea/. Documentation for the current development
144 https://pythonhosted.org/Kallithea/. Documentation for the current development
144 version can be found on https://docs.kallithea-scm.org/.
145 version can be found on https://docs.kallithea-scm.org/.
145
146
146 You can also build the documentation locally: go to ``docs/`` and run::
147 You can also build the documentation locally: go to ``docs/`` and run::
147
148
148 make html
149 make html
149
150
150 .. note:: You need to have Sphinx_ installed to build the
151 .. note:: You need to have Sphinx_ installed to build the
151 documentation. If you don't have Sphinx_ installed you can
152 documentation. If you don't have Sphinx_ installed you can
152 install it via the command: ``pip install sphinx`` .
153 install it via the command: ``pip install sphinx`` .
153
154
154
155
155 Converting from RhodeCode
156 Converting from RhodeCode
156 -------------------------
157 -------------------------
157
158
158 Currently, you have two options for working with an existing RhodeCode
159 Currently, you have two options for working with an existing RhodeCode
159 database:
160 database:
160
161
161 - keep the database unconverted (intended for testing and evaluation)
162 - keep the database unconverted (intended for testing and evaluation)
162 - convert the database in a one-time step
163 - convert the database in a one-time step
163
164
164 Maintaining Interoperability
165 Maintaining Interoperability
165 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
166 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
166
167
167 Interoperability with RhodeCode 2.2.X installations is provided so you don't
168 Interoperability with RhodeCode 2.2.X installations is provided so you don't
168 have to immediately commit to switching to Kallithea. This option will most
169 have to immediately commit to switching to Kallithea. This option will most
169 likely go away once the two projects have diverged significantly.
170 likely go away once the two projects have diverged significantly.
170
171
171 To run Kallithea on a RhodeCode database, run::
172 To run Kallithea on a RhodeCode database, run::
172
173
173 echo "BRAND = 'rhodecode'" > kallithea/brand.py
174 echo "BRAND = 'rhodecode'" > kallithea/brand.py
174
175
175 This location will depend on where you installed Kallithea. If you installed
176 This location will depend on where you installed Kallithea. If you installed
176 via::
177 via::
177
178
178 python setup.py install
179 python setup.py install
179
180
180 then you will find this location at
181 then you will find this location at
181 ``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-0.1-py2.7.egg/kallithea``.
182 ``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-0.1-py2.7.egg/kallithea``.
182
183
183 One-time Conversion
184 One-time Conversion
184 ~~~~~~~~~~~~~~~~~~~
185 ~~~~~~~~~~~~~~~~~~~
185
186
186 Alternatively, if you would like to convert the database for good, you can use
187 Alternatively, if you would like to convert the database for good, you can use
187 a helper script provided by Kallithea. This script will operate directly on the
188 a helper script provided by Kallithea. This script will operate directly on the
188 database, using the database string you can find in your ``production.ini`` (or
189 database, using the database string you can find in your ``production.ini`` (or
189 ``development.ini``) file. For example, if using SQLite::
190 ``development.ini``) file. For example, if using SQLite::
190
191
191 cd /path/to/kallithea
192 cd /path/to/kallithea
192 cp /path/to/rhodecode/rhodecode.db kallithea.db
193 cp /path/to/rhodecode/rhodecode.db kallithea.db
193 pip install sqlalchemy-migrate
194 pip install sqlalchemy-migrate
194 python kallithea/bin/rebranddb.py sqlite:///kallithea.db
195 python kallithea/bin/rebranddb.py sqlite:///kallithea.db
195
196
196 .. Note::
197 .. Note::
197
198
198 If you started out using the branding interoperability approach mentioned
199 If you started out using the branding interoperability approach mentioned
199 above, watch out for stray brand.pyc after removing brand.py.
200 above, watch out for stray brand.pyc after removing brand.py.
200
201
201 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
202 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
202 .. _Python: http://www.python.org/
203 .. _Python: http://www.python.org/
203 .. _Sphinx: http://sphinx.pocoo.org/
204 .. _Sphinx: http://sphinx.pocoo.org/
204 .. _Mercurial: http://mercurial.selenic.com/
205 .. _Mercurial: http://mercurial.selenic.com/
205 .. _Bitbucket: http://bitbucket.org/
206 .. _Bitbucket: http://bitbucket.org/
206 .. _GitHub: http://github.com/
207 .. _GitHub: http://github.com/
207 .. _Subversion: http://subversion.tigris.org/
208 .. _Subversion: http://subversion.tigris.org/
208 .. _Git: http://git-scm.com/
209 .. _Git: http://git-scm.com/
209 .. _Celery: http://celeryproject.org/
210 .. _Celery: http://celeryproject.org/
210 .. _vcs: http://pypi.python.org/pypi/vcs
211 .. _vcs: http://pypi.python.org/pypi/vcs
211 .. _Software Freedom Conservancy: http://sfconservancy.org/
212 .. _Software Freedom Conservancy: http://sfconservancy.org/
General Comments 0
You need to be logged in to leave comments. Login now