##// END OF EJS Templates
updated apache wsgi example ref #535
marcink -
r2800:6540ee91 beta
parent child Browse files
Show More
@@ -1,739 +1,740 b''
1 .. _changelog:
1 .. _changelog:
2
2
3 =========
3 =========
4 Changelog
4 Changelog
5 =========
5 =========
6
6
7
7
8 1.4.1 (**2012-09-04**)
8 1.4.1 (**2012-09-04**)
9 ----------------------
9 ----------------------
10
10
11 :status: in-progress
11 :status: in-progress
12 :branch: beta
12 :branch: beta
13
13
14 news
14 news
15 ++++
15 ++++
16
16
17 - always put a comment about code-review status change even if user send
17 - always put a comment about code-review status change even if user send
18 empty data
18 empty data
19 - modified_on column saves repository update and it's going to be used
19 - modified_on column saves repository update and it's going to be used
20 later for light version of main page ref #500
20 later for light version of main page ref #500
21 - pull request notifications send much nicer emails with details about pull
21 - pull request notifications send much nicer emails with details about pull
22 request
22 request
23
23
24 fixes
24 fixes
25 +++++
25 +++++
26
26
27 - fixed migrations of permissions that can lead to inconsistency.
27 - fixed migrations of permissions that can lead to inconsistency.
28 Some users sent feedback that after upgrading from older versions issues
28 Some users sent feedback that after upgrading from older versions issues
29 with updating default permissions occurred. RhodeCode detects that now and
29 with updating default permissions occurred. RhodeCode detects that now and
30 resets default user permission to initial state if there is a need for that.
30 resets default user permission to initial state if there is a need for that.
31 Also forces users to set the default value for new forking permission.
31 Also forces users to set the default value for new forking permission.
32 - #535 improved apache wsgi example configuration in docs
32
33
33
34
34 1.4.0 (**2012-09-03**)
35 1.4.0 (**2012-09-03**)
35 ----------------------
36 ----------------------
36
37
37 news
38 news
38 ++++
39 ++++
39
40
40 - new codereview system
41 - new codereview system
41 - email map, allowing users to have multiple email addresses mapped into
42 - email map, allowing users to have multiple email addresses mapped into
42 their accounts
43 their accounts
43 - improved git-hook system. Now all actions for git are logged into journal
44 - improved git-hook system. Now all actions for git are logged into journal
44 including pushed revisions, user and IP address
45 including pushed revisions, user and IP address
45 - changed setup-app into setup-rhodecode and added default options to it.
46 - changed setup-app into setup-rhodecode and added default options to it.
46 - new git repos are created as bare now by default
47 - new git repos are created as bare now by default
47 - #464 added links to groups in permission box
48 - #464 added links to groups in permission box
48 - #465 mentions autocomplete inside comments boxes
49 - #465 mentions autocomplete inside comments boxes
49 - #469 added --update-only option to whoosh to re-index only given list
50 - #469 added --update-only option to whoosh to re-index only given list
50 of repos in index
51 of repos in index
51 - rhodecode-api CLI client
52 - rhodecode-api CLI client
52 - new git http protocol replaced buggy dulwich implementation.
53 - new git http protocol replaced buggy dulwich implementation.
53 Now based on pygrack & gitweb
54 Now based on pygrack & gitweb
54 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
55 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
55 reformated based on user suggestions. Additional rss/atom feeds for user
56 reformated based on user suggestions. Additional rss/atom feeds for user
56 journal
57 journal
57 - various i18n improvements
58 - various i18n improvements
58 - #478 permissions overview for admin in user edit view
59 - #478 permissions overview for admin in user edit view
59 - File view now displays small gravatars off all authors of given file
60 - File view now displays small gravatars off all authors of given file
60 - Implemented landing revisions. Each repository will get landing_rev attribute
61 - Implemented landing revisions. Each repository will get landing_rev attribute
61 that defines 'default' revision/branch for generating readme files
62 that defines 'default' revision/branch for generating readme files
62 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
63 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
63 earliest possible call.
64 earliest possible call.
64 - Import remote svn repositories to mercurial using hgsubversion.
65 - Import remote svn repositories to mercurial using hgsubversion.
65 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
66 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
66 - RhodeCode can use alternative server for generating avatar icons
67 - RhodeCode can use alternative server for generating avatar icons
67 - implemented repositories locking. Pull locks, push unlocks. Also can be done
68 - implemented repositories locking. Pull locks, push unlocks. Also can be done
68 via API calls
69 via API calls
69 - #538 form for permissions can handle multiple users at once
70 - #538 form for permissions can handle multiple users at once
70
71
71 fixes
72 fixes
72 +++++
73 +++++
73
74
74 - improved translations
75 - improved translations
75 - fixes issue #455 Creating an archive generates an exception on Windows
76 - fixes issue #455 Creating an archive generates an exception on Windows
76 - fixes #448 Download ZIP archive keeps file in /tmp open and results
77 - fixes #448 Download ZIP archive keeps file in /tmp open and results
77 in out of disk space
78 in out of disk space
78 - fixes issue #454 Search results under Windows include proceeding
79 - fixes issue #454 Search results under Windows include proceeding
79 backslash
80 backslash
80 - fixed issue #450. Rhodecode no longer will crash when bad revision is
81 - fixed issue #450. Rhodecode no longer will crash when bad revision is
81 present in journal data.
82 present in journal data.
82 - fix for issue #417, git execution was broken on windows for certain
83 - fix for issue #417, git execution was broken on windows for certain
83 commands.
84 commands.
84 - fixed #413. Don't disable .git directory for bare repos on deleting
85 - fixed #413. Don't disable .git directory for bare repos on deleting
85 - fixed issue #459. Changed the way of obtaining logger in reindex task.
86 - fixed issue #459. Changed the way of obtaining logger in reindex task.
86 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
87 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
87 reindexing modified files
88 reindexing modified files
88 - fixed #481 rhodecode emails are sent without Date header
89 - fixed #481 rhodecode emails are sent without Date header
89 - fixed #458 wrong count when no repos are present
90 - fixed #458 wrong count when no repos are present
90 - fixed issue #492 missing `\ No newline at end of file` test at the end of
91 - fixed issue #492 missing `\ No newline at end of file` test at the end of
91 new chunk in html diff
92 new chunk in html diff
92 - full text search now works also for commit messages
93 - full text search now works also for commit messages
93
94
94 1.3.6 (**2012-05-17**)
95 1.3.6 (**2012-05-17**)
95 ----------------------
96 ----------------------
96
97
97 news
98 news
98 ++++
99 ++++
99
100
100 - chinese traditional translation
101 - chinese traditional translation
101 - changed setup-app into setup-rhodecode and added arguments for auto-setup
102 - changed setup-app into setup-rhodecode and added arguments for auto-setup
102 mode that doesn't need user interaction
103 mode that doesn't need user interaction
103
104
104 fixes
105 fixes
105 +++++
106 +++++
106
107
107 - fixed no scm found warning
108 - fixed no scm found warning
108 - fixed __future__ import error on rcextensions
109 - fixed __future__ import error on rcextensions
109 - made simplejson required lib for speedup on JSON encoding
110 - made simplejson required lib for speedup on JSON encoding
110 - fixes #449 bad regex could get more than revisions from parsing history
111 - fixes #449 bad regex could get more than revisions from parsing history
111 - don't clear DB session when CELERY_EAGER is turned ON
112 - don't clear DB session when CELERY_EAGER is turned ON
112
113
113 1.3.5 (**2012-05-10**)
114 1.3.5 (**2012-05-10**)
114 ----------------------
115 ----------------------
115
116
116 news
117 news
117 ++++
118 ++++
118
119
119 - use ext_json for json module
120 - use ext_json for json module
120 - unified annotation view with file source view
121 - unified annotation view with file source view
121 - notification improvements, better inbox + css
122 - notification improvements, better inbox + css
122 - #419 don't strip passwords for login forms, make rhodecode
123 - #419 don't strip passwords for login forms, make rhodecode
123 more compatible with LDAP servers
124 more compatible with LDAP servers
124 - Added HTTP_X_FORWARDED_FOR as another method of extracting
125 - Added HTTP_X_FORWARDED_FOR as another method of extracting
125 IP for pull/push logs. - moved all to base controller
126 IP for pull/push logs. - moved all to base controller
126 - #415: Adding comment to changeset causes reload.
127 - #415: Adding comment to changeset causes reload.
127 Comments are now added via ajax and doesn't reload the page
128 Comments are now added via ajax and doesn't reload the page
128 - #374 LDAP config is discarded when LDAP can't be activated
129 - #374 LDAP config is discarded when LDAP can't be activated
129 - limited push/pull operations are now logged for git in the journal
130 - limited push/pull operations are now logged for git in the journal
130 - bumped mercurial to 2.2.X series
131 - bumped mercurial to 2.2.X series
131 - added support for displaying submodules in file-browser
132 - added support for displaying submodules in file-browser
132 - #421 added bookmarks in changelog view
133 - #421 added bookmarks in changelog view
133
134
134 fixes
135 fixes
135 +++++
136 +++++
136
137
137 - fixed dev-version marker for stable when served from source codes
138 - fixed dev-version marker for stable when served from source codes
138 - fixed missing permission checks on show forks page
139 - fixed missing permission checks on show forks page
139 - #418 cast to unicode fixes in notification objects
140 - #418 cast to unicode fixes in notification objects
140 - #426 fixed mention extracting regex
141 - #426 fixed mention extracting regex
141 - fixed remote-pulling for git remotes remopositories
142 - fixed remote-pulling for git remotes remopositories
142 - fixed #434: Error when accessing files or changesets of a git repository
143 - fixed #434: Error when accessing files or changesets of a git repository
143 with submodules
144 with submodules
144 - fixed issue with empty APIKEYS for users after registration ref. #438
145 - fixed issue with empty APIKEYS for users after registration ref. #438
145 - fixed issue with getting README files from git repositories
146 - fixed issue with getting README files from git repositories
146
147
147 1.3.4 (**2012-03-28**)
148 1.3.4 (**2012-03-28**)
148 ----------------------
149 ----------------------
149
150
150 news
151 news
151 ++++
152 ++++
152
153
153 - Whoosh logging is now controlled by the .ini files logging setup
154 - Whoosh logging is now controlled by the .ini files logging setup
154 - added clone-url into edit form on /settings page
155 - added clone-url into edit form on /settings page
155 - added help text into repo add/edit forms
156 - added help text into repo add/edit forms
156 - created rcextensions module with additional mappings (ref #322) and
157 - created rcextensions module with additional mappings (ref #322) and
157 post push/pull/create repo hooks callbacks
158 post push/pull/create repo hooks callbacks
158 - implemented #377 Users view for his own permissions on account page
159 - implemented #377 Users view for his own permissions on account page
159 - #399 added inheritance of permissions for users group on repos groups
160 - #399 added inheritance of permissions for users group on repos groups
160 - #401 repository group is automatically pre-selected when adding repos
161 - #401 repository group is automatically pre-selected when adding repos
161 inside a repository group
162 inside a repository group
162 - added alternative HTTP 403 response when client failed to authenticate. Helps
163 - added alternative HTTP 403 response when client failed to authenticate. Helps
163 solving issues with Mercurial and LDAP
164 solving issues with Mercurial and LDAP
164 - #402 removed group prefix from repository name when listing repositories
165 - #402 removed group prefix from repository name when listing repositories
165 inside a group
166 inside a group
166 - added gravatars into permission view and permissions autocomplete
167 - added gravatars into permission view and permissions autocomplete
167 - #347 when running multiple RhodeCode instances, properly invalidates cache
168 - #347 when running multiple RhodeCode instances, properly invalidates cache
168 for all registered servers
169 for all registered servers
169
170
170 fixes
171 fixes
171 +++++
172 +++++
172
173
173 - fixed #390 cache invalidation problems on repos inside group
174 - fixed #390 cache invalidation problems on repos inside group
174 - fixed #385 clone by ID url was loosing proxy prefix in URL
175 - fixed #385 clone by ID url was loosing proxy prefix in URL
175 - fixed some unicode problems with waitress
176 - fixed some unicode problems with waitress
176 - fixed issue with escaping < and > in changeset commits
177 - fixed issue with escaping < and > in changeset commits
177 - fixed error occurring during recursive group creation in API
178 - fixed error occurring during recursive group creation in API
178 create_repo function
179 create_repo function
179 - fixed #393 py2.5 fixes for routes url generator
180 - fixed #393 py2.5 fixes for routes url generator
180 - fixed #397 Private repository groups shows up before login
181 - fixed #397 Private repository groups shows up before login
181 - fixed #396 fixed problems with revoking users in nested groups
182 - fixed #396 fixed problems with revoking users in nested groups
182 - fixed mysql unicode issues + specified InnoDB as default engine with
183 - fixed mysql unicode issues + specified InnoDB as default engine with
183 utf8 charset
184 utf8 charset
184 - #406 trim long branch/tag names in changelog to not break UI
185 - #406 trim long branch/tag names in changelog to not break UI
185
186
186 1.3.3 (**2012-03-02**)
187 1.3.3 (**2012-03-02**)
187 ----------------------
188 ----------------------
188
189
189 news
190 news
190 ++++
191 ++++
191
192
192
193
193 fixes
194 fixes
194 +++++
195 +++++
195
196
196 - fixed some python2.5 compatibility issues
197 - fixed some python2.5 compatibility issues
197 - fixed issues with removed repos was accidentally added as groups, after
198 - fixed issues with removed repos was accidentally added as groups, after
198 full rescan of paths
199 full rescan of paths
199 - fixes #376 Cannot edit user (using container auth)
200 - fixes #376 Cannot edit user (using container auth)
200 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
201 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
201 configuration
202 configuration
202 - fixed initial sorting of repos inside repo group
203 - fixed initial sorting of repos inside repo group
203 - fixes issue when user tried to resubmit same permission into user/user_groups
204 - fixes issue when user tried to resubmit same permission into user/user_groups
204 - bumped beaker version that fixes #375 leap error bug
205 - bumped beaker version that fixes #375 leap error bug
205 - fixed raw_changeset for git. It was generated with hg patch headers
206 - fixed raw_changeset for git. It was generated with hg patch headers
206 - fixed vcs issue with last_changeset for filenodes
207 - fixed vcs issue with last_changeset for filenodes
207 - fixed missing commit after hook delete
208 - fixed missing commit after hook delete
208 - fixed #372 issues with git operation detection that caused a security issue
209 - fixed #372 issues with git operation detection that caused a security issue
209 for git repos
210 for git repos
210
211
211 1.3.2 (**2012-02-28**)
212 1.3.2 (**2012-02-28**)
212 ----------------------
213 ----------------------
213
214
214 news
215 news
215 ++++
216 ++++
216
217
217
218
218 fixes
219 fixes
219 +++++
220 +++++
220
221
221 - fixed git protocol issues with repos-groups
222 - fixed git protocol issues with repos-groups
222 - fixed git remote repos validator that prevented from cloning remote git repos
223 - fixed git remote repos validator that prevented from cloning remote git repos
223 - fixes #370 ending slashes fixes for repo and groups
224 - fixes #370 ending slashes fixes for repo and groups
224 - fixes #368 improved git-protocol detection to handle other clients
225 - fixes #368 improved git-protocol detection to handle other clients
225 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
226 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
226 Moved To Root
227 Moved To Root
227 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
228 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
228 - fixed #373 missing cascade drop on user_group_to_perm table
229 - fixed #373 missing cascade drop on user_group_to_perm table
229
230
230 1.3.1 (**2012-02-27**)
231 1.3.1 (**2012-02-27**)
231 ----------------------
232 ----------------------
232
233
233 news
234 news
234 ++++
235 ++++
235
236
236
237
237 fixes
238 fixes
238 +++++
239 +++++
239
240
240 - redirection loop occurs when remember-me wasn't checked during login
241 - redirection loop occurs when remember-me wasn't checked during login
241 - fixes issues with git blob history generation
242 - fixes issues with git blob history generation
242 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
243 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
243
244
244 1.3.0 (**2012-02-26**)
245 1.3.0 (**2012-02-26**)
245 ----------------------
246 ----------------------
246
247
247 news
248 news
248 ++++
249 ++++
249
250
250 - code review, inspired by github code-comments
251 - code review, inspired by github code-comments
251 - #215 rst and markdown README files support
252 - #215 rst and markdown README files support
252 - #252 Container-based and proxy pass-through authentication support
253 - #252 Container-based and proxy pass-through authentication support
253 - #44 branch browser. Filtering of changelog by branches
254 - #44 branch browser. Filtering of changelog by branches
254 - mercurial bookmarks support
255 - mercurial bookmarks support
255 - new hover top menu, optimized to add maximum size for important views
256 - new hover top menu, optimized to add maximum size for important views
256 - configurable clone url template with possibility to specify protocol like
257 - configurable clone url template with possibility to specify protocol like
257 ssh:// or http:// and also manually alter other parts of clone_url.
258 ssh:// or http:// and also manually alter other parts of clone_url.
258 - enabled largefiles extension by default
259 - enabled largefiles extension by default
259 - optimized summary file pages and saved a lot of unused space in them
260 - optimized summary file pages and saved a lot of unused space in them
260 - #239 option to manually mark repository as fork
261 - #239 option to manually mark repository as fork
261 - #320 mapping of commit authors to RhodeCode users
262 - #320 mapping of commit authors to RhodeCode users
262 - #304 hashes are displayed using monospace font
263 - #304 hashes are displayed using monospace font
263 - diff configuration, toggle white lines and context lines
264 - diff configuration, toggle white lines and context lines
264 - #307 configurable diffs, whitespace toggle, increasing context lines
265 - #307 configurable diffs, whitespace toggle, increasing context lines
265 - sorting on branches, tags and bookmarks using YUI datatable
266 - sorting on branches, tags and bookmarks using YUI datatable
266 - improved file filter on files page
267 - improved file filter on files page
267 - implements #330 api method for listing nodes ar particular revision
268 - implements #330 api method for listing nodes ar particular revision
268 - #73 added linking issues in commit messages to chosen issue tracker url
269 - #73 added linking issues in commit messages to chosen issue tracker url
269 based on user defined regular expression
270 based on user defined regular expression
270 - added linking of changesets in commit messages
271 - added linking of changesets in commit messages
271 - new compact changelog with expandable commit messages
272 - new compact changelog with expandable commit messages
272 - firstname and lastname are optional in user creation
273 - firstname and lastname are optional in user creation
273 - #348 added post-create repository hook
274 - #348 added post-create repository hook
274 - #212 global encoding settings is now configurable from .ini files
275 - #212 global encoding settings is now configurable from .ini files
275 - #227 added repository groups permissions
276 - #227 added repository groups permissions
276 - markdown gets codehilite extensions
277 - markdown gets codehilite extensions
277 - new API methods, delete_repositories, grante/revoke permissions for groups
278 - new API methods, delete_repositories, grante/revoke permissions for groups
278 and repos
279 and repos
279
280
280
281
281 fixes
282 fixes
282 +++++
283 +++++
283
284
284 - rewrote dbsession management for atomic operations, and better error handling
285 - rewrote dbsession management for atomic operations, and better error handling
285 - fixed sorting of repo tables
286 - fixed sorting of repo tables
286 - #326 escape of special html entities in diffs
287 - #326 escape of special html entities in diffs
287 - normalized user_name => username in api attributes
288 - normalized user_name => username in api attributes
288 - fixes #298 ldap created users with mixed case emails created conflicts
289 - fixes #298 ldap created users with mixed case emails created conflicts
289 on saving a form
290 on saving a form
290 - fixes issue when owner of a repo couldn't revoke permissions for users
291 - fixes issue when owner of a repo couldn't revoke permissions for users
291 and groups
292 and groups
292 - fixes #271 rare JSON serialization problem with statistics
293 - fixes #271 rare JSON serialization problem with statistics
293 - fixes #337 missing validation check for conflicting names of a group with a
294 - fixes #337 missing validation check for conflicting names of a group with a
294 repositories group
295 repositories group
295 - #340 fixed session problem for mysql and celery tasks
296 - #340 fixed session problem for mysql and celery tasks
296 - fixed #331 RhodeCode mangles repository names if the a repository group
297 - fixed #331 RhodeCode mangles repository names if the a repository group
297 contains the "full path" to the repositories
298 contains the "full path" to the repositories
298 - #355 RhodeCode doesn't store encrypted LDAP passwords
299 - #355 RhodeCode doesn't store encrypted LDAP passwords
299
300
300 1.2.5 (**2012-01-28**)
301 1.2.5 (**2012-01-28**)
301 ----------------------
302 ----------------------
302
303
303 news
304 news
304 ++++
305 ++++
305
306
306 fixes
307 fixes
307 +++++
308 +++++
308
309
309 - #340 Celery complains about MySQL server gone away, added session cleanup
310 - #340 Celery complains about MySQL server gone away, added session cleanup
310 for celery tasks
311 for celery tasks
311 - #341 "scanning for repositories in None" log message during Rescan was missing
312 - #341 "scanning for repositories in None" log message during Rescan was missing
312 a parameter
313 a parameter
313 - fixed creating archives with subrepos. Some hooks were triggered during that
314 - fixed creating archives with subrepos. Some hooks were triggered during that
314 operation leading to crash.
315 operation leading to crash.
315 - fixed missing email in account page.
316 - fixed missing email in account page.
316 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
317 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
317 forking on windows impossible
318 forking on windows impossible
318
319
319 1.2.4 (**2012-01-19**)
320 1.2.4 (**2012-01-19**)
320 ----------------------
321 ----------------------
321
322
322 news
323 news
323 ++++
324 ++++
324
325
325 - RhodeCode is bundled with mercurial series 2.0.X by default, with
326 - RhodeCode is bundled with mercurial series 2.0.X by default, with
326 full support to largefiles extension. Enabled by default in new installations
327 full support to largefiles extension. Enabled by default in new installations
327 - #329 Ability to Add/Remove Groups to/from a Repository via AP
328 - #329 Ability to Add/Remove Groups to/from a Repository via AP
328 - added requires.txt file with requirements
329 - added requires.txt file with requirements
329
330
330 fixes
331 fixes
331 +++++
332 +++++
332
333
333 - fixes db session issues with celery when emailing admins
334 - fixes db session issues with celery when emailing admins
334 - #331 RhodeCode mangles repository names if the a repository group
335 - #331 RhodeCode mangles repository names if the a repository group
335 contains the "full path" to the repositories
336 contains the "full path" to the repositories
336 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
337 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
337 - DB session cleanup after hg protocol operations, fixes issues with
338 - DB session cleanup after hg protocol operations, fixes issues with
338 `mysql has gone away` errors
339 `mysql has gone away` errors
339 - #333 doc fixes for get_repo api function
340 - #333 doc fixes for get_repo api function
340 - #271 rare JSON serialization problem with statistics enabled
341 - #271 rare JSON serialization problem with statistics enabled
341 - #337 Fixes issues with validation of repository name conflicting with
342 - #337 Fixes issues with validation of repository name conflicting with
342 a group name. A proper message is now displayed.
343 a group name. A proper message is now displayed.
343 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
344 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
344 doesn't work
345 doesn't work
345 - #316 fixes issues with web description in hgrc files
346 - #316 fixes issues with web description in hgrc files
346
347
347 1.2.3 (**2011-11-02**)
348 1.2.3 (**2011-11-02**)
348 ----------------------
349 ----------------------
349
350
350 news
351 news
351 ++++
352 ++++
352
353
353 - added option to manage repos group for non admin users
354 - added option to manage repos group for non admin users
354 - added following API methods for get_users, create_user, get_users_groups,
355 - added following API methods for get_users, create_user, get_users_groups,
355 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
356 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
356 get_repo, create_repo, add_user_to_repo
357 get_repo, create_repo, add_user_to_repo
357 - implements #237 added password confirmation for my account
358 - implements #237 added password confirmation for my account
358 and admin edit user.
359 and admin edit user.
359 - implements #291 email notification for global events are now sent to all
360 - implements #291 email notification for global events are now sent to all
360 administrator users, and global config email.
361 administrator users, and global config email.
361
362
362 fixes
363 fixes
363 +++++
364 +++++
364
365
365 - added option for passing auth method for smtp mailer
366 - added option for passing auth method for smtp mailer
366 - #276 issue with adding a single user with id>10 to usergroups
367 - #276 issue with adding a single user with id>10 to usergroups
367 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
368 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
368 - #288 fixes managing of repos in a group for non admin user
369 - #288 fixes managing of repos in a group for non admin user
369
370
370 1.2.2 (**2011-10-17**)
371 1.2.2 (**2011-10-17**)
371 ----------------------
372 ----------------------
372
373
373 news
374 news
374 ++++
375 ++++
375
376
376 - #226 repo groups are available by path instead of numerical id
377 - #226 repo groups are available by path instead of numerical id
377
378
378 fixes
379 fixes
379 +++++
380 +++++
380
381
381 - #259 Groups with the same name but with different parent group
382 - #259 Groups with the same name but with different parent group
382 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
383 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
383 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
384 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
384 - #265 ldap save fails sometimes on converting attributes to booleans,
385 - #265 ldap save fails sometimes on converting attributes to booleans,
385 added getter and setter into model that will prevent from this on db model level
386 added getter and setter into model that will prevent from this on db model level
386 - fixed problems with timestamps issues #251 and #213
387 - fixed problems with timestamps issues #251 and #213
387 - fixes #266 RhodeCode allows to create repo with the same name and in
388 - fixes #266 RhodeCode allows to create repo with the same name and in
388 the same parent as group
389 the same parent as group
389 - fixes #245 Rescan of the repositories on Windows
390 - fixes #245 Rescan of the repositories on Windows
390 - fixes #248 cannot edit repos inside a group on windows
391 - fixes #248 cannot edit repos inside a group on windows
391 - fixes #219 forking problems on windows
392 - fixes #219 forking problems on windows
392
393
393 1.2.1 (**2011-10-08**)
394 1.2.1 (**2011-10-08**)
394 ----------------------
395 ----------------------
395
396
396 news
397 news
397 ++++
398 ++++
398
399
399
400
400 fixes
401 fixes
401 +++++
402 +++++
402
403
403 - fixed problems with basic auth and push problems
404 - fixed problems with basic auth and push problems
404 - gui fixes
405 - gui fixes
405 - fixed logger
406 - fixed logger
406
407
407 1.2.0 (**2011-10-07**)
408 1.2.0 (**2011-10-07**)
408 ----------------------
409 ----------------------
409
410
410 news
411 news
411 ++++
412 ++++
412
413
413 - implemented #47 repository groups
414 - implemented #47 repository groups
414 - implemented #89 Can setup google analytics code from settings menu
415 - implemented #89 Can setup google analytics code from settings menu
415 - implemented #91 added nicer looking archive urls with more download options
416 - implemented #91 added nicer looking archive urls with more download options
416 like tags, branches
417 like tags, branches
417 - implemented #44 into file browsing, and added follow branch option
418 - implemented #44 into file browsing, and added follow branch option
418 - implemented #84 downloads can be enabled/disabled for each repository
419 - implemented #84 downloads can be enabled/disabled for each repository
419 - anonymous repository can be cloned without having to pass default:default
420 - anonymous repository can be cloned without having to pass default:default
420 into clone url
421 into clone url
421 - fixed #90 whoosh indexer can index chooses repositories passed in command
422 - fixed #90 whoosh indexer can index chooses repositories passed in command
422 line
423 line
423 - extended journal with day aggregates and paging
424 - extended journal with day aggregates and paging
424 - implemented #107 source code lines highlight ranges
425 - implemented #107 source code lines highlight ranges
425 - implemented #93 customizable changelog on combined revision ranges -
426 - implemented #93 customizable changelog on combined revision ranges -
426 equivalent of githubs compare view
427 equivalent of githubs compare view
427 - implemented #108 extended and more powerful LDAP configuration
428 - implemented #108 extended and more powerful LDAP configuration
428 - implemented #56 users groups
429 - implemented #56 users groups
429 - major code rewrites optimized codes for speed and memory usage
430 - major code rewrites optimized codes for speed and memory usage
430 - raw and diff downloads are now in git format
431 - raw and diff downloads are now in git format
431 - setup command checks for write access to given path
432 - setup command checks for write access to given path
432 - fixed many issues with international characters and unicode. It uses utf8
433 - fixed many issues with international characters and unicode. It uses utf8
433 decode with replace to provide less errors even with non utf8 encoded strings
434 decode with replace to provide less errors even with non utf8 encoded strings
434 - #125 added API KEY access to feeds
435 - #125 added API KEY access to feeds
435 - #109 Repository can be created from external Mercurial link (aka. remote
436 - #109 Repository can be created from external Mercurial link (aka. remote
436 repository, and manually updated (via pull) from admin panel
437 repository, and manually updated (via pull) from admin panel
437 - beta git support - push/pull server + basic view for git repos
438 - beta git support - push/pull server + basic view for git repos
438 - added followers page and forks page
439 - added followers page and forks page
439 - server side file creation (with binary file upload interface)
440 - server side file creation (with binary file upload interface)
440 and edition with commits powered by codemirror
441 and edition with commits powered by codemirror
441 - #111 file browser file finder, quick lookup files on whole file tree
442 - #111 file browser file finder, quick lookup files on whole file tree
442 - added quick login sliding menu into main page
443 - added quick login sliding menu into main page
443 - changelog uses lazy loading of affected files details, in some scenarios
444 - changelog uses lazy loading of affected files details, in some scenarios
444 this can improve speed of changelog page dramatically especially for
445 this can improve speed of changelog page dramatically especially for
445 larger repositories.
446 larger repositories.
446 - implements #214 added support for downloading subrepos in download menu.
447 - implements #214 added support for downloading subrepos in download menu.
447 - Added basic API for direct operations on rhodecode via JSON
448 - Added basic API for direct operations on rhodecode via JSON
448 - Implemented advanced hook management
449 - Implemented advanced hook management
449
450
450 fixes
451 fixes
451 +++++
452 +++++
452
453
453 - fixed file browser bug, when switching into given form revision the url was
454 - fixed file browser bug, when switching into given form revision the url was
454 not changing
455 not changing
455 - fixed propagation to error controller on simplehg and simplegit middlewares
456 - fixed propagation to error controller on simplehg and simplegit middlewares
456 - fixed error when trying to make a download on empty repository
457 - fixed error when trying to make a download on empty repository
457 - fixed problem with '[' chars in commit messages in journal
458 - fixed problem with '[' chars in commit messages in journal
458 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
459 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
459 - journal fork fixes
460 - journal fork fixes
460 - removed issue with space inside renamed repository after deletion
461 - removed issue with space inside renamed repository after deletion
461 - fixed strange issue on formencode imports
462 - fixed strange issue on formencode imports
462 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
463 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
463 - #150 fixes for errors on repositories mapped in db but corrupted in
464 - #150 fixes for errors on repositories mapped in db but corrupted in
464 filesystem
465 filesystem
465 - fixed problem with ascendant characters in realm #181
466 - fixed problem with ascendant characters in realm #181
466 - fixed problem with sqlite file based database connection pool
467 - fixed problem with sqlite file based database connection pool
467 - whoosh indexer and code stats share the same dynamic extensions map
468 - whoosh indexer and code stats share the same dynamic extensions map
468 - fixes #188 - relationship delete of repo_to_perm entry on user removal
469 - fixes #188 - relationship delete of repo_to_perm entry on user removal
469 - fixes issue #189 Trending source files shows "show more" when no more exist
470 - fixes issue #189 Trending source files shows "show more" when no more exist
470 - fixes issue #197 Relative paths for pidlocks
471 - fixes issue #197 Relative paths for pidlocks
471 - fixes issue #198 password will require only 3 chars now for login form
472 - fixes issue #198 password will require only 3 chars now for login form
472 - fixes issue #199 wrong redirection for non admin users after creating a repository
473 - fixes issue #199 wrong redirection for non admin users after creating a repository
473 - fixes issues #202, bad db constraint made impossible to attach same group
474 - fixes issues #202, bad db constraint made impossible to attach same group
474 more than one time. Affects only mysql/postgres
475 more than one time. Affects only mysql/postgres
475 - fixes #218 os.kill patch for windows was missing sig param
476 - fixes #218 os.kill patch for windows was missing sig param
476 - improved rendering of dag (they are not trimmed anymore when number of
477 - improved rendering of dag (they are not trimmed anymore when number of
477 heads exceeds 5)
478 heads exceeds 5)
478
479
479 1.1.8 (**2011-04-12**)
480 1.1.8 (**2011-04-12**)
480 ----------------------
481 ----------------------
481
482
482 news
483 news
483 ++++
484 ++++
484
485
485 - improved windows support
486 - improved windows support
486
487
487 fixes
488 fixes
488 +++++
489 +++++
489
490
490 - fixed #140 freeze of python dateutil library, since new version is python2.x
491 - fixed #140 freeze of python dateutil library, since new version is python2.x
491 incompatible
492 incompatible
492 - setup-app will check for write permission in given path
493 - setup-app will check for write permission in given path
493 - cleaned up license info issue #149
494 - cleaned up license info issue #149
494 - fixes for issues #137,#116 and problems with unicode and accented characters.
495 - fixes for issues #137,#116 and problems with unicode and accented characters.
495 - fixes crashes on gravatar, when passed in email as unicode
496 - fixes crashes on gravatar, when passed in email as unicode
496 - fixed tooltip flickering problems
497 - fixed tooltip flickering problems
497 - fixed came_from redirection on windows
498 - fixed came_from redirection on windows
498 - fixed logging modules, and sql formatters
499 - fixed logging modules, and sql formatters
499 - windows fixes for os.kill issue #133
500 - windows fixes for os.kill issue #133
500 - fixes path splitting for windows issues #148
501 - fixes path splitting for windows issues #148
501 - fixed issue #143 wrong import on migration to 1.1.X
502 - fixed issue #143 wrong import on migration to 1.1.X
502 - fixed problems with displaying binary files, thanks to Thomas Waldmann
503 - fixed problems with displaying binary files, thanks to Thomas Waldmann
503 - removed name from archive files since it's breaking ui for long repo names
504 - removed name from archive files since it's breaking ui for long repo names
504 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
505 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
505 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
506 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
506 Thomas Waldmann
507 Thomas Waldmann
507 - fixed issue #166 summary pager was skipping 10 revisions on second page
508 - fixed issue #166 summary pager was skipping 10 revisions on second page
508
509
509
510
510 1.1.7 (**2011-03-23**)
511 1.1.7 (**2011-03-23**)
511 ----------------------
512 ----------------------
512
513
513 news
514 news
514 ++++
515 ++++
515
516
516 fixes
517 fixes
517 +++++
518 +++++
518
519
519 - fixed (again) #136 installation support for FreeBSD
520 - fixed (again) #136 installation support for FreeBSD
520
521
521
522
522 1.1.6 (**2011-03-21**)
523 1.1.6 (**2011-03-21**)
523 ----------------------
524 ----------------------
524
525
525 news
526 news
526 ++++
527 ++++
527
528
528 fixes
529 fixes
529 +++++
530 +++++
530
531
531 - fixed #136 installation support for FreeBSD
532 - fixed #136 installation support for FreeBSD
532 - RhodeCode will check for python version during installation
533 - RhodeCode will check for python version during installation
533
534
534 1.1.5 (**2011-03-17**)
535 1.1.5 (**2011-03-17**)
535 ----------------------
536 ----------------------
536
537
537 news
538 news
538 ++++
539 ++++
539
540
540 - basic windows support, by exchanging pybcrypt into sha256 for windows only
541 - basic windows support, by exchanging pybcrypt into sha256 for windows only
541 highly inspired by idea of mantis406
542 highly inspired by idea of mantis406
542
543
543 fixes
544 fixes
544 +++++
545 +++++
545
546
546 - fixed sorting by author in main page
547 - fixed sorting by author in main page
547 - fixed crashes with diffs on binary files
548 - fixed crashes with diffs on binary files
548 - fixed #131 problem with boolean values for LDAP
549 - fixed #131 problem with boolean values for LDAP
549 - fixed #122 mysql problems thanks to striker69
550 - fixed #122 mysql problems thanks to striker69
550 - fixed problem with errors on calling raw/raw_files/annotate functions
551 - fixed problem with errors on calling raw/raw_files/annotate functions
551 with unknown revisions
552 with unknown revisions
552 - fixed returned rawfiles attachment names with international character
553 - fixed returned rawfiles attachment names with international character
553 - cleaned out docs, big thanks to Jason Harris
554 - cleaned out docs, big thanks to Jason Harris
554
555
555 1.1.4 (**2011-02-19**)
556 1.1.4 (**2011-02-19**)
556 ----------------------
557 ----------------------
557
558
558 news
559 news
559 ++++
560 ++++
560
561
561 fixes
562 fixes
562 +++++
563 +++++
563
564
564 - fixed formencode import problem on settings page, that caused server crash
565 - fixed formencode import problem on settings page, that caused server crash
565 when that page was accessed as first after server start
566 when that page was accessed as first after server start
566 - journal fixes
567 - journal fixes
567 - fixed option to access repository just by entering http://server/<repo_name>
568 - fixed option to access repository just by entering http://server/<repo_name>
568
569
569 1.1.3 (**2011-02-16**)
570 1.1.3 (**2011-02-16**)
570 ----------------------
571 ----------------------
571
572
572 news
573 news
573 ++++
574 ++++
574
575
575 - implemented #102 allowing the '.' character in username
576 - implemented #102 allowing the '.' character in username
576 - added option to access repository just by entering http://server/<repo_name>
577 - added option to access repository just by entering http://server/<repo_name>
577 - celery task ignores result for better performance
578 - celery task ignores result for better performance
578
579
579 fixes
580 fixes
580 +++++
581 +++++
581
582
582 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
583 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
583 apollo13 and Johan Walles
584 apollo13 and Johan Walles
584 - small fixes in journal
585 - small fixes in journal
585 - fixed problems with getting setting for celery from .ini files
586 - fixed problems with getting setting for celery from .ini files
586 - registration, password reset and login boxes share the same title as main
587 - registration, password reset and login boxes share the same title as main
587 application now
588 application now
588 - fixed #113: to high permissions to fork repository
589 - fixed #113: to high permissions to fork repository
589 - fixed problem with '[' chars in commit messages in journal
590 - fixed problem with '[' chars in commit messages in journal
590 - removed issue with space inside renamed repository after deletion
591 - removed issue with space inside renamed repository after deletion
591 - db transaction fixes when filesystem repository creation failed
592 - db transaction fixes when filesystem repository creation failed
592 - fixed #106 relation issues on databases different than sqlite
593 - fixed #106 relation issues on databases different than sqlite
593 - fixed static files paths links to use of url() method
594 - fixed static files paths links to use of url() method
594
595
595 1.1.2 (**2011-01-12**)
596 1.1.2 (**2011-01-12**)
596 ----------------------
597 ----------------------
597
598
598 news
599 news
599 ++++
600 ++++
600
601
601
602
602 fixes
603 fixes
603 +++++
604 +++++
604
605
605 - fixes #98 protection against float division of percentage stats
606 - fixes #98 protection against float division of percentage stats
606 - fixed graph bug
607 - fixed graph bug
607 - forced webhelpers version since it was making troubles during installation
608 - forced webhelpers version since it was making troubles during installation
608
609
609 1.1.1 (**2011-01-06**)
610 1.1.1 (**2011-01-06**)
610 ----------------------
611 ----------------------
611
612
612 news
613 news
613 ++++
614 ++++
614
615
615 - added force https option into ini files for easier https usage (no need to
616 - added force https option into ini files for easier https usage (no need to
616 set server headers with this options)
617 set server headers with this options)
617 - small css updates
618 - small css updates
618
619
619 fixes
620 fixes
620 +++++
621 +++++
621
622
622 - fixed #96 redirect loop on files view on repositories without changesets
623 - fixed #96 redirect loop on files view on repositories without changesets
623 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
624 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
624 and server crashed with errors
625 and server crashed with errors
625 - fixed large tooltips problems on main page
626 - fixed large tooltips problems on main page
626 - fixed #92 whoosh indexer is more error proof
627 - fixed #92 whoosh indexer is more error proof
627
628
628 1.1.0 (**2010-12-18**)
629 1.1.0 (**2010-12-18**)
629 ----------------------
630 ----------------------
630
631
631 news
632 news
632 ++++
633 ++++
633
634
634 - rewrite of internals for vcs >=0.1.10
635 - rewrite of internals for vcs >=0.1.10
635 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
636 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
636 with older clients
637 with older clients
637 - anonymous access, authentication via ldap
638 - anonymous access, authentication via ldap
638 - performance upgrade for cached repos list - each repository has its own
639 - performance upgrade for cached repos list - each repository has its own
639 cache that's invalidated when needed.
640 cache that's invalidated when needed.
640 - performance upgrades on repositories with large amount of commits (20K+)
641 - performance upgrades on repositories with large amount of commits (20K+)
641 - main page quick filter for filtering repositories
642 - main page quick filter for filtering repositories
642 - user dashboards with ability to follow chosen repositories actions
643 - user dashboards with ability to follow chosen repositories actions
643 - sends email to admin on new user registration
644 - sends email to admin on new user registration
644 - added cache/statistics reset options into repository settings
645 - added cache/statistics reset options into repository settings
645 - more detailed action logger (based on hooks) with pushed changesets lists
646 - more detailed action logger (based on hooks) with pushed changesets lists
646 and options to disable those hooks from admin panel
647 and options to disable those hooks from admin panel
647 - introduced new enhanced changelog for merges that shows more accurate results
648 - introduced new enhanced changelog for merges that shows more accurate results
648 - new improved and faster code stats (based on pygments lexers mapping tables,
649 - new improved and faster code stats (based on pygments lexers mapping tables,
649 showing up to 10 trending sources for each repository. Additionally stats
650 showing up to 10 trending sources for each repository. Additionally stats
650 can be disabled in repository settings.
651 can be disabled in repository settings.
651 - gui optimizations, fixed application width to 1024px
652 - gui optimizations, fixed application width to 1024px
652 - added cut off (for large files/changesets) limit into config files
653 - added cut off (for large files/changesets) limit into config files
653 - whoosh, celeryd, upgrade moved to paster command
654 - whoosh, celeryd, upgrade moved to paster command
654 - other than sqlite database backends can be used
655 - other than sqlite database backends can be used
655
656
656 fixes
657 fixes
657 +++++
658 +++++
658
659
659 - fixes #61 forked repo was showing only after cache expired
660 - fixes #61 forked repo was showing only after cache expired
660 - fixes #76 no confirmation on user deletes
661 - fixes #76 no confirmation on user deletes
661 - fixes #66 Name field misspelled
662 - fixes #66 Name field misspelled
662 - fixes #72 block user removal when he owns repositories
663 - fixes #72 block user removal when he owns repositories
663 - fixes #69 added password confirmation fields
664 - fixes #69 added password confirmation fields
664 - fixes #87 RhodeCode crashes occasionally on updating repository owner
665 - fixes #87 RhodeCode crashes occasionally on updating repository owner
665 - fixes #82 broken annotations on files with more than 1 blank line at the end
666 - fixes #82 broken annotations on files with more than 1 blank line at the end
666 - a lot of fixes and tweaks for file browser
667 - a lot of fixes and tweaks for file browser
667 - fixed detached session issues
668 - fixed detached session issues
668 - fixed when user had no repos he would see all repos listed in my account
669 - fixed when user had no repos he would see all repos listed in my account
669 - fixed ui() instance bug when global hgrc settings was loaded for server
670 - fixed ui() instance bug when global hgrc settings was loaded for server
670 instance and all hgrc options were merged with our db ui() object
671 instance and all hgrc options were merged with our db ui() object
671 - numerous small bugfixes
672 - numerous small bugfixes
672
673
673 (special thanks for TkSoh for detailed feedback)
674 (special thanks for TkSoh for detailed feedback)
674
675
675
676
676 1.0.2 (**2010-11-12**)
677 1.0.2 (**2010-11-12**)
677 ----------------------
678 ----------------------
678
679
679 news
680 news
680 ++++
681 ++++
681
682
682 - tested under python2.7
683 - tested under python2.7
683 - bumped sqlalchemy and celery versions
684 - bumped sqlalchemy and celery versions
684
685
685 fixes
686 fixes
686 +++++
687 +++++
687
688
688 - fixed #59 missing graph.js
689 - fixed #59 missing graph.js
689 - fixed repo_size crash when repository had broken symlinks
690 - fixed repo_size crash when repository had broken symlinks
690 - fixed python2.5 crashes.
691 - fixed python2.5 crashes.
691
692
692
693
693 1.0.1 (**2010-11-10**)
694 1.0.1 (**2010-11-10**)
694 ----------------------
695 ----------------------
695
696
696 news
697 news
697 ++++
698 ++++
698
699
699 - small css updated
700 - small css updated
700
701
701 fixes
702 fixes
702 +++++
703 +++++
703
704
704 - fixed #53 python2.5 incompatible enumerate calls
705 - fixed #53 python2.5 incompatible enumerate calls
705 - fixed #52 disable mercurial extension for web
706 - fixed #52 disable mercurial extension for web
706 - fixed #51 deleting repositories don't delete it's dependent objects
707 - fixed #51 deleting repositories don't delete it's dependent objects
707
708
708
709
709 1.0.0 (**2010-11-02**)
710 1.0.0 (**2010-11-02**)
710 ----------------------
711 ----------------------
711
712
712 - security bugfix simplehg wasn't checking for permissions on commands
713 - security bugfix simplehg wasn't checking for permissions on commands
713 other than pull or push.
714 other than pull or push.
714 - fixed doubled messages after push or pull in admin journal
715 - fixed doubled messages after push or pull in admin journal
715 - templating and css corrections, fixed repo switcher on chrome, updated titles
716 - templating and css corrections, fixed repo switcher on chrome, updated titles
716 - admin menu accessible from options menu on repository view
717 - admin menu accessible from options menu on repository view
717 - permissions cached queries
718 - permissions cached queries
718
719
719 1.0.0rc4 (**2010-10-12**)
720 1.0.0rc4 (**2010-10-12**)
720 --------------------------
721 --------------------------
721
722
722 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
723 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
723 - removed cache_manager settings from sqlalchemy meta
724 - removed cache_manager settings from sqlalchemy meta
724 - added sqlalchemy cache settings to ini files
725 - added sqlalchemy cache settings to ini files
725 - validated password length and added second try of failure on paster setup-app
726 - validated password length and added second try of failure on paster setup-app
726 - fixed setup database destroy prompt even when there was no db
727 - fixed setup database destroy prompt even when there was no db
727
728
728
729
729 1.0.0rc3 (**2010-10-11**)
730 1.0.0rc3 (**2010-10-11**)
730 -------------------------
731 -------------------------
731
732
732 - fixed i18n during installation.
733 - fixed i18n during installation.
733
734
734 1.0.0rc2 (**2010-10-11**)
735 1.0.0rc2 (**2010-10-11**)
735 -------------------------
736 -------------------------
736
737
737 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
738 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
738 occure. After vcs is fixed it'll be put back again.
739 occure. After vcs is fixed it'll be put back again.
739 - templating/css rewrites, optimized css. No newline at end of file
740 - templating/css rewrites, optimized css.
@@ -1,715 +1,724 b''
1 .. _setup:
1 .. _setup:
2
2
3 =====
3 =====
4 Setup
4 Setup
5 =====
5 =====
6
6
7
7
8 Setting up RhodeCode
8 Setting up RhodeCode
9 --------------------
9 --------------------
10
10
11 First, you will need to create a RhodeCode configuration file. Run the
11 First, you will need to create a RhodeCode configuration file. Run the
12 following command to do this::
12 following command to do this::
13
13
14 paster make-config RhodeCode production.ini
14 paster make-config RhodeCode production.ini
15
15
16 - This will create the file `production.ini` in the current directory. This
16 - This will create the file `production.ini` in the current directory. This
17 configuration file contains the various settings for RhodeCode, e.g proxy
17 configuration file contains the various settings for RhodeCode, 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 RhodeCode. I recommend that you
22 Next, you need to create the databases used by RhodeCode. I recommend that you
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 production.ini
24 default ensure you properly adjust the db url in your production.ini
25 configuration file to use this other database. RhodeCode currently supports
25 configuration file to use this other database. RhodeCode 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-rhodecode production.ini
29 paster setup-rhodecode production.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 RhodeCode will store all of its repositories on the current machine. After
32 RhodeCode will store all of its repositories on the current machine. After
33 entering this "root" path ``setup-rhodecode`` will also prompt you for a username
33 entering this "root" path ``setup-rhodecode`` will also prompt you for a username
34 and password for the initial admin account which ``setup-rhodecode`` sets
34 and password for the initial admin account which ``setup-rhodecode`` sets
35 up for you.
35 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-rhodecode production.ini --user=marcink --password=secret --email=marcin@rhodecode.org --repos=/home/marcink/my_repos
39 paster setup-rhodecode production.ini --user=marcink --password=secret --email=marcin@rhodecode.org --repos=/home/marcink/my_repos
40
40
41
41
42 - The ``setup-rhodecode`` command will create all of the needed tables and an
42 - The ``setup-rhodecode`` command will create all of the needed tables and an
43 admin account. When choosing a root path you can either use a new empty
43 admin account. When choosing a root path you can either use a new empty
44 location, or a location which already contains existing repositories. If you
44 location, or a location which already contains existing repositories. If you
45 choose a location which contains existing repositories RhodeCode will simply
45 choose a location which contains existing repositories RhodeCode will simply
46 add all of the repositories at the chosen location to it's database.
46 add all of the repositories at the chosen location to it's database.
47 (Note: make sure you specify the correct path to the root).
47 (Note: make sure you specify the correct path to the root).
48 - Note: the given path for mercurial_ repositories **must** be write accessible
48 - Note: the given path for mercurial_ repositories **must** be write accessible
49 for the application. It's very important since the RhodeCode web interface
49 for the application. It's very important since the RhodeCode web interface
50 will work without write access, but when trying to do a push it will
50 will work without write access, but when trying to do a push it will
51 eventually fail with permission denied errors unless it has write access.
51 eventually fail with permission denied errors unless it has write access.
52
52
53 You are now ready to use RhodeCode, to run it simply execute::
53 You are now ready to use RhodeCode, to run it simply execute::
54
54
55 paster serve production.ini
55 paster serve production.ini
56
56
57 - This command runs the RhodeCode server. The web app should be available at the
57 - This command runs the RhodeCode server. The web app should be available at the
58 127.0.0.1:5000. This ip and port is configurable via the production.ini
58 127.0.0.1:5000. This ip and port is configurable via the production.ini
59 file created in previous step
59 file created in previous step
60 - Use the admin account you created above when running ``setup-rhodecode``
60 - Use the admin account you created above when running ``setup-rhodecode``
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 ldap, anonymous, permissions settings. As
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 RhodeCode
67 Optionally users can create `rcextensions` package that extends RhodeCode
68 functionality. To do this simply execute::
68 functionality. To do this simply execute::
69
69
70 paster make-rcext production.ini
70 paster make-rcext production.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,
74 stats and add additional code into the push/pull/create repo hooks. For example
74 stats and add additional code into the push/pull/create repo hooks. For example
75 for sending signals to build-bots such as jenkins.
75 for sending signals to build-bots such as jenkins.
76 Please see the `__init__.py` file inside `rcextensions` package
76 Please see the `__init__.py` file inside `rcextensions` package
77 for more details.
77 for more details.
78
78
79
79
80 Using RhodeCode with SSH
80 Using RhodeCode with SSH
81 ------------------------
81 ------------------------
82
82
83 RhodeCode currently only hosts repositories using http and https. (The addition
83 RhodeCode currently only hosts repositories using http and https. (The addition
84 of ssh hosting is a planned future feature.) However you can easily use ssh in
84 of ssh hosting is a planned future feature.) However you can easily use ssh in
85 parallel with RhodeCode. (Repository access via ssh is a standard "out of
85 parallel with RhodeCode. (Repository access via ssh is a standard "out of
86 the box" feature of mercurial_ and you can use this to access any of the
86 the box" feature of mercurial_ and you can use this to access any of the
87 repositories that RhodeCode is hosting. See PublishingRepositories_)
87 repositories that RhodeCode is hosting. See PublishingRepositories_)
88
88
89 RhodeCode repository structures are kept in directories with the same name
89 RhodeCode repository structures are kept in directories with the same name
90 as the project. When using repository groups, each group is a subdirectory.
90 as the project. When using repository groups, each group is a subdirectory.
91 This allows you to easily use ssh for accessing repositories.
91 This allows you to easily use ssh for accessing repositories.
92
92
93 In order to use ssh you need to make sure that your web-server and the users
93 In order to use ssh you need to make sure that your web-server and the users
94 login accounts have the correct permissions set on the appropriate directories.
94 login accounts have the correct permissions set on the appropriate directories.
95 (Note that these permissions are independent of any permissions you have set up
95 (Note that these permissions are independent of any permissions you have set up
96 using the RhodeCode web interface.)
96 using the RhodeCode web interface.)
97
97
98 If your main directory (the same as set in RhodeCode settings) is for example
98 If your main directory (the same as set in RhodeCode settings) is for example
99 set to **/home/hg** and the repository you are using is named `rhodecode`, then
99 set to **/home/hg** and the repository you are using is named `rhodecode`, 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/home/hg/rhodecode
102 hg clone ssh://user@server.com/home/hg/rhodecode
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.
106
106
107 Note: In an advanced setup, in order for your ssh access to use the same
107 Note: In an advanced setup, in order for your ssh access to use the same
108 permissions as set up via the RhodeCode web interface, you can create an
108 permissions as set up via the RhodeCode web interface, you can create an
109 authentication hook to connect to the rhodecode db and runs check functions for
109 authentication hook to connect to the rhodecode db and runs check functions for
110 permissions against that.
110 permissions against that.
111
111
112 Setting up Whoosh full text search
112 Setting up Whoosh full text search
113 ----------------------------------
113 ----------------------------------
114
114
115 Starting from version 1.1 the whoosh index can be build by using the paster
115 Starting from version 1.1 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 RhodeCode database. This was required prior to 1.2. Starting from
119 from the RhodeCode database. This was required prior to 1.2. Starting from
120 version 1.2 it is also possible to specify a comma separated list of
120 version 1.2 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
124 You may optionally pass the option `-f` to enable a full index rebuild. Without
124 You may optionally pass the option `-f` to enable a full index rebuild. Without
125 the `-f` option, indexing will run always in "incremental" mode.
125 the `-f` option, indexing will run always in "incremental" mode.
126
126
127 For an incremental index build use::
127 For an incremental index build use::
128
128
129 paster make-index production.ini
129 paster make-index production.ini
130
130
131 For a full index rebuild use::
131 For a full index rebuild use::
132
132
133 paster make-index production.ini -f
133 paster make-index production.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 production.ini --index-only=vcs,rhodecode
138 paster make-index production.ini --index-only=vcs,rhodecode
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/rhodecode/production.ini
145 /path/to/python/bin/paster make-index /path/to/rhodecode/production.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
149 available. The indexing daemon checks for any removed files and removes them
149 available. The indexing daemon checks for any removed files and removes them
150 from index.
150 from index.
151
151
152 If you want to rebuild index from scratch, you can use the `-f` flag as above,
152 If you want to rebuild index from scratch, you can use the `-f` flag as above,
153 or in the admin panel you can check `build from scratch` flag.
153 or in the admin panel you can check `build from scratch` flag.
154
154
155
155
156 Setting up LDAP support
156 Setting up LDAP support
157 -----------------------
157 -----------------------
158
158
159 RhodeCode starting from version 1.1 supports ldap authentication. In order
159 RhodeCode starting from version 1.1 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::
163 using easy_install::
164
164
165 easy_install python-ldap
165 easy_install python-ldap
166
166
167 using pip::
167 using pip::
168
168
169 pip install python-ldap
169 pip install python-ldap
170
170
171 .. note::
171 .. note::
172 python-ldap requires some certain libs on your system, so before installing
172 python-ldap requires some certain libs on your system, so before installing
173 it check that you have at least `openldap`, and `sasl` libraries.
173 it check that you have at least `openldap`, and `sasl` libraries.
174
174
175 LDAP settings are located in admin->ldap section,
175 LDAP settings are located in admin->ldap section,
176
176
177 Here's a typical ldap setup::
177 Here's a typical ldap setup::
178
178
179 Connection settings
179 Connection settings
180 Enable LDAP = checked
180 Enable LDAP = checked
181 Host = host.example.org
181 Host = host.example.org
182 Port = 389
182 Port = 389
183 Account = <account>
183 Account = <account>
184 Password = <password>
184 Password = <password>
185 Connection Security = LDAPS connection
185 Connection Security = LDAPS connection
186 Certificate Checks = DEMAND
186 Certificate Checks = DEMAND
187
187
188 Search settings
188 Search settings
189 Base DN = CN=users,DC=host,DC=example,DC=org
189 Base DN = CN=users,DC=host,DC=example,DC=org
190 LDAP Filter = (&(objectClass=user)(!(objectClass=computer)))
190 LDAP Filter = (&(objectClass=user)(!(objectClass=computer)))
191 LDAP Search Scope = SUBTREE
191 LDAP Search Scope = SUBTREE
192
192
193 Attribute mappings
193 Attribute mappings
194 Login Attribute = uid
194 Login Attribute = uid
195 First Name Attribute = firstName
195 First Name Attribute = firstName
196 Last Name Attribute = lastName
196 Last Name Attribute = lastName
197 E-mail Attribute = mail
197 E-mail Attribute = mail
198
198
199 .. _enable_ldap:
199 .. _enable_ldap:
200
200
201 Enable LDAP : required
201 Enable LDAP : required
202 Whether to use LDAP for authenticating users.
202 Whether to use LDAP for authenticating users.
203
203
204 .. _ldap_host:
204 .. _ldap_host:
205
205
206 Host : required
206 Host : required
207 LDAP server hostname or IP address.
207 LDAP server hostname or IP address.
208
208
209 .. _Port:
209 .. _Port:
210
210
211 Port : required
211 Port : required
212 389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
212 389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
213
213
214 .. _ldap_account:
214 .. _ldap_account:
215
215
216 Account : optional
216 Account : optional
217 Only required if the LDAP server does not allow anonymous browsing of
217 Only required if the LDAP server does not allow anonymous browsing of
218 records. This should be a special account for record browsing. This
218 records. This should be a special account for record browsing. This
219 will require `LDAP Password`_ below.
219 will require `LDAP Password`_ below.
220
220
221 .. _LDAP Password:
221 .. _LDAP Password:
222
222
223 Password : optional
223 Password : optional
224 Only required if the LDAP server does not allow anonymous browsing of
224 Only required if the LDAP server does not allow anonymous browsing of
225 records.
225 records.
226
226
227 .. _Enable LDAPS:
227 .. _Enable LDAPS:
228
228
229 Connection Security : required
229 Connection Security : required
230 Defines the connection to LDAP server
230 Defines the connection to LDAP server
231
231
232 No encryption
232 No encryption
233 Plain non encrypted connection
233 Plain non encrypted connection
234
234
235 LDAPS connection
235 LDAPS connection
236 Enable ldaps connection. It will likely require `Port`_ to be set to
236 Enable ldaps connection. It will likely require `Port`_ to be set to
237 a different value (standard LDAPS port is 636). When LDAPS is enabled
237 a different value (standard LDAPS port is 636). When LDAPS is enabled
238 then `Certificate Checks`_ is required.
238 then `Certificate Checks`_ is required.
239
239
240 START_TLS on LDAP connection
240 START_TLS on LDAP connection
241 START TLS connection
241 START TLS connection
242
242
243 .. _Certificate Checks:
243 .. _Certificate Checks:
244
244
245 Certificate Checks : optional
245 Certificate Checks : optional
246 How SSL certificates verification is handled - this is only useful when
246 How SSL certificates verification is handled - this is only useful when
247 `Enable LDAPS`_ is enabled. Only DEMAND or HARD offer full SSL security
247 `Enable LDAPS`_ is enabled. Only DEMAND or HARD offer full SSL security
248 while the other options are susceptible to man-in-the-middle attacks. SSL
248 while the other options are susceptible to man-in-the-middle attacks. SSL
249 certificates can be installed to /etc/openldap/cacerts so that the
249 certificates can be installed to /etc/openldap/cacerts so that the
250 DEMAND or HARD options can be used with self-signed certificates or
250 DEMAND or HARD options can be used with self-signed certificates or
251 certificates that do not have traceable certificates of authority.
251 certificates that do not have traceable certificates of authority.
252
252
253 NEVER
253 NEVER
254 A serve certificate will never be requested or checked.
254 A serve certificate will never be requested or checked.
255
255
256 ALLOW
256 ALLOW
257 A server certificate is requested. Failure to provide a
257 A server certificate is requested. Failure to provide a
258 certificate or providing a bad certificate will not terminate the
258 certificate or providing a bad certificate will not terminate the
259 session.
259 session.
260
260
261 TRY
261 TRY
262 A server certificate is requested. Failure to provide a
262 A server certificate is requested. Failure to provide a
263 certificate does not halt the session; providing a bad certificate
263 certificate does not halt the session; providing a bad certificate
264 halts the session.
264 halts the session.
265
265
266 DEMAND
266 DEMAND
267 A server certificate is requested and must be provided and
267 A server certificate is requested and must be provided and
268 authenticated for the session to proceed.
268 authenticated for the session to proceed.
269
269
270 HARD
270 HARD
271 The same as DEMAND.
271 The same as DEMAND.
272
272
273 .. _Base DN:
273 .. _Base DN:
274
274
275 Base DN : required
275 Base DN : required
276 The Distinguished Name (DN) where searches for users will be performed.
276 The Distinguished Name (DN) where searches for users will be performed.
277 Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
277 Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
278
278
279 .. _LDAP Filter:
279 .. _LDAP Filter:
280
280
281 LDAP Filter : optional
281 LDAP Filter : optional
282 A LDAP filter defined by RFC 2254. This is more useful when `LDAP
282 A LDAP filter defined by RFC 2254. This is more useful when `LDAP
283 Search Scope`_ is set to SUBTREE. The filter is useful for limiting
283 Search Scope`_ is set to SUBTREE. The filter is useful for limiting
284 which LDAP objects are identified as representing Users for
284 which LDAP objects are identified as representing Users for
285 authentication. The filter is augmented by `Login Attribute`_ below.
285 authentication. The filter is augmented by `Login Attribute`_ below.
286 This can commonly be left blank.
286 This can commonly be left blank.
287
287
288 .. _LDAP Search Scope:
288 .. _LDAP Search Scope:
289
289
290 LDAP Search Scope : required
290 LDAP Search Scope : required
291 This limits how far LDAP will search for a matching object.
291 This limits how far LDAP will search for a matching object.
292
292
293 BASE
293 BASE
294 Only allows searching of `Base DN`_ and is usually not what you
294 Only allows searching of `Base DN`_ and is usually not what you
295 want.
295 want.
296
296
297 ONELEVEL
297 ONELEVEL
298 Searches all entries under `Base DN`_, but not Base DN itself.
298 Searches all entries under `Base DN`_, but not Base DN itself.
299
299
300 SUBTREE
300 SUBTREE
301 Searches all entries below `Base DN`_, but not Base DN itself.
301 Searches all entries below `Base DN`_, but not Base DN itself.
302 When using SUBTREE `LDAP Filter`_ is useful to limit object
302 When using SUBTREE `LDAP Filter`_ is useful to limit object
303 location.
303 location.
304
304
305 .. _Login Attribute:
305 .. _Login Attribute:
306
306
307 Login Attribute : required
307 Login Attribute : required
308 The LDAP record attribute that will be matched as the USERNAME or
308 The LDAP record attribute that will be matched as the USERNAME or
309 ACCOUNT used to connect to RhodeCode. This will be added to `LDAP
309 ACCOUNT used to connect to RhodeCode. This will be added to `LDAP
310 Filter`_ for locating the User object. If `LDAP Filter`_ is specified as
310 Filter`_ for locating the User object. If `LDAP Filter`_ is specified as
311 "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
311 "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
312 connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
312 connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
313 ::
313 ::
314
314
315 (&(LDAPFILTER)(uid=jsmith))
315 (&(LDAPFILTER)(uid=jsmith))
316
316
317 .. _ldap_attr_firstname:
317 .. _ldap_attr_firstname:
318
318
319 First Name Attribute : required
319 First Name Attribute : required
320 The LDAP record attribute which represents the user's first name.
320 The LDAP record attribute which represents the user's first name.
321
321
322 .. _ldap_attr_lastname:
322 .. _ldap_attr_lastname:
323
323
324 Last Name Attribute : required
324 Last Name Attribute : required
325 The LDAP record attribute which represents the user's last name.
325 The LDAP record attribute which represents the user's last name.
326
326
327 .. _ldap_attr_email:
327 .. _ldap_attr_email:
328
328
329 Email Attribute : required
329 Email Attribute : required
330 The LDAP record attribute which represents the user's email address.
330 The LDAP record attribute which represents the user's email address.
331
331
332 If all data are entered correctly, and python-ldap_ is properly installed
332 If all data are entered correctly, and python-ldap_ is properly installed
333 users should be granted access to RhodeCode with ldap accounts. At this
333 users should be granted access to RhodeCode with ldap accounts. At this
334 time user information is copied from LDAP into the RhodeCode user database.
334 time user information is copied from LDAP into the RhodeCode user database.
335 This means that updates of an LDAP user object may not be reflected as a
335 This means that updates of an LDAP user object may not be reflected as a
336 user update in RhodeCode.
336 user update in RhodeCode.
337
337
338 If You have problems with LDAP access and believe You entered correct
338 If You have problems with LDAP access and believe You entered correct
339 information check out the RhodeCode logs, any error messages sent from LDAP
339 information check out the RhodeCode logs, any error messages sent from LDAP
340 will be saved there.
340 will be saved there.
341
341
342 Active Directory
342 Active Directory
343 ''''''''''''''''
343 ''''''''''''''''
344
344
345 RhodeCode can use Microsoft Active Directory for user authentication. This
345 RhodeCode can use Microsoft Active Directory for user authentication. This
346 is done through an LDAP or LDAPS connection to Active Directory. The
346 is done through an LDAP or LDAPS connection to Active Directory. The
347 following LDAP configuration settings are typical for using Active
347 following LDAP configuration settings are typical for using Active
348 Directory ::
348 Directory ::
349
349
350 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
350 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
351 Login Attribute = sAMAccountName
351 Login Attribute = sAMAccountName
352 First Name Attribute = givenName
352 First Name Attribute = givenName
353 Last Name Attribute = sn
353 Last Name Attribute = sn
354 E-mail Attribute = mail
354 E-mail Attribute = mail
355
355
356 All other LDAP settings will likely be site-specific and should be
356 All other LDAP settings will likely be site-specific and should be
357 appropriately configured.
357 appropriately configured.
358
358
359
359
360 Authentication by container or reverse-proxy
360 Authentication by container or reverse-proxy
361 --------------------------------------------
361 --------------------------------------------
362
362
363 Starting with version 1.3, RhodeCode supports delegating the authentication
363 Starting with version 1.3, RhodeCode supports delegating the authentication
364 of users to its WSGI container, or to a reverse-proxy server through which all
364 of users to its WSGI container, or to a reverse-proxy server through which all
365 clients access the application.
365 clients access the application.
366
366
367 When these authentication methods are enabled in RhodeCode, it uses the
367 When these authentication methods are enabled in RhodeCode, it uses the
368 username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't
368 username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't
369 perform the authentication itself. The authorization, however, is still done by
369 perform the authentication itself. The authorization, however, is still done by
370 RhodeCode according to its settings.
370 RhodeCode according to its settings.
371
371
372 When a user logs in for the first time using these authentication methods,
372 When a user logs in for the first time using these authentication methods,
373 a matching user account is created in RhodeCode with default permissions. An
373 a matching user account is created in RhodeCode with default permissions. An
374 administrator can then modify it using RhodeCode's admin interface.
374 administrator can then modify it using RhodeCode's admin interface.
375 It's also possible for an administrator to create accounts and configure their
375 It's also possible for an administrator to create accounts and configure their
376 permissions before the user logs in for the first time.
376 permissions before the user logs in for the first time.
377
377
378 Container-based authentication
378 Container-based authentication
379 ''''''''''''''''''''''''''''''
379 ''''''''''''''''''''''''''''''
380
380
381 In a container-based authentication setup, RhodeCode reads the user name from
381 In a container-based authentication setup, RhodeCode reads the user name from
382 the ``REMOTE_USER`` server variable provided by the WSGI container.
382 the ``REMOTE_USER`` server variable provided by the WSGI container.
383
383
384 After setting up your container (see `Apache's WSGI config`_), you'd need
384 After setting up your container (see `Apache's WSGI config`_), you'd need
385 to configure it to require authentication on the location configured for
385 to configure it to require authentication on the location configured for
386 RhodeCode.
386 RhodeCode.
387
387
388 In order for RhodeCode to start using the provided username, you should set the
388 In order for RhodeCode to start using the provided username, you should set the
389 following in the [app:main] section of your .ini file::
389 following in the [app:main] section of your .ini file::
390
390
391 container_auth_enabled = true
391 container_auth_enabled = true
392
392
393
393
394 Proxy pass-through authentication
394 Proxy pass-through authentication
395 '''''''''''''''''''''''''''''''''
395 '''''''''''''''''''''''''''''''''
396
396
397 In a proxy pass-through authentication setup, RhodeCode reads the user name
397 In a proxy pass-through authentication setup, RhodeCode reads the user name
398 from the ``X-Forwarded-User`` request header, which should be configured to be
398 from the ``X-Forwarded-User`` request header, which should be configured to be
399 sent by the reverse-proxy server.
399 sent by the reverse-proxy server.
400
400
401 After setting up your proxy solution (see `Apache virtual host reverse proxy example`_,
401 After setting up your proxy solution (see `Apache virtual host reverse proxy example`_,
402 `Apache as subdirectory`_ or `Nginx virtual host example`_), you'd need to
402 `Apache as subdirectory`_ or `Nginx virtual host example`_), you'd need to
403 configure the authentication and add the username in a request header named
403 configure the authentication and add the username in a request header named
404 ``X-Forwarded-User``.
404 ``X-Forwarded-User``.
405
405
406 For example, the following config section for Apache sets a subdirectory in a
406 For example, the following config section for Apache sets a subdirectory in a
407 reverse-proxy setup with basic auth::
407 reverse-proxy setup with basic auth::
408
408
409 <Location /<someprefix> >
409 <Location /<someprefix> >
410 ProxyPass http://127.0.0.1:5000/<someprefix>
410 ProxyPass http://127.0.0.1:5000/<someprefix>
411 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
411 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
412 SetEnvIf X-Url-Scheme https HTTPS=1
412 SetEnvIf X-Url-Scheme https HTTPS=1
413
413
414 AuthType Basic
414 AuthType Basic
415 AuthName "RhodeCode authentication"
415 AuthName "RhodeCode authentication"
416 AuthUserFile /home/web/rhodecode/.htpasswd
416 AuthUserFile /home/web/rhodecode/.htpasswd
417 require valid-user
417 require valid-user
418
418
419 RequestHeader unset X-Forwarded-User
419 RequestHeader unset X-Forwarded-User
420
420
421 RewriteEngine On
421 RewriteEngine On
422 RewriteCond %{LA-U:REMOTE_USER} (.+)
422 RewriteCond %{LA-U:REMOTE_USER} (.+)
423 RewriteRule .* - [E=RU:%1]
423 RewriteRule .* - [E=RU:%1]
424 RequestHeader set X-Forwarded-User %{RU}e
424 RequestHeader set X-Forwarded-User %{RU}e
425 </Location>
425 </Location>
426
426
427 In order for RhodeCode to start using the forwarded username, you should set
427 In order for RhodeCode to start using the forwarded username, you should set
428 the following in the [app:main] section of your .ini file::
428 the following in the [app:main] section of your .ini file::
429
429
430 proxypass_auth_enabled = true
430 proxypass_auth_enabled = true
431
431
432 .. note::
432 .. note::
433 If you enable proxy pass-through authentication, make sure your server is
433 If you enable proxy pass-through authentication, make sure your server is
434 only accessible through the proxy. Otherwise, any client would be able to
434 only accessible through the proxy. Otherwise, any client would be able to
435 forge the authentication header and could effectively become authenticated
435 forge the authentication header and could effectively become authenticated
436 using any account of their liking.
436 using any account of their liking.
437
437
438 Integration with Issue trackers
438 Integration with Issue trackers
439 -------------------------------
439 -------------------------------
440
440
441 RhodeCode provides a simple integration with issue trackers. It's possible
441 RhodeCode provides a simple integration with issue trackers. It's possible
442 to define a regular expression that will fetch issue id stored in commit
442 to define a regular expression that will fetch issue id stored in commit
443 messages and replace that with an url to this issue. To enable this simply
443 messages and replace that with an url to this issue. To enable this simply
444 uncomment following variables in the ini file::
444 uncomment following variables in the ini file::
445
445
446 url_pat = (?:^#|\s#)(\w+)
446 url_pat = (?:^#|\s#)(\w+)
447 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
447 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
448 issue_prefix = #
448 issue_prefix = #
449
449
450 `url_pat` is the regular expression that will fetch issues from commit messages.
450 `url_pat` is the regular expression that will fetch issues from commit messages.
451 Default regex will match issues in format of #<number> eg. #300.
451 Default regex will match issues in format of #<number> eg. #300.
452
452
453 Matched issues will be replace with the link specified as `issue_server_link`
453 Matched issues will be replace with the link specified as `issue_server_link`
454 {id} will be replaced with issue id, and {repo} with repository name.
454 {id} will be replaced with issue id, and {repo} with repository name.
455 Since the # is striped `issue_prefix` is added as a prefix to url.
455 Since the # is striped `issue_prefix` is added as a prefix to url.
456 `issue_prefix` can be something different than # if you pass
456 `issue_prefix` can be something different than # if you pass
457 ISSUE- as issue prefix this will generate an url in format::
457 ISSUE- as issue prefix this will generate an url in format::
458
458
459 <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>
459 <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>
460
460
461 Hook management
461 Hook management
462 ---------------
462 ---------------
463
463
464 Hooks can be managed in similar way to this used in .hgrc files.
464 Hooks can be managed in similar way to this used in .hgrc files.
465 To access hooks setting click `advanced setup` on Hooks section of Mercurial
465 To access hooks setting click `advanced setup` on Hooks section of Mercurial
466 Settings in Admin.
466 Settings in Admin.
467
467
468 There are 4 built in hooks that cannot be changed (only enable/disable by
468 There are 4 built in hooks that cannot be changed (only enable/disable by
469 checkboxes on previos section).
469 checkboxes on previos section).
470 To add another custom hook simply fill in first section with
470 To add another custom hook simply fill in first section with
471 <name>.<hook_type> and the second one with hook path. Example hooks
471 <name>.<hook_type> and the second one with hook path. Example hooks
472 can be found at *rhodecode.lib.hooks*.
472 can be found at *rhodecode.lib.hooks*.
473
473
474
474
475 Changing default encoding
475 Changing default encoding
476 -------------------------
476 -------------------------
477
477
478 By default RhodeCode uses utf8 encoding, starting from 1.3 series this
478 By default RhodeCode uses utf8 encoding, starting from 1.3 series this
479 can be changed, simply edit default_encoding in .ini file to desired one.
479 can be changed, simply edit default_encoding in .ini file to desired one.
480 This affects many parts in rhodecode including commiters names, filenames,
480 This affects many parts in rhodecode including commiters names, filenames,
481 encoding of commit messages. In addition RhodeCode can detect if `chardet`
481 encoding of commit messages. In addition RhodeCode can detect if `chardet`
482 library is installed. If `chardet` is detected RhodeCode will fallback to it
482 library is installed. If `chardet` is detected RhodeCode will fallback to it
483 when there are encode/decode errors.
483 when there are encode/decode errors.
484
484
485
485
486 Setting Up Celery
486 Setting Up Celery
487 -----------------
487 -----------------
488
488
489 Since version 1.1 celery is configured by the rhodecode ini configuration files.
489 Since version 1.1 celery is configured by the rhodecode ini configuration files.
490 Simply set use_celery=true in the ini file then add / change the configuration
490 Simply set use_celery=true in the ini file then add / change the configuration
491 variables inside the ini file.
491 variables inside the ini file.
492
492
493 Remember that the ini files use the format with '.' not with '_' like celery.
493 Remember that the ini files use the format with '.' not with '_' like celery.
494 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
494 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
495 the config file.
495 the config file.
496
496
497 In order to start using celery run::
497 In order to start using celery run::
498
498
499 paster celeryd <configfile.ini>
499 paster celeryd <configfile.ini>
500
500
501
501
502 .. note::
502 .. note::
503 Make sure you run this command from the same virtualenv, and with the same
503 Make sure you run this command from the same virtualenv, and with the same
504 user that rhodecode runs.
504 user that rhodecode runs.
505
505
506 HTTPS support
506 HTTPS support
507 -------------
507 -------------
508
508
509 There are two ways to enable https:
509 There are two ways to enable https:
510
510
511 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
511 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
512 recognize this headers and make proper https redirections
512 recognize this headers and make proper https redirections
513 - Alternatively, change the `force_https = true` flag in the ini configuration
513 - Alternatively, change the `force_https = true` flag in the ini configuration
514 to force using https, no headers are needed than to enable https
514 to force using https, no headers are needed than to enable https
515
515
516
516
517 Nginx virtual host example
517 Nginx virtual host example
518 --------------------------
518 --------------------------
519
519
520 Sample config for nginx using proxy::
520 Sample config for nginx using proxy::
521
521
522 upstream rc {
522 upstream rc {
523 server 127.0.0.1:5000;
523 server 127.0.0.1:5000;
524 # add more instances for load balancing
524 # add more instances for load balancing
525 #server 127.0.0.1:5001;
525 #server 127.0.0.1:5001;
526 #server 127.0.0.1:5002;
526 #server 127.0.0.1:5002;
527 }
527 }
528
528
529 server {
529 server {
530 listen 80;
530 listen 80;
531 server_name hg.myserver.com;
531 server_name hg.myserver.com;
532 access_log /var/log/nginx/rhodecode.access.log;
532 access_log /var/log/nginx/rhodecode.access.log;
533 error_log /var/log/nginx/rhodecode.error.log;
533 error_log /var/log/nginx/rhodecode.error.log;
534
534
535 # uncomment if you have nginx with chunking module compiled
535 # uncomment if you have nginx with chunking module compiled
536 # fixes the issues of having to put postBuffer data for large git
536 # fixes the issues of having to put postBuffer data for large git
537 # pushes
537 # pushes
538 #chunkin on;
538 #chunkin on;
539 #error_page 411 = @my_411_error;
539 #error_page 411 = @my_411_error;
540 #location @my_411_error {
540 #location @my_411_error {
541 # chunkin_resume;
541 # chunkin_resume;
542 #}
542 #}
543
543
544 # uncomment if you want to serve static files by nginx
544 # uncomment if you want to serve static files by nginx
545 #root /path/to/installation/rhodecode/public;
545 #root /path/to/installation/rhodecode/public;
546
546
547 location / {
547 location / {
548 try_files $uri @rhode;
548 try_files $uri @rhode;
549 }
549 }
550
550
551 location @rhode {
551 location @rhode {
552 proxy_pass http://rc;
552 proxy_pass http://rc;
553 include /etc/nginx/proxy.conf;
553 include /etc/nginx/proxy.conf;
554 }
554 }
555
555
556 }
556 }
557
557
558 Here's the proxy.conf. It's tuned so it will not timeout on long
558 Here's the proxy.conf. It's tuned so it will not timeout on long
559 pushes or large pushes::
559 pushes or large pushes::
560
560
561 proxy_redirect off;
561 proxy_redirect off;
562 proxy_set_header Host $host;
562 proxy_set_header Host $host;
563 proxy_set_header X-Url-Scheme $scheme;
563 proxy_set_header X-Url-Scheme $scheme;
564 proxy_set_header X-Host $http_host;
564 proxy_set_header X-Host $http_host;
565 proxy_set_header X-Real-IP $remote_addr;
565 proxy_set_header X-Real-IP $remote_addr;
566 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
566 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
567 proxy_set_header Proxy-host $proxy_host;
567 proxy_set_header Proxy-host $proxy_host;
568 client_max_body_size 400m;
568 client_max_body_size 400m;
569 client_body_buffer_size 128k;
569 client_body_buffer_size 128k;
570 proxy_buffering off;
570 proxy_buffering off;
571 proxy_connect_timeout 7200;
571 proxy_connect_timeout 7200;
572 proxy_send_timeout 7200;
572 proxy_send_timeout 7200;
573 proxy_read_timeout 7200;
573 proxy_read_timeout 7200;
574 proxy_buffers 8 32k;
574 proxy_buffers 8 32k;
575
575
576 Also, when using root path with nginx you might set the static files to false
576 Also, when using root path with nginx you might set the static files to false
577 in the production.ini file::
577 in the production.ini file::
578
578
579 [app:main]
579 [app:main]
580 use = egg:rhodecode
580 use = egg:rhodecode
581 full_stack = true
581 full_stack = true
582 static_files = false
582 static_files = false
583 lang=en
583 lang=en
584 cache_dir = %(here)s/data
584 cache_dir = %(here)s/data
585
585
586 In order to not have the statics served by the application. This improves speed.
586 In order to not have the statics served by the application. This improves speed.
587
587
588
588
589 Apache virtual host reverse proxy example
589 Apache virtual host reverse proxy example
590 -----------------------------------------
590 -----------------------------------------
591
591
592 Here is a sample configuration file for apache using proxy::
592 Here is a sample configuration file for apache using proxy::
593
593
594 <VirtualHost *:80>
594 <VirtualHost *:80>
595 ServerName hg.myserver.com
595 ServerName hg.myserver.com
596 ServerAlias hg.myserver.com
596 ServerAlias hg.myserver.com
597
597
598 <Proxy *>
598 <Proxy *>
599 Order allow,deny
599 Order allow,deny
600 Allow from all
600 Allow from all
601 </Proxy>
601 </Proxy>
602
602
603 #important !
603 #important !
604 #Directive to properly generate url (clone url) for pylons
604 #Directive to properly generate url (clone url) for pylons
605 ProxyPreserveHost On
605 ProxyPreserveHost On
606
606
607 #rhodecode instance
607 #rhodecode instance
608 ProxyPass / http://127.0.0.1:5000/
608 ProxyPass / http://127.0.0.1:5000/
609 ProxyPassReverse / http://127.0.0.1:5000/
609 ProxyPassReverse / http://127.0.0.1:5000/
610
610
611 #to enable https use line below
611 #to enable https use line below
612 #SetEnvIf X-Url-Scheme https HTTPS=1
612 #SetEnvIf X-Url-Scheme https HTTPS=1
613
613
614 </VirtualHost>
614 </VirtualHost>
615
615
616
616
617 Additional tutorial
617 Additional tutorial
618 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
618 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
619
619
620
620
621 Apache as subdirectory
621 Apache as subdirectory
622 ----------------------
622 ----------------------
623
623
624 Apache subdirectory part::
624 Apache subdirectory part::
625
625
626 <Location /<someprefix> >
626 <Location /<someprefix> >
627 ProxyPass http://127.0.0.1:5000/<someprefix>
627 ProxyPass http://127.0.0.1:5000/<someprefix>
628 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
628 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
629 SetEnvIf X-Url-Scheme https HTTPS=1
629 SetEnvIf X-Url-Scheme https HTTPS=1
630 </Location>
630 </Location>
631
631
632 Besides the regular apache setup you will need to add the following line
632 Besides the regular apache setup you will need to add the following line
633 into [app:main] section of your .ini file::
633 into [app:main] section of your .ini file::
634
634
635 filter-with = proxy-prefix
635 filter-with = proxy-prefix
636
636
637 Add the following at the end of the .ini file::
637 Add the following at the end of the .ini file::
638
638
639 [filter:proxy-prefix]
639 [filter:proxy-prefix]
640 use = egg:PasteDeploy#prefix
640 use = egg:PasteDeploy#prefix
641 prefix = /<someprefix>
641 prefix = /<someprefix>
642
642
643
643
644 then change <someprefix> into your choosen prefix
644 then change <someprefix> into your choosen prefix
645
645
646 Apache's WSGI config
646 Apache's WSGI config
647 --------------------
647 --------------------
648
648
649 Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
649 Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
650 that, you'll need to:
650 that, you'll need to:
651
651
652 - Install mod_wsgi. If using a Debian-based distro, you can install
652 - Install mod_wsgi. If using a Debian-based distro, you can install
653 the package libapache2-mod-wsgi::
653 the package libapache2-mod-wsgi::
654
654
655 aptitude install libapache2-mod-wsgi
655 aptitude install libapache2-mod-wsgi
656
656
657 - Enable mod_wsgi::
657 - Enable mod_wsgi::
658
658
659 a2enmod wsgi
659 a2enmod wsgi
660
660
661 - Create a wsgi dispatch script, like the one below. Make sure you
661 - Create a wsgi dispatch script, like the one below. Make sure you
662 check the paths correctly point to where you installed RhodeCode
662 check the paths correctly point to where you installed RhodeCode
663 and its Python Virtual Environment.
663 and its Python Virtual Environment.
664 - Enable the WSGIScriptAlias directive for the wsgi dispatch script,
664 - Enable the WSGIScriptAlias directive for the wsgi dispatch script,
665 as in the following example. Once again, check the paths are
665 as in the following example. Once again, check the paths are
666 correctly specified.
666 correctly specified.
667
667
668 Here is a sample excerpt from an Apache Virtual Host configuration file::
668 Here is a sample excerpt from an Apache Virtual Host configuration file::
669
669
670 WSGIDaemonProcess pylons user=www-data group=www-data processes=1 \
670 WSGIDaemonProcess pylons \
671 threads=4 \
671 threads=4 \
672 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
672 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
673 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
673 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
674 WSGIPassAuthorization On
674 WSGIPassAuthorization On
675
675
676 .. note::
677 when running apache as root please add: `user=www-data group=www-data`
678 into above configuration
679
680 .. note::
681 RhodeCode cannot be runned in multiprocess mode in apache, make sure
682 you don't specify `processes=num` directive in the config
683
684
676 Example wsgi dispatch script::
685 Example wsgi dispatch script::
677
686
678 import os
687 import os
679 os.environ["HGENCODING"] = "UTF-8"
688 os.environ["HGENCODING"] = "UTF-8"
680 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
689 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
681
690
682 # sometimes it's needed to set the curent dir
691 # sometimes it's needed to set the curent dir
683 os.chdir('/home/web/rhodecode/')
692 os.chdir('/home/web/rhodecode/')
684
693
685 import site
694 import site
686 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
695 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
687
696
688 from paste.deploy import loadapp
697 from paste.deploy import loadapp
689 from paste.script.util.logging_config import fileConfig
698 from paste.script.util.logging_config import fileConfig
690
699
691 fileConfig('/home/web/rhodecode/production.ini')
700 fileConfig('/home/web/rhodecode/production.ini')
692 application = loadapp('config:/home/web/rhodecode/production.ini')
701 application = loadapp('config:/home/web/rhodecode/production.ini')
693
702
694 Note: when using mod_wsgi you'll need to install the same version of
703 Note: when using mod_wsgi you'll need to install the same version of
695 Mercurial that's inside RhodeCode's virtualenv also on the system's Python
704 Mercurial that's inside RhodeCode's virtualenv also on the system's Python
696 environment.
705 environment.
697
706
698
707
699 Other configuration files
708 Other configuration files
700 -------------------------
709 -------------------------
701
710
702 Some example init.d scripts can be found in init.d directory::
711 Some example init.d scripts can be found in init.d directory::
703
712
704 https://secure.rhodecode.org/rhodecode/files/beta/init.d
713 https://secure.rhodecode.org/rhodecode/files/beta/init.d
705
714
706 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
715 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
707 .. _python: http://www.python.org/
716 .. _python: http://www.python.org/
708 .. _mercurial: http://mercurial.selenic.com/
717 .. _mercurial: http://mercurial.selenic.com/
709 .. _celery: http://celeryproject.org/
718 .. _celery: http://celeryproject.org/
710 .. _rabbitmq: http://www.rabbitmq.com/
719 .. _rabbitmq: http://www.rabbitmq.com/
711 .. _python-ldap: http://www.python-ldap.org/
720 .. _python-ldap: http://www.python-ldap.org/
712 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
721 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
713 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
722 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
714 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
723 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
715 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
724 .. _google group rhodecode: http://groups.google.com/group/rhodecode
General Comments 0
You need to be logged in to leave comments. Login now