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