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
22tracker. This release is a bugfix and feature
33release, so make sure to read `docs/upgrading.txt
44<https://www.roundup-tracker.org/docs/upgrading.html>`_ to
@@ -12,131 +12,150 @@ update the database schema version. Do this before you use
1212the web, command-line or mail interface and before any users
1313access the tracker.
1414
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::
2016
2117 pip install roundup
2218
23- (preferably in a virtual environment) can be used.
19+ (preferably in a virtual environment). To download it, use::
2420
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.
2624
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:
2926
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.
3233
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.
3538
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.
3843
39- * Postgres full text index can now be enabled.
44+ * login failures to the REST/Xmlrpc interfaces ae now rate
45+ limited.
4046
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.
4350
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.
4655
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 .
4958
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.
5263
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 .
5566
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.
5871
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.
6075
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.
6379
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.
6882
69- * Crash fixes in detector handling
83+ * sqlite version 1 and StructuredText support removed.
7084
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.
7589
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.
8095
8196Upgrading
8297=========
8398
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.
87102
88103Note that you should run ``roundup-admin ... migrate`` for
89104all your trackers to update the database schema version. Do
90105this before you use the web, command-line or mail interface
91106and before any users access the tracker.
92107
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.
99115
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::
101118
102119 python demo.py
103120
104121then open the url printed by the demo app.
105122
106123Release info and download page:
124+
107125 https://pypi.org/project/roundup/
126+
108127Source and documentation is available at the website:
128+
109129 https://www.roundup-tracker.org/
130+
110131Mailing lists - the place to ask questions:
132+
111133 https://sourceforge.net/p/roundup/mailman/
112134
113135
114136About Roundup
115137=============
116138
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.
126143
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:
129147
130148(a) submit new issues,
131149(b) find and edit existing issues, and
132150(c) discuss issues with other participants.
133151
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.
140159
141160It comes with five basic issue tracker templates
142161
@@ -146,161 +165,12 @@ It comes with five basic issue tracker templates
146165* a jinja2 version of the devel template (work in progress)
147166* a minimal skeleton
148167
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).
150170
151171Recent Changes
152172==============
153173
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