1
- I'm proud to release version 2.3.0 of the Roundup issue
1
+ I'm proud to release version 2.4.0 beta of the Roundup issue
2
2
tracker. This release is a bugfix and feature
3
3
release, so make sure to read `docs/upgrading.txt
4
4
<https://www.roundup-tracker.org/docs/upgrading.html>`_ to
@@ -12,131 +12,150 @@ update the database schema version. Do this before you use
12
12
the web, command-line or mail interface and before any users
13
13
access the tracker.
14
14
15
- You can download it with::
16
-
17
- pip download roundup
18
-
19
- then unpack and test/install the tarball. Also::
15
+ You can install it with::
20
16
21
17
pip install roundup
22
18
23
- (preferably in a virtual environment) can be used.
19
+ (preferably in a virtual environment). To download it, use::
24
20
25
- Among the notable improvements from the 2.2.0 release are:
21
+ pip download roundup
22
+
23
+ then unpack and test/install from the tarball.
26
24
27
- * Dockerfile demo mode implemented. This allows quick evaluation as
28
- well as the ability to spin up a configured tracker to customise.
25
+ Among the notable improvements from the 2.3.0 release are:
29
26
30
- * SQLite backends can use WAL mode to reduce blocking between readers
31
- and writers improving concurrent use.
27
+ * new classhelper component thanks to a team of students
28
+ from CS682 at U-Mass Boston. This fixes many issues with
29
+ the old classhelper. It is implemented as a web-component
30
+ and needs REST interface access. It will fall back to the
31
+ classic classhelper if REST is not available or if the
32
+ browser does not support web-components.
32
33
33
- * Redis can be used for session database with SQLite and dbm
34
- backends. Provides a major performance improvement.
34
+ * fix Windows Python installation using pip. It used to go
35
+ into an infinite loop during install or download. Also fix
36
+ installation of shared files (templates) so roundup-admin
37
+ can find them.
35
38
36
- * roundup-mailgw can use OAUTH authentication to SMTP
37
- server. (roundup-mailgw command line options changed as a result.)
39
+ * using ``@current_user`` as a value in a search URL for a
40
+ user property will use the current logged in user. Now you
41
+ can share searches like: "My issues" as "my" will become
42
+ the current logged in user.
38
43
39
- * Postgres full text index can now be enabled.
44
+ * login failures to the REST/Xmlrpc interfaces ae now rate
45
+ limited.
40
46
41
- * Modifications to in-reply-to threading when there are multiple
42
- matches resulting in more predictable handling of messages.
47
+ * utf8mb4 is the default charset for MySQL. This requires
48
+ migrating your database using the mysql client. You can
49
+ choose to keep the older character set in config.ini.
43
50
44
- * Many updates to documentation to make it scannable, useful and
45
- work on mobile.
51
+ * PostgreSQL services defined in pg_service.conf can be
52
+ used. PostgreSQL schemas are supported to eliminate the
53
+ need for the roundup user to have database
54
+ creation/deletion privs.
46
55
47
- * Admin documentation includes a section on setting up Content
48
- Security Policy (CSP) to better secure your Roundup trackers .
56
+ * fix out of memory issue when importing larger trackers
57
+ into PostgreSQL .
49
58
50
- * REST now allows rate limiting headers to be accessed by client
51
- JavaScript.
59
+ * multiple roundup-admin improvements: display protected
60
+ properties (like creation date), better formatting of
61
+ output, command history. Also on windows, pyreadline3 is
62
+ supported to provide an editable interactive command line.
52
63
53
- * Default number of rounds for PBKDF2 updated to 2M to account for
54
- improvements in password crackers and CPU power .
64
+ * an experimental wsgi performance improvment in 2.3.0 is
65
+ now now the default and is opt-out .
55
66
56
- * Support PBKDF2 with SHA512 for password storage to improve
57
- resistance to password crackers.
67
+ * new template functions: utils.readfile and
68
+ utils.expandfile. Javascript that is included in the
69
+ Python core will be moved to external files and be able to
70
+ have values from Roundup substituted in the Javascript.
58
71
59
- * Deprecate SSHA password hash function.
72
+ * allow content-type of a template to be set from inside the
73
+ template. This allows returning json or xml from a
74
+ template without a .json or .xml extention.
60
75
61
- * roundup-admin reindex can be done in batches to manage load
62
- incurred by reindexing.
76
+ * fix import/export on windows to use Unix style line
77
+ endings fixing export/import on Windows and making exports
78
+ portable across platforms.
63
79
64
- * roundup-admin can list available templates and their installed
65
- locations. This is useful when installing via pip or in a docker
66
- container as supporting files are not stored in the usual locations
67
- like /usr/share/roundup.
80
+ * various other Windows platform fixes including test suite
81
+ fixes.
68
82
69
- * Crash fixes in detector handling
83
+ * sqlite version 1 and StructuredText support removed.
70
84
71
- The file CHANGES.txt has a detailed list of feature additions and
72
- bug fixes (53 ) for each release. The most recent changes from
73
- there are at the end of this announcement. Also see the
74
- information in doc/upgrading.txt.
85
+ The file CHANGES.txt has a detailed list of feature
86
+ additions and bug fixes (58 ) for each release. The most
87
+ recent changes from there are at the end of this
88
+ announcement. Also see the information in doc/upgrading.txt.
75
89
76
- If you find bugs, please report them to issues AT roundup-tracker.org
77
- or create an account at https://issues.roundup-tracker.org and open a
78
- new ticket. If you have patches to fix the issues they can be attached
79
- to the email or uploaded to the tracker.
90
+ If you find bugs, please report them to issues AT
91
+ roundup-tracker.org or create an account at
92
+ https://issues.roundup-tracker.org and open a new ticket. If
93
+ you have patches to fix the issues they can be attached to
94
+ the email or uploaded to the tracker.
80
95
81
96
Upgrading
82
97
=========
83
98
84
- If you're upgrading from an older version of Roundup you *must* follow
85
- all the "Software Upgrade" guidelines given in the doc/upgrading.txt
86
- documentation.
99
+ If you're upgrading from an older version of Roundup you
100
+ *must* follow all the "Software Upgrade" guidelines given in
101
+ the doc/upgrading.txt documentation.
87
102
88
103
Note that you should run ``roundup-admin ... migrate`` for
89
104
all your trackers to update the database schema version. Do
90
105
this before you use the web, command-line or mail interface
91
106
and before any users access the tracker.
92
107
93
- Roundup requires Python 2 newer than version 2.7.12 or Python 3 newer
94
- than or equal to version 3.6 for correct operation. (Python
95
- 3.4 or 3.5 may work, but are not tested.) Note that Python 2 support
96
- is being removed from the CI platforms, so you should deploy new
97
- trackers with Python 3 and plan on upgrading older trackers from Python
98
- 2 to Python 3. See the upgrade guide.
108
+ Roundup requires Python 2 newer than version 2.7.12 or
109
+ Python 3 newer than or equal to version 3.6 for correct
110
+ operation. (Python 3.4 or 3.5 may work, but are not tested.)
111
+ Note that Python 2 support is being removed from the CI
112
+ platforms, so you should deploy new trackers with Python 3
113
+ and plan on upgrading older trackers from Python 2 to Python
114
+ 3. See the upgrade guide.
99
115
100
- To give Roundup a try, just download (directions above), unpack and run::
116
+ To give Roundup a try, just download (directions above),
117
+ unpack and run::
101
118
102
119
python demo.py
103
120
104
121
then open the url printed by the demo app.
105
122
106
123
Release info and download page:
124
+
107
125
https://pypi.org/project/roundup/
126
+
108
127
Source and documentation is available at the website:
128
+
109
129
https://www.roundup-tracker.org/
130
+
110
131
Mailing lists - the place to ask questions:
132
+
111
133
https://sourceforge.net/p/roundup/mailman/
112
134
113
135
114
136
About Roundup
115
137
=============
116
138
117
- Roundup is a simple-to-use and install issue-tracking system with
118
- command-line, web and e-mail interfaces. It is based on the winning design
119
- from Ka-Ping Yee in the Software Carpentry "Track" design competition.
120
-
121
- Note: Ping is not responsible for this project. The contact for this
122
- project is rouilj at users.sourceforge.net. Use this address for
123
- security or other sensitive issues. Development discussions occur on
124
- the roundup-devel at lists.sourceforge.net mailing list. Tickets can
125
- be opened at https://issues.roundup-tracker.org.
139
+ Roundup is a simple-to-use and install issue-tracking system
140
+ with command-line, web and e-mail interfaces. It is based on
141
+ the winning design from Ka-Ping Yee in the Software
142
+ Carpentry "Track" design competition.
126
143
127
- Roundup manages a number of issues (with flexible properties such as
128
- "description", "priority", and so on) and provides the ability to:
144
+ Roundup manages a number of issues (with flexible properties
145
+ such as "description", "priority", and so on) and provides
146
+ the ability to:
129
147
130
148
(a) submit new issues,
131
149
(b) find and edit existing issues, and
132
150
(c) discuss issues with other participants.
133
151
134
- The system facilitates communication among the participants by managing
135
- discussions and notifying interested parties when issues are edited. One of
136
- the major design goals for Roundup that it be simple to get going. Roundup
137
- is therefore usable "out of the box" with any Python 2.7.2+ (or 3.6+)
138
- installation. It doesn't even need to be "installed" to be operational,
139
- though an install script is provided.
152
+ The system facilitates communication among the participants
153
+ by managing discussions and notifying interested parties
154
+ when issues are edited. One of the major design goals for
155
+ Roundup that it be simple to get going. Roundup is therefore
156
+ usable "out of the box" with any Python 3.6+
157
+ installation. It doesn't even need to be "installed" to be
158
+ operational, though an install script is provided.
140
159
141
160
It comes with five basic issue tracker templates
142
161
@@ -146,161 +165,12 @@ It comes with five basic issue tracker templates
146
165
* a jinja2 version of the devel template (work in progress)
147
166
* a minimal skeleton
148
167
149
- and supports four database back-ends (anydbm, sqlite, mysql and postgresql).
168
+ and supports four database back-ends (anydbm, sqlite, mysql
169
+ and postgresql).
150
170
151
171
Recent Changes
152
172
==============
153
173
154
- From 2.2.0 to 2.3.0
155
-
156
- Fixed:
157
- ------
158
-
159
- - Updated directions for verifying Roundup distribution using pgp.
160
- - Dockerfile healthcheck fixed so it works when trackers are
161
- specified on command line. Also cleanup of unneeded
162
- packages. (John Rouillard)
163
- - issue2551224 - Replace dbm db for sessions and otks when using
164
- sqlite. New databases are created for session data (db-session)
165
- and one time key data (db-otk). The data is ephemeral so no
166
- need to migrate. (John Rouillard)
167
- - issue2551223 - Timestamps are truncated in mysql and postgresql
168
- for session and otk database tables. Modify db schema to use a
169
- numeric type that preserves more significant figures. See
170
- upgrading.txt for required steps. (John Rouillard)
171
- - added more testing of BasicDatabase to support use of SQLite
172
- for that purpose. Had to fix memory, rdbms and dbm edge cases
173
- due to new tests. (John Rouillard)
174
- - issue2551138 - roundup-server with ssl under python2 throws
175
- traceback on socket close. Not sure how this got fixed,
176
- but after fixing issue2551137 it was not an issue anymore.
177
- - issue2551137 - roundup-server won't run with ssl under python3
178
- Fixed by using SocketIO and manually adding buffering io and
179
- catching SSL.ZeroReturnError indicating SSL has been shut down.
180
- - add caching header for text/javascript in addition to depricated
181
- application/javascript. (John Rouillard)
182
- - Enable postgres-fts: fix indexer-common::get_indexer so it returns a
183
- postgresql-fts Test code paths in get_indexer. (John Rouillard)
184
- - Fix Postgres native-fts, implement a two phase initialization of the
185
- indexer. The native-fts one gets assigned after the database
186
- connection is open. (John Rouillard)
187
- - fix crash if postgresql native-fts backend is asked to index content
188
- with null bytes. (John Rouillard)
189
- - issue2551232 - modify in-reply-to threading when multiple matches
190
- Change how in-reply-to threading works in the mailgw. If there is
191
- more than one issue with a matching parent message, fall back to
192
- subject matching. See upgrading.txt for details. (John Rouillard)
193
- - issue2551195 - port scripts from optparse to argparse (Ralf Schlatterbeck)
194
- - issue2551246 - mitigation, document how -u doesn't work for
195
- roundup-admin. (John Rouillard)
196
- - Document better that files in the template or static_files
197
- directories accessed via @@file are available to any user with the
198
- url. (John Rouillard)
199
- - Fix final exception handler in roundup-server to send proper
200
- Content-Length header to the client. (John Rouillard)
201
- - Fix traceback if Origin header is missing. (John Rouillard)
202
- - issue2551250: Fix sorting of detectors even if there are two with the
203
- same name and priority (can happen if they are created in two
204
- different files).
205
- - Fix Traceback when a numeric order attribute is empty (Ralf
206
- Schlatterbeck)
207
- - Update some template schema files to assign Register permissions for the
208
- Anonymous user. Replaces the old Create permission. (John Rouillard)
209
- - Allow '*' and explicit origins in allowed_api_origins. Only return
210
- 'Access-Control-Allow-Credentials' when not matching '*'. Fixes
211
- security issue with rest when using '*'. (John Rouillard)
212
- - issue2551263: In REST response expose rate limiting, sunset, allow
213
- HTTP headers to calling JavaScript. (John Rouillard)
214
- - issue2551257: When downloading an attached (user supplied file),
215
- make sure that an 'X-Content-Type-Options: nosniff' header is sent.
216
- (John Rouillard)
217
- - issue2551252 - default number of rounds for PKDF2 password increased
218
- to 2,000,000. (John Rouillard)
219
- - issue2551251 - migrate/re-encrypt PBKDF2 password if stored
220
- password used a smaller number of rounds than set in
221
- password_pbkdf2_default_rounds. (John Rouillard)
222
- - upgrade from jquery-3.5.1 to jquery-3.6.3. Update user.help.html
223
- to new version. (John Rouillard)
224
- - Dockerfile scanned with hadolint. Fixed multiple issues. (John Rouillard)
225
- - fix crash due to invalid initialization/reset of configuration.py
226
- option_validators. Crashed roundup-admin on second command if an
227
- option_validator was added by a detector or extension. (John Rouillard)
228
- - Dockerfile uses dumb-init to properly wait for child/zombie
229
- processes. Defense against child process starting from detector
230
- and becoming a zombie when its roundup-server instance exits.
231
- (John Rouillard)
232
- - Move installed frontend/Zope back to frontend/ZRoundup
233
- directory. This better identifies the directory when copied into
234
- the Zope framework. It also matches existing
235
- documentation. (John Rouilard)
236
- - Multiple fixes/updates for installation documentation.
237
- Including docker shell/admin/demo mdoes. (John Rouillard)
238
- - Invalid item identifiers passed to REST endpoint return a 404
239
- rather than a 400 error. E.G. /rest/data/issue/issue4 (rather
240
- than .../issue/4). (John Rouillard)
241
- - issue2551280 - sorted() method of MultilinkHTMLProperty is broken?
242
- (Gabor Nagy report and fix; commit John Rouillard)
243
-
244
- Features:
245
- ---------
246
-
247
- - Add warning about limited Python 2 support lifetime to install and
248
- upgrading docs. (John Rouillard)
249
- - Dockerfile supports demo mode for instant gratification
250
- 8-). Also supports shell and admin mode (John Rouillard)
251
- - Dockerfile build allows adding additional python packages via
252
- pip, setting UID tracker is run under. (John Rouillard)
253
- - issue2551140 - Added redis as a session and otk database for use
254
- with anydbm and sqlite primary databases. (John Rouillard)
255
- - issue2550559 - Pretty printing / formatting for Number types.
256
- Added pretty(format='%0.3f') method to NumberHTMLProperty to
257
- print numeric values. If value is None, return empty string
258
- otherwise str() of value. (John Rouillard)
259
- - sqlite native-fts backend now uses the stopwords list in config.ini
260
- to filter words from queries. (Stopwords are still indexed so that
261
- phrase/proximity searches still work.) (John Rouillard)
262
- - sqlite databases use WAL mode when *created* to improve read
263
- concurrency. Existing sqlite database still use rollback journal
264
- mode. See upgrading.txt for details. (John Rouillard)
265
- - issue2551233 - create new roundup-admin command "templates" list all
266
- template names, location and descriptions. Should help find where
267
- /usr/share/roundup/templates is buried during some install
268
- mechanisms. Does not need a tracker home to run. (John Rouillard)
269
- - Add OAuth authentication to the mailgw script. Now IMAPS can be used
270
- with OAuth as required by several large cloud providers. Move command
271
- line processing of the mailgw script to ``argparse``. Note that the
272
- command line options of the mailgw have changed, see upgrading.txt for
273
- details. (Ralf Schlatterbeck)
274
- - issue2551243: schema-dump.py enhanced with anti-CSRF headers. Flake8
275
- cleanup and python2 support. (John Rouillard)
276
- - issue2551253 - new password hash PBDKF2-SHA512 added. Not
277
- available by default. Follow directions in upgrading document
278
- to use. (John Rouillard)
279
- - roundup-admin migrate command reports the schema version.
280
- - issue2551262 - the mail gateway subject prefix now allows spaces
281
- before/after prefix. Also allow spaces between classname and id
282
- number in prefix designator. So "[ issue 23 ] subject" is parsed
283
- like "[issue23] subject". (John Rouillard)
284
- - [doc]: add section on implementing CSP for Roundup to admin
285
- doc. (John Rouillard)
286
- - issue2551265 - deprecate SSHA password hash method. Users using SSHA
287
- passwords will have their passwords transprently upgraded to PBKDF2
288
- derived hash on next login. (John Rouillard)
289
- - issue2551253 - Modify password PBKDF2 method to use SHA512. New
290
- hash function using PBKDF2-SHA512 available. Will be default in
291
- future. Directions for upgrading security by using it now is
292
- included in upgrading.txt. (John Rouillard)
293
- - issue2551275 - Allow configuring max_children in roundup-server.
294
- When using roundup-server in fork mode, allow raising number of
295
- forked children above the default of 40. (Original patch by Joseph
296
- Myers, config settings and docs by John Rouillard.)
297
- - roundup-admin genconfig does not need a tracker home to run. (John
298
- Rouillard)
299
- - issue2551190 - Allow roundup-admin reindex to work in
300
- batches. Running roundup-admin -i ... reindex issue:1-1000 will
301
- reindex the first 1000 issues while reporting any missing issues
302
- in the range. Also completion progress is reported when indexing a
303
- specific class.
304
- - doc updates: add explanation for SQL code in 1.3.3->1.4.0 upgrade.
305
- document schema table in rdbms backends and how to dump/extract
306
- version from them. (John Rouillard)
174
+ From 2.3.0 to 2.4.0
175
+
176
+ TBA
0 commit comments