The requested changes are too big and content was truncated. Show full diff
@@ -0,0 +1,10 | |||||
|
1 | { | |||
|
2 | "presets": [ | |||
|
3 | ["env", { | |||
|
4 | "targets": { | |||
|
5 | "browsers": ["last 2 versions"] | |||
|
6 | } | |||
|
7 | }] | |||
|
8 | ], | |||
|
9 | "plugins": ["transform-object-rest-spread"] | |||
|
10 | } |
@@ -0,0 +1,44 | |||||
|
1 | .. _integrations-rcextensions: | |||
|
2 | ||||
|
3 | ||||
|
4 | rcextensions integrations | |||
|
5 | ========================= | |||
|
6 | ||||
|
7 | ||||
|
8 | Since RhodeCode 4.14 release rcextensions aren't part of rhodecode-tools, and instead | |||
|
9 | they are shipped with the new or upgraded installations. | |||
|
10 | ||||
|
11 | The rcextensions template `rcextensions.tmpl` is created in the `etc/` directory | |||
|
12 | of enterprise or community installation. It's always re-created and updated on upgrades. | |||
|
13 | ||||
|
14 | ||||
|
15 | Activating rcextensions | |||
|
16 | +++++++++++++++++++++++ | |||
|
17 | ||||
|
18 | To activate rcextensions simply copy or rename the created template rcextensions | |||
|
19 | into the path where the rhodecode.ini file is located:: | |||
|
20 | ||||
|
21 | pushd ~/rccontrol/enterprise-1/ | |||
|
22 | or | |||
|
23 | pushd ~/rccontrol/community-1/ | |||
|
24 | ||||
|
25 | mv etc/rcextensions.tmpl rcextensions | |||
|
26 | ||||
|
27 | ||||
|
28 | rcextensions are loaded when |RCE| starts. So a restart is required after activation or | |||
|
29 | change of code in rcextensions. | |||
|
30 | ||||
|
31 | Simply restart only the enterprise/community instance:: | |||
|
32 | ||||
|
33 | rccontrol restart enterprise-1 | |||
|
34 | or | |||
|
35 | rccontrol restart community-1 | |||
|
36 | ||||
|
37 | ||||
|
38 | Example usage | |||
|
39 | +++++++++++++ | |||
|
40 | ||||
|
41 | ||||
|
42 | To see examples of usage please check the examples directory under: | |||
|
43 | ||||
|
44 | https://code.rhodecode.com/rhodecode-enterprise-ce/files/stable/rhodecode/config/rcextensions/examples |
@@ -0,0 +1,114 | |||||
|
1 | |RCE| 4.14.0 |RNS| | |||
|
2 | ------------------ | |||
|
3 | ||||
|
4 | Release Date | |||
|
5 | ^^^^^^^^^^^^ | |||
|
6 | ||||
|
7 | - 2018-11-02 | |||
|
8 | ||||
|
9 | ||||
|
10 | New Features | |||
|
11 | ^^^^^^^^^^^^ | |||
|
12 | ||||
|
13 | - Diffs: expose range diff inside the PR view. It's now possible to show | |||
|
14 | commit-per-commit view of changes in pull request. | |||
|
15 | - Diffs: new sticky context bar. | |||
|
16 | When browsing diffs we show file path of the current diff so users are aware all the time | |||
|
17 | what file they are reviewing. | |||
|
18 | - Diffs: added quick file selector in diffs views. Now it's possible to select a file | |||
|
19 | in large diffs from the sticky header for quicker access to certain interesting files | |||
|
20 | in diffs. | |||
|
21 | - Diffs: introducing diff menu for whitespace toggle and context changes. | |||
|
22 | It's now possible to show/hide whitespace changes and toggle the file context in | |||
|
23 | all diff places including pull requests. | |||
|
24 | - Comments: allow commenting on empty files without content. | |||
|
25 | - Repositories: added option to archive repositories instead of deleting them. | |||
|
26 | Archived repositories are useful for future auditing, but they are read-only. | |||
|
27 | - rcextensions: new rcextensions. We're introducing new `rcextensions` that will be base | |||
|
28 | for future low-level integrations. It's now possible to expose nice messages back | |||
|
29 | to the users when using `rcextensions`. | |||
|
30 | - Summary page: slightly re-organize summary page for better user experience. | |||
|
31 | ||||
|
32 | ||||
|
33 | General | |||
|
34 | ^^^^^^^ | |||
|
35 | ||||
|
36 | - Mailing: switched from custom library to pyramid_mailer with python3 compatibility. | |||
|
37 | - Frontend: Switched to Polymer 3.0. | |||
|
38 | - Frontend: fixed problems with IE11 and brought back support for that browser. | |||
|
39 | - Git: use a fetch_sync based creation of remote repositories. | |||
|
40 | This fixes problems with importing from Bitbucket. | |||
|
41 | - Comments: update comments email templates. | |||
|
42 | - Packaging: only wrap external dependency scripts. This makes execution of scripts | |||
|
43 | roughly 5x faster due to much smaller PATH tree. | |||
|
44 | - HTTP: use application wide detection of invalid bytes sent via URL/GET/POST data. | |||
|
45 | - Fonts/UI: use consistent fonts across the whole application. | |||
|
46 | Few places had non-standard custom fonts. | |||
|
47 | - Google: updated google auth plugin with latest API changes. | |||
|
48 | - Core: handle edge case requesting matched routes but with hg/svn/git or api context. | |||
|
49 | - Dependencies: bumped rhodecode-tools to 1.0.0 release using Apache2 license. | |||
|
50 | - Dependencies: atomicwrites==1.2.1 | |||
|
51 | - Dependencies: attrs==18.2.0 | |||
|
52 | - Dependencies: dogpile.cache==0.6.7 | |||
|
53 | - Dependencies: psutil==5.4.7 | |||
|
54 | - Dependencies: pathlib2==2.3.2 | |||
|
55 | - Dependencies: subprocess32==3.5.2 | |||
|
56 | - Dependencies: gevent==1.3.6 | |||
|
57 | - Dependencies: greenlet==0.4.15 | |||
|
58 | - Dependencies: pytest==3.8.2 | |||
|
59 | - Dependencies: py==1.6.0 | |||
|
60 | - Dependencies: pytest-cov==2.6.0 | |||
|
61 | - Dependencies: pytest-timeout==1.3.2 | |||
|
62 | - Dependencies: coverage==4.5.1 | |||
|
63 | - Dependencies: psycopg2==2.7.5 | |||
|
64 | ||||
|
65 | ||||
|
66 | Security | |||
|
67 | ^^^^^^^^ | |||
|
68 | ||||
|
69 | - RST: improve Javascript RST sandbox. | |||
|
70 | - Jupyter: sanitize markdown cells similar as we do for our own markdown cleanup. | |||
|
71 | ||||
|
72 | ||||
|
73 | Performance | |||
|
74 | ^^^^^^^^^^^ | |||
|
75 | ||||
|
76 | - SSH: improved SSH wrapper execution speed by using optimized binary script wrapping. | |||
|
77 | - Core: reduced font and JavaScript load times. | |||
|
78 | ||||
|
79 | ||||
|
80 | Fixes | |||
|
81 | ^^^^^ | |||
|
82 | ||||
|
83 | - Comments: ensure we always display unmatched comments. | |||
|
84 | - Branch Permissions: fixed changing rule order for branch permissions. | |||
|
85 | - Users: ensure get_first_superadmin actually gets the 1st created super-admin. | |||
|
86 | - Users: when deleting users ensure we also clear personal flag. | |||
|
87 | This fixes some problems with multiple personal groups. | |||
|
88 | - Diffs: disable the error border on highlight errors. | |||
|
89 | - Integrations: implement retry to HTTP[S] calls for integrations. | |||
|
90 | Web parts will do a 3x retry call in case service is not reachable or | |||
|
91 | responds with 5XX codes. | |||
|
92 | - Git: fixed pull-request updates in case branch names are the same as the file names. | |||
|
93 | - Supervisor: add patch for older kernel support. | |||
|
94 | - Compare: fixed file after/before links in compare view for cross repo compare. | |||
|
95 | - Emails: improve fonts and rendering of email HTML. | |||
|
96 | - Permissions: flush members of user groups permissions to clear caches. | |||
|
97 | - Repository: add check preventing of removal of repo with attached pull requests. Users | |||
|
98 | should use the new archive repo function instead. | |||
|
99 | ||||
|
100 | ||||
|
101 | Upgrade notes | |||
|
102 | ^^^^^^^^^^^^^ | |||
|
103 | ||||
|
104 | - In this release, we're shipping a new `rcextensions`. The changes made are | |||
|
105 | backward incompatible. An update of `rcextensions` is required | |||
|
106 | prior to using them again. Please check the new `rcextensions.tmpl` directory | |||
|
107 | located in `etc/rcextensions.tmpl` in your instance installation path. | |||
|
108 | Old code should be 100% portable by just copy&paste to the right function. | |||
|
109 | ||||
|
110 | - Mailing: We introduced a new mailing library. The older options should be compatible and | |||
|
111 | generally, old configuration doesn't need any changes in order to send emails. | |||
|
112 | We, however, encourage users to re-check mailing setup in case of some more | |||
|
113 | sophisticated email setups. | |||
|
114 | There's a possibility to send a test email from admin > settings > email section. |
@@ -0,0 +1,16 | |||||
|
1 | diff -rup supervisor-3.3.4-orig/supervisor/options.py supervisor-3.3.4/supervisor/options.py | |||
|
2 | --- supervisor-3.3.4-orig/supervisor/options.py 1970-01-01 01:00:01.000000000 +0100 | |||
|
3 | +++ supervisor-3.3.4/supervisor-new/options.py 2018-10-24 10:53:19.368503735 +0200 | |||
|
4 | @@ -1395,7 +1395,11 @@ class ServerOptions(Options): | |||
|
5 | name = limit['name'] | |||
|
6 | name = name # name is used below by locals() | |||
|
7 | ||||
|
8 | - soft, hard = resource.getrlimit(res) | |||
|
9 | + try: | |||
|
10 | + soft, hard = resource.getrlimit(res) | |||
|
11 | + except Exception: | |||
|
12 | + # handle old kernel problems, this is not critical to execute | |||
|
13 | + soft, hard = -1, -1 | |||
|
14 | ||||
|
15 | if (soft < min) and (soft != -1): # -1 means unlimited | |||
|
16 | if (hard < min) and (hard != -1): |
@@ -0,0 +1,3 | |||||
|
1 | ## special libraries we could extend the requirements.txt file with to add some | |||
|
2 | ## custom libraries usefull for debug and memory tracing | |||
|
3 | objgraph==3.1.1 |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
@@ -1,5 +1,5 | |||||
1 | [bumpversion] |
|
1 | [bumpversion] | |
2 |
current_version = 4.1 |
|
2 | current_version = 4.14.0 | |
3 | message = release: Bump version {current_version} to {new_version} |
|
3 | message = release: Bump version {current_version} to {new_version} | |
4 |
|
4 | |||
5 | [bumpversion:file:rhodecode/VERSION] |
|
5 | [bumpversion:file:rhodecode/VERSION] |
@@ -24,7 +24,6 syntax: regexp | |||||
24 | ^.dev |
|
24 | ^.dev | |
25 | ^._dev |
|
25 | ^._dev | |
26 | ^build/ |
|
26 | ^build/ | |
27 | ^bower_components/ |
|
|||
28 | ^coverage\.xml$ |
|
27 | ^coverage\.xml$ | |
29 | ^data$ |
|
28 | ^data$ | |
30 | ^\.eggs/ |
|
29 | ^\.eggs/ | |
@@ -36,14 +35,15 syntax: regexp | |||||
36 | ^htmlcov |
|
35 | ^htmlcov | |
37 | ^junit\.xml$ |
|
36 | ^junit\.xml$ | |
38 | ^node_modules/ |
|
37 | ^node_modules/ | |
|
38 | ^node_binaries/ | |||
39 | ^pylint.log$ |
|
39 | ^pylint.log$ | |
40 | ^rcextensions/ |
|
40 | ^rcextensions/ | |
41 | ^result$ |
|
41 | ^result$ | |
42 | ^rhodecode/public/css/style.css$ |
|
42 | ^rhodecode/public/css/style.css$ | |
43 | ^rhodecode/public/css/style-polymer.css$ |
|
43 | ^rhodecode/public/css/style-polymer.css$ | |
44 | ^rhodecode/public/js/rhodecode-components.html$ |
|
44 | ^rhodecode/public/js/rhodecode-components.html$ | |
|
45 | ^rhodecode/public/js/rhodecode-components.js$ | |||
45 | ^rhodecode/public/js/scripts.js$ |
|
46 | ^rhodecode/public/js/scripts.js$ | |
46 | ^rhodecode/public/js/rhodecode-components.js$ |
|
|||
47 | ^rhodecode/public/js/src/components/root-styles.gen.html$ |
|
47 | ^rhodecode/public/js/src/components/root-styles.gen.html$ | |
48 | ^rhodecode/public/js/vendors/webcomponentsjs/ |
|
48 | ^rhodecode/public/js/vendors/webcomponentsjs/ | |
49 | ^rhodecode\.db$ |
|
49 | ^rhodecode\.db$ |
@@ -5,25 +5,20 done = false | |||||
5 | done = true |
|
5 | done = true | |
6 |
|
6 | |||
7 | [task:rc_tools_pinned] |
|
7 | [task:rc_tools_pinned] | |
8 | done = true |
|
|||
9 |
|
8 | |||
10 | [task:fixes_on_stable] |
|
9 | [task:fixes_on_stable] | |
11 | done = true |
|
|||
12 |
|
10 | |||
13 | [task:pip2nix_generated] |
|
11 | [task:pip2nix_generated] | |
14 | done = true |
|
|||
15 |
|
12 | |||
16 | [task:changelog_updated] |
|
13 | [task:changelog_updated] | |
17 | done = true |
|
|||
18 |
|
14 | |||
19 | [task:generate_api_docs] |
|
15 | [task:generate_api_docs] | |
20 | done = true |
|
16 | ||
|
17 | [task:updated_translation] | |||
21 |
|
18 | |||
22 | [release] |
|
19 | [release] | |
23 |
state = |
|
20 | state = in_progress | |
24 |
version = 4.1 |
|
21 | version = 4.14.0 | |
25 |
|
||||
26 | [task:updated_translation] |
|
|||
27 |
|
22 | |||
28 | [task:generate_js_routes] |
|
23 | [task:generate_js_routes] | |
29 |
|
24 |
@@ -1,4 +1,12 | |||||
1 | var gruntConfig = require('./grunt_config.json'); |
|
1 | var gruntConfig = require('./grunt_config.json'); | |
|
2 | var webpackConfig = require('./webpack.config'); | |||
|
3 | gruntConfig["webpack"] = { | |||
|
4 | options: { | |||
|
5 | stats: !process.env.NODE_ENV || process.env.NODE_ENV === 'development' | |||
|
6 | }, | |||
|
7 | prod: webpackConfig, | |||
|
8 | dev: Object.assign({ watch: false }, webpackConfig) | |||
|
9 | }; | |||
2 |
|
10 | |||
3 | module.exports = function(grunt) { |
|
11 | module.exports = function(grunt) { | |
4 | grunt.initConfig(gruntConfig); |
|
12 | grunt.initConfig(gruntConfig); | |
@@ -7,9 +15,7 module.exports = function(grunt) { | |||||
7 | grunt.loadNpmTasks('grunt-contrib-concat'); |
|
15 | grunt.loadNpmTasks('grunt-contrib-concat'); | |
8 | grunt.loadNpmTasks('grunt-contrib-watch'); |
|
16 | grunt.loadNpmTasks('grunt-contrib-watch'); | |
9 | grunt.loadNpmTasks('grunt-contrib-jshint'); |
|
17 | grunt.loadNpmTasks('grunt-contrib-jshint'); | |
10 | grunt.loadNpmTasks('grunt-vulcanize'); |
|
|||
11 | grunt.loadNpmTasks('grunt-crisper'); |
|
|||
12 | grunt.loadNpmTasks('grunt-contrib-copy'); |
|
18 | grunt.loadNpmTasks('grunt-contrib-copy'); | |
13 |
|
19 | grunt.loadNpmTasks('grunt-webpack'); | ||
14 |
grunt.registerTask('default', ['less:production', 'less:components', |
|
20 | grunt.registerTask('default', ['less:production', 'less:components', 'copy', 'webpack', 'concat:dist']); | |
15 | }; |
|
21 | }; |
@@ -39,7 +39,6 include rhodecode/public/sounds/*.mp3 | |||||
39 | include rhodecode/public/sounds/*.wav |
|
39 | include rhodecode/public/sounds/*.wav | |
40 |
|
40 | |||
41 | # fonts |
|
41 | # fonts | |
42 | recursive-include rhodecode/public/fonts/ProximaNova * |
|
|||
43 | recursive-include rhodecode/public/fonts/RCIcons * |
|
42 | recursive-include rhodecode/public/fonts/RCIcons * | |
44 |
|
43 | |||
45 | # js |
|
44 | # js |
@@ -1,9 +1,9 | |||||
1 |
|
1 | |||
2 | .PHONY: clean docs docs-clean docs-cleanup test test-clean test-only test-only-postgres test-only-mysql web-build |
|
2 | .PHONY: clean docs docs-clean docs-cleanup test test-clean test-only test-only-postgres test-only-mysql web-build | |
3 |
|
3 | |||
4 | WEBPACK=./node_modules/webpack/bin/webpack.js |
|
|||
5 | GRUNT=grunt |
|
|||
6 | NODE_PATH=./node_modules |
|
4 | NODE_PATH=./node_modules | |
|
5 | WEBPACK=./node_binaries/webpack | |||
|
6 | GRUNT=./node_binaries/grunt | |||
7 |
|
7 | |||
8 |
|
8 | |||
9 | clean: |
|
9 | clean: |
@@ -26,8 +26,6 debug = true | |||||
26 | #smtp_port = |
|
26 | #smtp_port = | |
27 | #smtp_use_tls = false |
|
27 | #smtp_use_tls = false | |
28 | #smtp_use_ssl = true |
|
28 | #smtp_use_ssl = true | |
29 | ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.) |
|
|||
30 | #smtp_auth = |
|
|||
31 |
|
29 | |||
32 | [server:main] |
|
30 | [server:main] | |
33 | ## COMMON ## |
|
31 | ## COMMON ## | |
@@ -281,8 +279,10 supervisor.group_id = dev | |||||
281 | ## Display extended labs settings |
|
279 | ## Display extended labs settings | |
282 | labs_settings_active = true |
|
280 | labs_settings_active = true | |
283 |
|
281 | |||
284 |
## |
|
282 | ## Custom exception store path, defaults to TMPDIR | |
285 | exception_tracker.store_path = |
|
283 | ## This is used to store exception from RhodeCode in shared directory | |
|
284 | #exception_tracker.store_path = | |||
|
285 | ||||
286 |
|
286 | |||
287 | #################################### |
|
287 | #################################### | |
288 | ### CELERY CONFIG #### |
|
288 | ### CELERY CONFIG #### | |
@@ -506,7 +506,7 debug_style = true | |||||
506 | ########################################### |
|
506 | ########################################### | |
507 | #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30 |
|
507 | #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30 | |
508 | #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode |
|
508 | #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode | |
509 | #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode |
|
509 | #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8 | |
510 | # pymysql is an alternative driver for MySQL, use in case of problems with default one |
|
510 | # pymysql is an alternative driver for MySQL, use in case of problems with default one | |
511 | #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode |
|
511 | #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode | |
512 |
|
512 |
@@ -26,8 +26,6 debug = true | |||||
26 | #smtp_port = |
|
26 | #smtp_port = | |
27 | #smtp_use_tls = false |
|
27 | #smtp_use_tls = false | |
28 | #smtp_use_ssl = true |
|
28 | #smtp_use_ssl = true | |
29 | ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.) |
|
|||
30 | #smtp_auth = |
|
|||
31 |
|
29 | |||
32 | [server:main] |
|
30 | [server:main] | |
33 | ## COMMON ## |
|
31 | ## COMMON ## | |
@@ -256,8 +254,9 supervisor.group_id = prod | |||||
256 | ## Display extended labs settings |
|
254 | ## Display extended labs settings | |
257 | labs_settings_active = true |
|
255 | labs_settings_active = true | |
258 |
|
256 | |||
259 |
## |
|
257 | ## Custom exception store path, defaults to TMPDIR | |
260 | exception_tracker.store_path = |
|
258 | ## This is used to store exception from RhodeCode in shared directory | |
|
259 | #exception_tracker.store_path = | |||
261 |
|
260 | |||
262 |
|
261 | |||
263 | #################################### |
|
262 | #################################### | |
@@ -480,7 +479,7 set debug = false | |||||
480 | ########################################### |
|
479 | ########################################### | |
481 | #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30 |
|
480 | #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30 | |
482 | #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode |
|
481 | #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode | |
483 | #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode |
|
482 | #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8 | |
484 | # pymysql is an alternative driver for MySQL, use in case of problems with default one |
|
483 | # pymysql is an alternative driver for MySQL, use in case of problems with default one | |
485 | #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode |
|
484 | #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode | |
486 |
|
485 |
@@ -9,7 +9,7 | |||||
9 | # { |
|
9 | # { | |
10 | # # Thoughts on how to configure the dev environment |
|
10 | # # Thoughts on how to configure the dev environment | |
11 | # rc = { |
|
11 | # rc = { | |
12 |
# codeInternalUrl = "https://usr:token@ |
|
12 | # codeInternalUrl = "https://usr:token@code.rhodecode.com/internal"; | |
13 | # sources = { |
|
13 | # sources = { | |
14 | # rhodecode-vcsserver = "/home/user/work/rhodecode-vcsserver"; |
|
14 | # rhodecode-vcsserver = "/home/user/work/rhodecode-vcsserver"; | |
15 | # rhodecode-enterprise-ce = "/home/user/work/rhodecode-enterprise-ce"; |
|
15 | # rhodecode-enterprise-ce = "/home/user/work/rhodecode-enterprise-ce"; | |
@@ -26,10 +26,18 args@ | |||||
26 | }: |
|
26 | }: | |
27 |
|
27 | |||
28 | let |
|
28 | let | |
29 | # Use nixpkgs from args or import them. We use this indirect approach |
|
29 | pkgs_ = (import <nixpkgs> {}); | |
30 | # through args to be able to use the name `pkgs` for our customized packages. |
|
30 | in | |
31 | # Otherwise we will end up with an infinite recursion. |
|
31 | ||
32 | pkgs = args.pkgs or (import <nixpkgs> { }); |
|
32 | let | |
|
33 | pkgs = import <nixpkgs> { | |||
|
34 | overlays = [ | |||
|
35 | (import ./pkgs/overlays.nix) | |||
|
36 | ]; | |||
|
37 | inherit | |||
|
38 | (pkgs_) | |||
|
39 | system; | |||
|
40 | }; | |||
33 |
|
41 | |||
34 | # Works with the new python-packages, still can fallback to the old |
|
42 | # Works with the new python-packages, still can fallback to the old | |
35 | # variant. |
|
43 | # variant. | |
@@ -46,7 +54,7 let | |||||
46 | in |
|
54 | in | |
47 | !builtins.elem (basename path) [ |
|
55 | !builtins.elem (basename path) [ | |
48 | ".git" ".hg" "__pycache__" ".eggs" ".idea" ".dev" |
|
56 | ".git" ".hg" "__pycache__" ".eggs" ".idea" ".dev" | |
49 | "bower_components" "node_modules" |
|
57 | "node_modules" "node_binaries" | |
50 | "build" "data" "result" "tmp"] && |
|
58 | "build" "data" "result" "tmp"] && | |
51 | !builtins.elem ext ["egg-info" "pyc"] && |
|
59 | !builtins.elem ext ["egg-info" "pyc"] && | |
52 | # TODO: johbo: This check is wrong, since "path" contains an absolute path, |
|
60 | # TODO: johbo: This check is wrong, since "path" contains an absolute path, | |
@@ -55,7 +63,11 let | |||||
55 |
|
63 | |||
56 | sources = |
|
64 | sources = | |
57 | let |
|
65 | let | |
58 | inherit (pkgs.lib) all isString attrValues; |
|
66 | inherit | |
|
67 | (pkgs.lib) | |||
|
68 | all | |||
|
69 | isString | |||
|
70 | attrValues; | |||
59 | sourcesConfig = pkgs.config.rc.sources or {}; |
|
71 | sourcesConfig = pkgs.config.rc.sources or {}; | |
60 | in |
|
72 | in | |
61 | # Ensure that sources are configured as strings. Using a path |
|
73 | # Ensure that sources are configured as strings. Using a path | |
@@ -66,18 +78,12 let | |||||
66 | version = builtins.readFile "${rhodecode-enterprise-ce-src}/rhodecode/VERSION"; |
|
78 | version = builtins.readFile "${rhodecode-enterprise-ce-src}/rhodecode/VERSION"; | |
67 | rhodecode-enterprise-ce-src = builtins.filterSource src-filter ./.; |
|
79 | rhodecode-enterprise-ce-src = builtins.filterSource src-filter ./.; | |
68 |
|
80 | |||
69 | buildBowerComponents = pkgs.buildBowerComponents; |
|
|||
70 | nodeEnv = import ./pkgs/node-default.nix { |
|
81 | nodeEnv = import ./pkgs/node-default.nix { | |
71 |
inherit |
|
82 | inherit | |
|
83 | pkgs; | |||
72 | }; |
|
84 | }; | |
73 | nodeDependencies = nodeEnv.shell.nodeDependencies; |
|
85 | nodeDependencies = nodeEnv.shell.nodeDependencies; | |
74 |
|
86 | |||
75 | bowerComponents = buildBowerComponents { |
|
|||
76 | name = "enterprise-ce-${version}"; |
|
|||
77 | generated = ./pkgs/bower-packages.nix; |
|
|||
78 | src = rhodecode-enterprise-ce-src; |
|
|||
79 | }; |
|
|||
80 |
|
||||
81 | rhodecode-testdata-src = sources.rhodecode-testdata or ( |
|
87 | rhodecode-testdata-src = sources.rhodecode-testdata or ( | |
82 | pkgs.fetchhg { |
|
88 | pkgs.fetchhg { | |
83 | url = "https://code.rhodecode.com/upstream/rc_testdata"; |
|
89 | url = "https://code.rhodecode.com/upstream/rc_testdata"; | |
@@ -95,23 +101,22 let | |||||
95 | pythonLocalOverrides = self: super: { |
|
101 | pythonLocalOverrides = self: super: { | |
96 | rhodecode-enterprise-ce = |
|
102 | rhodecode-enterprise-ce = | |
97 | let |
|
103 | let | |
98 |
linkNode |
|
104 | linkNodePackages = '' | |
99 | export RHODECODE_CE_PATH=${rhodecode-enterprise-ce-src} |
|
105 | export RHODECODE_CE_PATH=${rhodecode-enterprise-ce-src} | |
100 |
|
106 | |||
101 | echo "[BEGIN]: Link node packages" |
|
107 | echo "[BEGIN]: Link node packages and binaries" | |
102 | rm -fr node_modules |
|
|||
103 | mkdir node_modules |
|
|||
104 | # johbo: Linking individual packages allows us to run "npm install" |
|
108 | # johbo: Linking individual packages allows us to run "npm install" | |
105 | # inside of a shell to try things out. Re-entering the shell will |
|
109 | # inside of a shell to try things out. Re-entering the shell will | |
106 | # restore a clean environment. |
|
110 | # restore a clean environment. | |
|
111 | rm -fr node_modules | |||
|
112 | mkdir node_modules | |||
107 | ln -s ${nodeDependencies}/lib/node_modules/* node_modules/ |
|
113 | ln -s ${nodeDependencies}/lib/node_modules/* node_modules/ | |
108 | echo "[DONE]: Link node packages" |
|
114 | export NODE_PATH=./node_modules | |
109 |
|
115 | |||
110 | echo "[BEGIN]: Link bower packages" |
|
116 | rm -fr node_binaries | |
111 | rm -fr bower_components |
|
117 | mkdir node_binaries | |
112 | mkdir bower_components |
|
118 | ln -s ${nodeDependencies}/bin/* node_binaries/ | |
113 | ln -s ${bowerComponents}/bower_components/* bower_components/ |
|
119 | echo "[DONE ]: Link node packages and binaries" | |
114 | echo "[DONE]: Link bower packages" |
|
|||
115 | ''; |
|
120 | ''; | |
116 |
|
121 | |||
117 | releaseName = "RhodeCodeEnterpriseCE-${version}"; |
|
122 | releaseName = "RhodeCodeEnterpriseCE-${version}"; | |
@@ -129,8 +134,7 let | |||||
129 | passthru = { |
|
134 | passthru = { | |
130 | inherit |
|
135 | inherit | |
131 | rhodecode-testdata |
|
136 | rhodecode-testdata | |
132 | bowerComponents |
|
137 | linkNodePackages | |
133 | linkNodeAndBowerPackages |
|
|||
134 | myPythonPackagesUnfix |
|
138 | myPythonPackagesUnfix | |
135 | pythonLocalOverrides |
|
139 | pythonLocalOverrides | |
136 | pythonCommunityOverrides; |
|
140 | pythonCommunityOverrides; | |
@@ -141,8 +145,6 let | |||||
141 | buildInputs = |
|
145 | buildInputs = | |
142 | attrs.buildInputs or [] ++ [ |
|
146 | attrs.buildInputs or [] ++ [ | |
143 | rhodecode-testdata |
|
147 | rhodecode-testdata | |
144 | pkgs.nodePackages.bower |
|
|||
145 | pkgs.nodePackages.grunt-cli |
|
|||
146 | ]; |
|
148 | ]; | |
147 |
|
149 | |||
148 | #NOTE: option to inject additional propagatedBuildInputs |
|
150 | #NOTE: option to inject additional propagatedBuildInputs | |
@@ -175,14 +177,28 let | |||||
175 | ''; |
|
177 | ''; | |
176 |
|
178 | |||
177 | preBuild = '' |
|
179 | preBuild = '' | |
178 |
|
180 | echo "[BEGIN]: Building frontend assets" | ||
179 | echo "Building frontend assets" |
|
181 | ${linkNodePackages} | |
180 | ${linkNodeAndBowerPackages} |
|
182 | make web-build | |
181 | grunt |
|
|||
182 | rm -fr node_modules |
|
183 | rm -fr node_modules | |
|
184 | rm -fr node_binaries | |||
|
185 | echo "[DONE ]: Building frontend assets" | |||
183 | ''; |
|
186 | ''; | |
184 |
|
187 | |||
185 | postInstall = '' |
|
188 | postInstall = '' | |
|
189 | # check required files | |||
|
190 | STATIC_CHECK="/robots.txt /502.html | |||
|
191 | /js/scripts.js /js/rhodecode-components.js | |||
|
192 | /css/style.css /css/style-polymer.css" | |||
|
193 | ||||
|
194 | for file in $STATIC_CHECK; | |||
|
195 | do | |||
|
196 | if [ ! -f rhodecode/public/$file ]; then | |||
|
197 | echo "Missing $file" | |||
|
198 | exit 1 | |||
|
199 | fi | |||
|
200 | done | |||
|
201 | ||||
186 | echo "Writing enterprise-ce meta information for rccontrol to nix-support/rccontrol" |
|
202 | echo "Writing enterprise-ce meta information for rccontrol to nix-support/rccontrol" | |
187 | mkdir -p $out/nix-support/rccontrol |
|
203 | mkdir -p $out/nix-support/rccontrol | |
188 | cp -v rhodecode/VERSION $out/nix-support/rccontrol/version |
|
204 | cp -v rhodecode/VERSION $out/nix-support/rccontrol/version | |
@@ -192,22 +208,35 let | |||||
192 | cp configs/production.ini $out/etc |
|
208 | cp configs/production.ini $out/etc | |
193 | echo "[DONE]: saved enterprise-ce production.ini into $out/etc" |
|
209 | echo "[DONE ]: saved enterprise-ce production.ini into $out/etc" | |
194 |
|
210 | |||
|
211 | cp -Rf rhodecode/config/rcextensions $out/etc/rcextensions.tmpl | |||
|
212 | echo "[DONE ]: saved enterprise-ce rcextensions into $out/etc/rcextensions.tmpl" | |||
|
213 | ||||
195 | # python based programs need to be wrapped |
|
214 | # python based programs need to be wrapped | |
196 | mkdir -p $out/bin |
|
215 | mkdir -p $out/bin | |
197 | # rhodecode-tools |
|
|||
198 | ln -s ${self.rhodecode-tools}/bin/rhodecode-* $out/bin/ |
|
|||
199 |
|
216 | |||
200 | # required binaries from dependencies |
|
217 | # required binaries from dependencies | |
201 |
|
|
218 | ln -s ${self.supervisor}/bin/supervisorctl $out/bin/ | |
202 |
ln -s ${self. |
|
219 | ln -s ${self.supervisor}/bin/supervisord $out/bin/ | |
203 | ln -s ${self.gunicorn}/bin/gunicorn $out/bin/ |
|
|||
204 | ln -s ${self.supervisor}/bin/supervisor* $out/bin/ |
|
|||
205 | ln -s ${self.pastescript}/bin/paster $out/bin/ |
|
220 | ln -s ${self.pastescript}/bin/paster $out/bin/ | |
206 | ln -s ${self.channelstream}/bin/channelstream $out/bin/ |
|
221 | ln -s ${self.channelstream}/bin/channelstream $out/bin/ | |
207 | ln -s ${self.celery}/bin/celery $out/bin/ |
|
222 | ln -s ${self.celery}/bin/celery $out/bin/ | |
208 | echo "[DONE]: created symlinks into $out/bin" |
|
223 | ln -s ${self.gunicorn}/bin/gunicorn $out/bin/ | |
|
224 | ln -s ${self.pyramid}/bin/prequest $out/bin/ | |||
|
225 | ln -s ${self.pyramid}/bin/pserve $out/bin/ | |||
209 |
|
226 | |||
210 | for file in $out/bin/*; |
|
227 | echo "[DONE ]: created symlinks into $out/bin" | |
|
228 | DEPS="$out/bin/supervisorctl \ | |||
|
229 | $out/bin/supervisord \ | |||
|
230 | $out/bin/paster \ | |||
|
231 | $out/bin/channelstream \ | |||
|
232 | $out/bin/celery \ | |||
|
233 | $out/bin/gunicorn \ | |||
|
234 | $out/bin/prequest \ | |||
|
235 | $out/bin/pserve" | |||
|
236 | ||||
|
237 | # wrap only dependency scripts, they require to have full PYTHONPATH set | |||
|
238 | # to be able to import all packages | |||
|
239 | for file in $DEPS; | |||
211 | do |
|
240 | do | |
212 | wrapProgram $file \ |
|
241 | wrapProgram $file \ | |
213 | --prefix PATH : $PATH \ |
|
242 | --prefix PATH : $PATH \ | |
@@ -217,14 +246,16 let | |||||
217 |
|
246 | |||
218 | echo "[DONE]: enterprise-ce binary wrapping" |
|
247 | echo "[DONE ]: enterprise-ce binary wrapping" | |
219 |
|
248 | |||
220 | if [ ! -f rhodecode/public/js/scripts.js ]; then |
|
249 | # rhodecode-tools don't need wrapping | |
221 | echo "Missing scripts.js" |
|
250 | ln -s ${self.rhodecode-tools}/bin/rhodecode-* $out/bin/ | |
222 | exit 1 |
|
251 | ||
223 | fi |
|
252 | # expose sources of CE | |
224 | if [ ! -f rhodecode/public/css/style.css ]; then |
|
253 | ln -s $out $out/etc/rhodecode_enterprise_ce_source | |
225 | echo "Missing style.css" |
|
254 | ||
226 | exit 1 |
|
255 | # expose static files folder | |
227 | fi |
|
256 | cp -Rf $out/lib/${self.python.libPrefix}/site-packages/rhodecode/public/ $out/etc/static | |
|
257 | chmod 755 -R $out/etc/static | |||
|
258 | ||||
228 | ''; |
|
259 | ''; | |
229 | }); |
|
260 | }); | |
230 |
|
261 | |||
@@ -237,8 +268,13 let | |||||
237 | getAttr pythonPackages pkgs; |
|
268 | getAttr pythonPackages pkgs; | |
238 |
|
269 | |||
239 | pythonGeneratedPackages = import ./pkgs/python-packages.nix { |
|
270 | pythonGeneratedPackages = import ./pkgs/python-packages.nix { | |
240 |
inherit |
|
271 | inherit | |
241 | inherit (pkgs) fetchurl fetchgit fetchhg; |
|
272 | pkgs; | |
|
273 | inherit | |||
|
274 | (pkgs) | |||
|
275 | fetchurl | |||
|
276 | fetchgit | |||
|
277 | fetchhg; | |||
242 | }; |
|
278 | }; | |
243 |
|
279 | |||
244 | pythonCommunityOverrides = import ./pkgs/python-packages-overrides.nix { |
|
280 | pythonCommunityOverrides = import ./pkgs/python-packages-overrides.nix { |
@@ -162,7 +162,8 To add custom hooks to your instance, us | |||||
162 |
|
162 | |||
163 | 1. Open :menuselection:`Admin --> Settings --> Hooks` |
|
163 | 1. Open :menuselection:`Admin --> Settings --> Hooks` | |
164 | 2. Add your custom hook details, you can use a file path to specify custom |
|
164 | 2. Add your custom hook details, you can use a file path to specify custom | |
165 |
hook scripts, for example: |
|
165 | hook scripts, for example: | |
|
166 | ``pretxnchangegroup.example`` with value ``python:/path/to/custom_hook.py:my_func_name`` | |||
166 | 3. Select :guilabel:`Save` |
|
167 | 3. Select :guilabel:`Save` | |
167 |
|
168 | |||
168 | Also, see the |RC| Extensions section of the :ref:`rc-tools` guide. |RC| |
|
169 | Also, see the |RC| Extensions section of the :ref:`rc-tools` guide. |RC| |
@@ -18,8 +18,8 Prerequisites | |||||
18 | .. tip:: |
|
18 | .. tip:: | |
19 |
|
19 | |||
20 | We recommend using Wandisco repositories which provide latest SVN versions |
|
20 | We recommend using Wandisco repositories which provide latest SVN versions | |
21 | for most platforms. Below is example how to add the wandisco repositories |
|
21 | for most platforms. | |
22 | for Ubuntu. |
|
22 | Here is an example how to add the Wandisco repositories for Ubuntu. | |
23 |
|
23 | |||
24 | .. code-block:: bash |
|
24 | .. code-block:: bash | |
25 |
|
25 | |||
@@ -27,15 +27,28 Prerequisites | |||||
27 | $ sudo wget -q http://opensource.wandisco.com/wandisco-debian.gpg -O- | sudo apt-key add - |
|
27 | $ sudo wget -q http://opensource.wandisco.com/wandisco-debian.gpg -O- | sudo apt-key add - | |
28 | $ sudo apt-get update |
|
28 | $ sudo apt-get update | |
29 |
|
29 | |||