##// END OF EJS Templates
docs: added note about hard restart due to celery update
dan -
r4218:1815b491 stable
parent child Browse files
Show More
@@ -1,235 +1,239 b''
1 1 |RCE| 4.18.0 |RNS|
2 2 ------------------
3 3
4 4 Release Date
5 5 ^^^^^^^^^^^^
6 6
7 7 - 2020-01-05
8 8
9 9
10 10 New Features
11 11 ^^^^^^^^^^^^
12 12
13 13 - Artifacts: are no longer in BETA. New info page is available for uploaded artifacts
14 14 which exposes some useful information like sha256, various access urls etc, and also
15 15 allows deletion of artifacts, and updating their description.
16 16 - Artifacts: support new download url based on access to artifacts using new auth-token types.
17 17 - Artifacts: added ability to store artifacts using API, and internal cli upload.
18 18 This allows uploading of artifacts that can have 100s of GBs in size efficiently.
19 19 - Artifacts: added metadata logic to store various extra custom data for artifacts.
20 20 - Comments: added support for adding comment attachments using the artifacts logic.
21 21 Logged in users can now pick or drag and drop attachments into comment forms.
22 22 - Comments: enable linkification of certain patterns on comments in repo/pull request scopes.
23 23 This will render now active links to commits, pull-requests mentioned in comments body.
24 24 - Jira: new update integration plugin.
25 25 Plugin now fetches possible transitions from tickets and show them to users in the interface.
26 26 Allow sending extra attributes during a transition like `resolution` message.
27 27 - Navigation: Added new consistent and contextual way of creating new objects
28 28 likes gists, repositories, and repository groups using dedicated action (with a `+` sign)
29 29 available in the top navigation.
30 30 - Hovercards: added new tooltips and hovercards to expose certain information for objects shown in UI.
31 31 RhodeCode usernames, issues, pull-requests will have active hovercard logic that will
32 32 load extra information about them and exposing them to users.
33 33 - Files: all readme files found in repository file browser will be now rendered, allowing having readme per directory.
34 34 - Search: expose line counts in search files information.
35 35 - Audit-logs: expose download user audit logs as JSON file.
36 36 - Users: added description field for users.
37 37 Allows users to write a short BIO, or description of their role in the organization.
38 38 - Users: allow super-admins to change bound authentication type for users.
39 39 E.g internal rhodecode accounts can be changed to ldap easily from user settings page.
40 40 - Pull requests: simplified the UI for display view, hide less important information and expose the most important ones.
41 41 - Pull requests: add merge check that detects WIP marker in title.
42 42 Usually WIP in title means unfinished task that needs still some work, such marker will prevent accidental merges.
43 43 - Pull requests: TODO comments have now a dedicated box below reviewers to keep track
44 44 of important TODOs that still need attention before review process is finalized.
45 45 - Pull requests: participants of pull request will receive an email about update of a
46 46 pull requests with a small summary of changes made.
47 47 - Pull requests: change the naming from #NUM into !NUM.
48 48 !NUM format is now parsed and linkified in comments and commit messages.
49 49 - Pull requests: pull requests which state is changing can now be viewed with a limited view.
50 50 - Pull requests: re-organize merge/close buttons and merge checks according to the new UI.
51 51 - Pull requests: update commits button allows a force-refresh update now using dropdown option.
52 52 - Pull requests: added quick filter to grid view to filter/search pull requests in a repository.
53 53 - Pull requests: closing a pull-request without a merge requires additional confirmation now.
54 54 - Pull requests: merge checks will now show which files caused conflicts and are blocking the merge.
55 55 - Emails: updated all generated emails design and cleanup the data fields they expose.
56 56 a) More consistent UI for all types of emails. b) Improved formatting of plaintext emails
57 57 c) Added reply link to comment type emails for quicker response action.
58 58
59 59
60 60 General
61 61 ^^^^^^^
62 62
63 63 - Artifacts: don't show hidden artifacts, allow showing them via a GET ?hidden=1 flag.
64 64 Hidden artifacts are for example comment attachments.
65 65 - UI: new commits page, according to the new design, which started on 4.17.X release lines
66 66 - UI: use explicit named actions like "create user" instead of generic "save" which is bad UX.
67 67 - UI: fixed problems with generating last change in repository groups.
68 68 There's now a new logic that checks all objects inside group for latest update time.
69 69 - API: add artifact `get_info`, and `store_metadata` methods.
70 70 - API: allowed to specify extra recipients for pr/commit comments api methods.
71 71 - Vcsserver: set file based cache as default for vcsserver which can be shared
72 72 across multiple workers saving memory usage.
73 73 - Vcsserver: added redis as possible cache backend for even greater performance.
74 74 - Dependencies: bumped GIT version to 2.23.0
75 75 - Dependencies: bumped SVN version to 1.12.2
76 76 - Dependencies: bumped Mercurial version to 5.1.1 and hg-evolve to 9.1.0
77 77 - Search: added logic for sorting ElasticSearch6 backend search results.
78 78 - User bookmarks: make it easier to re-organize existing entries.
79 79 - Data grids: hide pagination for single pages in grids.
80 80 - Gists: UX, removed private/public gist buttons and replaced them with radio group.
81 81 - Gunicorn: moved all configuration of gunicorn workers to .ini files.
82 82 - Gunicorn: added worker memory management allowing setting maximum per-worker memory usage.
83 83 - Automation: moved update groups task into celery task
84 84 - Cache commits: add option to refresh caches manually from advanced pages.
85 85 - Pull requests: add indication of state change in list of pull-requests and actually show them in the list.
86 86 - Cache keys: register and self cleanup cache keys used for invalidation to prevent leaking lot of them into DB on worker recycle
87 87 - Repo groups: removed locking inheritance flag from repo-groups. We'll deprecate this soon and this only brings in confusion
88 88 - System snapshot: improved formatting for better readability
89 89 - System info: expose data about vcsserver.
90 90 - Packages: updated celery to 4.3.0 and switch default backend to redis instead of RabbitMQ.
91 91 Redis is stable enough and easier to install. Having Redis simplifies the stack as it's used in other parts of RhodeCode.
92 92 - Dependencies: bumped alembic to 1.2.1
93 93 - Dependencies: bumped amqp==2.5.2 and kombu==4.6.6
94 94 - Dependencies: bumped atomicwrites==1.3.0
95 95 - Dependencies: bumped cffi==1.12.3
96 96 - Dependencies: bumped configparser==4.0.2
97 97 - Dependencies: bumped deform==2.0.8
98 98 - Dependencies: bumped dogpile.cache==0.9.0
99 99 - Dependencies: bumped hupper==1.8.1
100 100 - Dependencies: bumped mako to 1.1.0
101 101 - Dependencies: bumped markupsafe to 1.1.1
102 102 - Dependencies: bumped packaging==19.2
103 103 - Dependencies: bumped paste==3.2.1
104 104 - Dependencies: bumped pastescript==3.2.0
105 105 - Dependencies: bumped pathlib2 to 2.3.4
106 106 - Dependencies: bumped pluggy==0.13.0
107 107 - Dependencies: bumped psutil to 5.6.3
108 108 - Dependencies: bumped psutil==5.6.5
109 109 - Dependencies: bumped psycopg2==2.8.4
110 110 - Dependencies: bumped pycurl to 7.43.0.3
111 111 - Dependencies: bumped pyotp==2.3.0
112 112 - Dependencies: bumped pyparsing to 2.4.2
113 113 - Dependencies: bumped pyramid-debugtoolbar==4.5.1
114 114 - Dependencies: bumped pyramid-mako to 1.1.0
115 115 - Dependencies: bumped redis to 3.3.8
116 116 - Dependencies: bumped sqlalchemy to 1.3.8
117 117 - Dependencies: bumped sqlalchemy==1.3.11
118 118 - Dependencies: bumped test libraries.
119 119 - Dependencies: freeze alembic==1.3.1
120 120 - Dependencies: freeze python-dateutil
121 121 - Dependencies: freeze redis==3.3.11
122 122 - Dependencies: freeze supervisor==4.1.0
123 123
124 124
125 125 Security
126 126 ^^^^^^^^
127 127
128 128 - Security: fixed issues with exposing wrong http status (403) indicating repository with
129 129 given name exists and we don't have permissions to it. This was exposed in the redirection
130 130 logic of the global pull-request page. In case of redirection we also exposed
131 131 repository name in the URL.
132 132
133 133
134 134 Performance
135 135 ^^^^^^^^^^^
136 136
137 137 - Core: many various small improvements and optimizations to make rhodecode faster then before.
138 138 - VCSServer: new cache implementation for remote functions.
139 139 Single worker shared caches that can use redis/file-cache.
140 140 This greatly improves performance on larger instances, and doesn't trigger cache
141 141 re-calculation on worker restarts.
142 142 - GIT: switched internal git operations from Dulwich to libgit2 in order to obtain better performance and scalability.
143 143 - SSH: skip loading unneeded application parts for SSH to make execution of ssh commands faster.
144 144 - Main page: main page will now load repositories and repositories groups using partial DB calls instead of big JSON files.
145 145 In case of many repositories in root this could lead to very slow page rendering.
146 146 - Admin pages: made all grids use same DB based partial loading logic. We'll no longer fetch
147 147 all objects into JSON for display purposes. This significantly improves speed of those pages in case
148 148 of many objects shown in them.
149 149 - Summary page: use non-memory cache for readme, and cleanup cache for repo stats.
150 150 This change won't re-cache after worker restarts and can be shared across all workers
151 151 - Files: only check for git_lfs/hg_largefiles if they are enabled.
152 152 This speeds up fetching of files if they are not LF and very big.
153 153 - Vcsserver: added support for streaming data from the remote methods. This allows
154 154 to stream very large files without taking up memory, mostly for usage in SVN when
155 155 downloading large binaries from vcs system.
156 156 - Files: added streaming remote attributes for vcsserver.
157 157 This change enables streaming raw content or raw downloads of large files without
158 158 transferring them over to enterprise for pack & repack using msgpack.
159 159 Msgpack has a limit of 2gb and generally pack+repack for ~2gb is very slow.
160 160 - Files: ensure over size limit files never do any content fetching when viewing such files.
161 161 - VCSServer: skip host verification to speed up pycurl calls.
162 162 - User-bookmarks: cache fetching of bookmarks since this is quite expensive query to
163 163 make with joinedload on repos/repo groups.
164 164 - Goto-switcher: reduce query data to only required attributes for speedups.
165 165 - My account: owner/watched repos are now loaded only using DB queries.
166 166
167 167
168 168 Fixes
169 169 ^^^^^
170 170
171 171 - Mercurial: move imports from top-level to prevent from loading mercurial code on hook execution for svn/git.
172 172 - GIT: limit sync-fetch logic to only retrieve tags/ and heads/ with default execution arguments.
173 173 - GIT: fixed issue with git submodules detection.
174 174 - SVN: fix checkout url for ssh+svn backend not having special prefix resulting in incorrect command shown.
175 175 - SVN: fixed problem with showing empty directories.
176 176 - OAuth: use a vendored version of `authomatic` library, and switch Bitbucket authentication to use oauth2.
177 177 - Diffs: handle paths with quotes in diffs.
178 178 - Diffs: fixed outdated files in pull-requests re-using the filediff raw_id for anchor generation. Fixes #5567
179 179 - Diffs: toggle race condition on sticky vs wide-diff-mode that caused some display problems on larger diffs.
180 180 - Pull requests: handle exceptions in state change and improve logging.
181 181 - Pull requests: fixed title/description generation for single commits which are numbers.
182 182 - Pull requests: changed the source of changes to be using shadow repos if it exists.
183 183 In case of `git push -f` and rebase we lost commits in the repo resulting in
184 184 problems of displaying versions of pull-requests.
185 185 - Pull requests: handle case when removing existing files from a repository in compare versions diff.
186 186 - Files: don't expose copy content helper in case of binary files.
187 187 - Registration: properly expose first_name/last_name into email on user registration.
188 188 - Markup renderers: fixed broken code highlight for rst files.
189 189 - Ui: make super admin be named consistently across ui.
190 190 - Audit logs: fixed search cases with special chars such as `-`.
191 191
192 192
193 193 Upgrade notes
194 194 ^^^^^^^^^^^^^
195 195
196 - Major Celery Version upgrade. The 4.18.X release includes a major Celery version.
197 It's recommended to run `rccontrol self-stop && rccontrol self-init` after the
198 upgrade to ensure celery workers are restarted and updated.
199
196 200 - New Automation task. We've changed the logic for updating latest change inside repository group.
197 201 New logic includes scanning for changes in all nested objects. Since this is a heavy task
198 202 a new dedicated scheduler task has been created to update it automatically on a scheduled base.
199 203 Please review in `admin > settings > automation` to enable this task.
200 204
201 205 - New safer encryption algorithm. Some setting values are encrypted before storing it inside the database.
202 206 To keep full backward compatibility old AES algorithm is used.
203 207 If you wish to enable a safer option set fernet encryption instead inside rhodecode.ini
204 208 `rhodecode.encrypted_values.algorithm = fernet`
205 209
206 210 - Pull requests UI changes. We've simplified the UI on pull requests page.
207 211 Please review the new UI to prevent surprises. All actions from old UI should be still possible with the new one.
208 212
209 213 - Redis is now a default recommended backend for Celery and replaces previous rabbitmq.
210 214 Redis is generally easier to manage and install, and it's also very stable for usage
211 215 in the scheduler/celery async tasks. Since we also recommend Redis for caches the application
212 216 stack can be simplified by removing rabbitmq and replacing it with single Redis instance.
213 217
214 218 - Recommendation for using Redis as the new cache backend on vcsserver.
215 219 Since Version 4.18.0 VCSServer has a new cache implementation for VCS data.
216 220 By default, for simplicity the cache type is file based. We strongly recommend using
217 221 Redis instead for better Performance and scalability
218 222 Please review vcsserver.ini settings under:
219 223 `rc_cache.repo_object.backend = dogpile.cache.rc.redis_msgpack`
220 224
221 225 - Gunicorn configuration now moved to .ini files.
222 226 Upgrading to 4.18.X will overwrite the gunicorn_conf.py file. If there are any custom changes in that file
223 227 they will be lost. Recommended way to configure gunicorn is now via the .ini files. Please check `rhodecode.template.ini` file
224 228 for example gunicorn configuration.
225 229
226 230 - New memory monitoring for Gunicorn workers. Starting from 4.18 release a option was added
227 231 to limit the maximum amount of memory used by a worker.
228 232 Please review new settings in `[server:main]` section for memory management in both
229 233 rhodecode.ini and vcsserver.ini::
230 234
231 235 ; Maximum memory usage that each worker can use before it will receive a
232 236 ; graceful restart signal 0 = memory monitoring is disabled
233 237 ; Examples: 268435456 (256MB), 536870912 (512MB)
234 238 ; 1073741824 (1GB), 2147483648 (2GB), 4294967296 (4GB)
235 239 memory_max_usage = 0
General Comments 0
You need to be logged in to leave comments. Login now