Skip to content

Commit d29bdb2

Browse files
committed
Merge
2 parents 94f3c41 + eb121a6 commit d29bdb2

File tree

16 files changed

+401
-213
lines changed

16 files changed

+401
-213
lines changed

.github/workflows/ci-test.yml

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
# reference docs:
44
# https://blog.deepjyoti30.dev/tests-github-python
55
# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
6-
#
6+
# https://github.com/pypa/twine/blob/main/.github/workflows/main.yml
7+
78
name: roundup-ci
89

910
on:
@@ -44,30 +45,36 @@ jobs:
4445
max-parallel: 4
4546
matrix:
4647
# Run in all these versions of Python
47-
python-version: [ "2.7", "3.10", "3.9", "3.8", "3.6", "3.11-dev" ]
48+
python-version:
49+
- "2.7"
50+
- "3.10"
51+
- "3.9"
52+
- "3.8"
53+
- "3.7"
54+
- "3.11"
4855

4956
# use for multiple os or ubuntu versions
5057
#os: [ubuntu-latest, macos-latest, windows-latest]
51-
os: [ubuntu-latest, ubuntu-22.04]
58+
# ubuntu latest 22.04 12/2022
59+
os: [ubuntu-latest, ubuntu-20.04]
5260

5361
# if the ones above fail. fail the build
5462
experimental: [false]
5563

5664
include:
57-
# example: if 3.12 fails the jobs still succeeds
58-
# - python-version: 3.12
59-
# experimental: [true]
60-
# version 2.7 not available on unbuntu-22.04 github
61-
# - python-version: 2.7
62-
# os: ubuntu-22.04
63-
# experimental: true
64-
- python-version: 3.11-dev
65+
# example: if 3.12 fails the jobs still succeeds
66+
- python-version: 3.12-dev
6567
os: ubuntu-22.04
6668
experimental: [true]
69+
- python-version: 3.11-dev
70+
os: ubuntu-20.04
71+
# 3.6 not available on new 22.04 runners, so run on 20.04 ubuntu
72+
- python-version: 3.6
73+
os: ubuntu-20.04
6774

6875
exclude:
69-
# skip all python versions on 22.04 except explicitly included
70-
- os: ubuntu-22.04
76+
# skip all python versions on 20.04 except explicitly included
77+
- os: ubuntu-20.04
7178

7279
env:
7380
# get colorized pytest output even without a controlling tty

CHANGES.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ Fixed:
5050
more than one issue with a matching parent message, fall back to
5151
subject matching. See upgrading.txt for details. (John Rouillard)
5252
- issue2551195 - port scripts from optparse to argparse (Ralf Schlatterbeck)
53+
- issue2551246 - mitigation, document how -u doesn't work for
54+
roundup-admin. (John Rouillard)
55+
- Document better that files in the template or static_files
56+
directories accessed via @@file are available to any user with the
57+
url.
5358

5459
Features:
5560

@@ -182,6 +187,9 @@ Fixed:
182187
if the user doesn't have edit permissions. (John Rouillard)
183188
- issue2551216 - create new mysql databases using COLLATE
184189
utf8_general_ci to prevent crashes in test suite. (John Rouillard)
190+
- issue2551146 - fix issues with strings that have multiple %s
191+
substutions that were not labeled making i18n difficult/impossible.
192+
(John Rouillard)
185193

186194
Features:
187195

doc/admin_guide.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,22 @@ A brief (incomplete) summary is::
878878

879879
Run ``roundup-admin help commands`` for a complete list of subcommands.
880880

881+
One thing to note, The ``-u user`` setting does not currently operate
882+
like a user logging in via the web. The user running roundup-admin
883+
must have read access to the tracker home directory. As a result the
884+
user has access to the files and the database info contained in
885+
config.ini.
886+
887+
Using ``-u user`` sets the actor/user parameter in the
888+
journal. Changes that are made are attributed to that
889+
user. The password is ignored if provided. Any existing
890+
username has full access to the data just like the admin
891+
user. This is an area for further development so that
892+
roundup-admin could be used with sudo to provide secure
893+
command line access to a tracker.
894+
895+
In general you should forget that there is a -u parameter.
896+
881897
.. _`customisation documentation`: customizing.html
882898
.. _`upgrading documentation`: upgrading.html
883899
.. _`installation documentation`: installation.html

doc/customizing.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2309,6 +2309,16 @@ Serving static content
23092309
See the previous section `determining web context`_ where it describes
23102310
``@@file`` paths.
23112311

2312+
These files are served without any permission checks. Any user on the
2313+
internet with the url can download the file.
2314+
2315+
This is rarely an issue since the html templates are just source code
2316+
and much of it can be found in the Roundup repository. Other
2317+
decoration (logos, stylesheets) are similarly not security sensitive.
2318+
You can use the static_files setting in config.ini to eliminate
2319+
access to the templates directory if desired.
2320+
2321+
If a file resolves to a symbolic link, it is not served.
23122322

23132323
Performing actions in web requests
23142324
----------------------------------

doc/developers.txt

Lines changed: 103 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,73 +4,120 @@ Developing Roundup
44

55
.. note::
66
The intended audience of this document is the developers of the core
7-
Roundup code. If you just wish to alter some behaviour of your Roundup
8-
installation, see `customising roundup`_.
7+
Roundup code. If you just wish to alter some behavior of your Roundup
8+
installation, see `Customising Roundup`_.
99

1010
Contents
1111

1212
.. contents::
1313
:local:
1414

15-
If you are looking for info on managing the roundup-tracker.org
16-
infrastructure, that information has migrated to website/README.txt
17-
in the roundup repo.
1815

1916
Getting Started
2017
---------------
2118

22-
Anyone wishing to help in the development of Roundup must read `Roundup's
23-
Design Document`_ and the `implementation notes`_.
19+
If you are looking for a good first issue, search for `StarterTicket
20+
on https://issues.Roundup-tracker.org`_. These include issues where
21+
Python development, Documentation or Web design skills are useful.
22+
23+
You can continue the conversation using the issue or join the
24+
Roundup-devel list to get assistance and verify your planned changes.
2425

2526
All development is coordinated through two resources:
2627

27-
- roundup-devel mailing list at
28-
https://sourceforge.net/projects/roundup/lists/roundup-devel
28+
- Roundup-devel mailing list at
29+
https://sourceforge.net/projects/Roundup/lists/Roundup-devel
2930
- The issue tracker running at
30-
https://issues.roundup-tracker.org/
31+
https://issues.Roundup-tracker.org/
3132

33+
In addition, the Roundup IRC channel on irc.oftc.net can be accessed
34+
via the web interface shown on the Contact page. The channel is logged
35+
and the web sites for the logs are shown in the channel topic. You can
36+
ask questions and use it to coordinate work discussed using the
37+
resources above.
3238

33-
Small Changes
34-
-------------
39+
Anyone wishing to help in the development of the Roundup Python core
40+
may find `Roundup's Design Document`_ and the `implementation notes`_
41+
helpful.
3542

36-
Most small changes can be submitted as patches through the
37-
`issue tracker`_ or sent to `roundup-devel mailing list`_.
43+
People working on Documentation or designing changes to the Web
44+
interface don't need to get into the implementation internals.
3845

3946

40-
Source Repository Access
41-
------------------------
47+
Small Changes
48+
-------------
4249

43-
See https://www.roundup-tracker.org/code.html.
44-
For all other questions ask on the development mailinglist.
50+
Most small changes can be submitted as patches through the
51+
`issue tracker`_ or sent to `Roundup-devel mailing list`_.
4552

4653

4754
Project Rules
4855
-------------
4956

50-
Mostly the project follows Guido's Style (though naming tends to be a little
51-
relaxed sometimes). In short:
57+
Be polite to others. There is no place for ad hominem attacks.
58+
59+
Mostly the project follows Guido's Python Style (though naming tends
60+
to be a little relaxed sometimes). In short:
5261

5362
- 80 column width code
5463
- 4-space indentations
55-
- All modules must have an Id line near the top
5664

5765
Other project rules:
5866

59-
- New functionality must be documented, even briefly (so at least we know
60-
where there's missing documentation) and changes to tracker configuration
61-
must be logged in the upgrading document.
62-
- subscribe to roundup-checkins to receive checkin notifications from the
63-
other developers with write access to the source-code repository.
64-
- discuss any changes with the other developers on roundup-dev. If nothing
65-
else, this makes sure there's no rude shocks
66-
- write unit tests for changes you make (where possible), and ensure that
67-
all unit tests run before committing changes
68-
- run pychecker over changed code
67+
- new functionality must be documented, even briefly (so at
68+
least we know where there's missing documentation) and
69+
changes to tracker configuration must be logged in the
70+
upgrading document.
71+
- discuss any changes with the other developers on
72+
Roundup-dev. If nothing else, this makes sure there's no
73+
rude shocks.
74+
- write unit tests for changes you make (where possible),
75+
and ensure that all unit tests run before committing
76+
changes.
77+
- run flake8_ or pylint_ over changed code.
78+
- if you have direct commit access to the repository,
79+
subscribe to Roundup-checkins to receive checkin
80+
notifications from the other developers with write access
81+
to the source-code repository.
82+
83+
The goal is to have no flake8 issues. Current code does include long
84+
lines and use of mutable objects in function signatures. Some third
85+
party code (e.g. ZPT) vendored into the codebase has more issues.
6986

7087
The administrators of the project reserve the right to boot developers who
7188
consistently check in code which is either broken or takes the codebase in
7289
directions that have not been agreed to.
7390

91+
Source Repository Access
92+
------------------------
93+
94+
Roundup is developed using the `Mercurial distributed version control
95+
system (DVCS)`_ [1]_. It is `hosted at Sourceforge`_. See
96+
https://www.Roundup-tracker.org/code.html for details.
97+
For all other questions ask on the development mailing list.
98+
99+
Other Resources - CI, Code Coverage
100+
-----------------------------------
101+
102+
Roundup has a `copy of the mercurial repository on GitHub`_. It is
103+
updated manually after every few commits to the Mercurial
104+
repository. Updates trigger the CI pipeline which happens on two
105+
services:
106+
107+
1. `GitHub Actions`_. It runs Docker container scans using Anchore as
108+
well as security scans for dependencies using CodeQL. Also it
109+
runs the test suite on multiple versions of Python.
110+
2. `TravisCI`_ is also used to run CI. It runs the test suite on
111+
multiple Python versions. It also provides alpha and development
112+
Python releases faster than GitHub.
113+
114+
GitHub actions upload coverage statistics to both `CodeCov`_ and
115+
`Coveralls`_. TravisCI only uploads to CodeCov.
116+
117+
We run our own issue tracker so we can dogfood the code. So we do not
118+
use GitHub issues. Pull requests are grudgingly accepted. They have to
119+
be exported and applied to the Mercurial repository. This is time
120+
consuming so patches attached to the issue are preferred.
74121

75122
Debugging Aids
76123
--------------
@@ -126,7 +173,7 @@ GNU gettext package
126173

127174
This chapter is full of references to GNU `gettext package`_.
128175
GNU gettext is a "must have" for nearly all steps of internationalizing
129-
any program, and it's manual is definetely a recommended reading
176+
any program, and it's manual is definitely a recommended reading
130177
for people involved in `I18N`_.
131178

132179
There are GNU gettext ports to all major OS platforms.
@@ -269,7 +316,7 @@ Template markup examples:
269316
will translate the caption (and return value) for the "wink" button.
270317

271318
* explicit msgids. Sometimes it may be useful to specify msgid
272-
for the element translation explicitely, like this::
319+
for the element translation explicitly, like this::
273320

274321
<span i18n:translate="know what i mean?">this text is ignored</span>
275322

@@ -400,6 +447,11 @@ Translatable Messages`_.)
400447
At run time, Roundup automatically compiles message catalogs whenever
401448
`PO`_ file is changed.
402449

450+
.. [1] Roundup is written in Python and we believe in using tools in
451+
the Python ecosystem whenever possible.
452+
453+
454+
403455
.. _`Customising Roundup`: customizing.html
404456
.. _`Roundup's Design Document`: spec.html
405457
.. _`implementation notes`: implementation.html
@@ -409,33 +461,47 @@ At run time, Roundup automatically compiles message catalogs whenever
409461

410462
.. _alexander smishlajev:
411463
.. _als: https://sourceforge.net/u/a1s/profile/
464+
.. _CodeCov: https://app.codecov.io/gh/roundup-tracker/roundup
465+
.. _copy of the mercurial repository on GitHub:
466+
https://github.com/roundup-tracker/roundup
467+
.. _Coveralls: https://coveralls.io/github/roundup-tracker/roundup
412468
.. _cygwin: https://www.cygwin.com/
413469
.. _emacs: https://www.gnu.org/software/emacs/
414-
.. _gettext package: http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/gettext.html
470+
.. _flake8: https://flake8.pycqa.org/en/latest/
471+
.. _gettext package: https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/gettext.html
415472
.. _gettext module: https://docs.python.org/2/library/gettext.html
416-
.. _GNU: http://www.gnu.org/
417-
.. _GNU mirror sites: http://www.gnu.org/prep/ftp.html
473+
.. _GitHub Actions: https://github.com/roundup-tracker/roundup/actions
474+
.. _GNU: https://www.gnu.org/
475+
.. _GNU mirror sites: https://www.gnu.org/prep/ftp.html
476+
.. _hosted at sourceforge:
477+
https://sourceforge.net/p/roundup/code/ci/default/tree/
418478
.. _issue tracker: https://issues.roundup-tracker.org/
419479
.. _Lokalize: https://apps.kde.org/lokalize/
420480
.. _KDE: https://kde.org/
421481
.. _linux: https://www.linux.org/
482+
.. _Mercurial distributed version control system (DVCS):
483+
https://www.mercurial-scm.org/
422484
.. _Plural Forms:
423-
http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/gettext.html
485+
https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/gettext.html
424486
.. _po filetype plugin:
425487
https://vim.sourceforge.io/scripts/script.php?script_id=695
426488
.. _PO utilities: https://github.com/pinard/po-utils
427489
.. _poEdit: https://poedit.net/
490+
.. _pylint: https://pylint.pycqa.org/en/latest/
428491
.. _Roundup Source:
429492
.. _Roundup source distribution:
430493
.. _Roundup binary distribution:
431494
https://sourceforge.net/projects/roundup/files/
432495
.. _roundup-devel mailing list:
433496
https://sourceforge.net/projects/roundup/lists/roundup-devel
497+
.. _StarterTicket on https://issues.roundup-tracker.org:
498+
https://issues.roundup-tracker.org/issue?@columns=title,id,activity,status&@sort=activity&@filter=status,keywords&status=-1,1,2&keywords=15&@dispname=Starter%20tickets
434499
.. _TAL:
435500
.. _Template Attribute Language:
436501
https://pagetemplates.readthedocs.io/en/latest/history/TALSpecification14.html
437502
.. _TALES:
438503
.. _Template Attribute Language Expression Syntax:
439504
https://pagetemplates.readthedocs.io/en/latest/history/TALESSpecification13.html
505+
.. _TravisCI: https://app.travis-ci.com/github/roundup-tracker/roundup
440506
.. _vim: https://www.vim.org/
441507
.. _ZPTInternationalization: http://grok.zope.org/documentation/how-to/how-to-internationalize-your-application/view

doc/index.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,25 @@ Contents
1717
features
1818
installation
1919
upgrading
20+
security
2021
FAQ
2122
user_guide
2223
customizing
2324
admin_guide
25+
security
2426
debugging
2527
xmlrpc
2628
rest
27-
overview
29+
tracker_templates
30+
glossary
31+
acknowledgements
32+
license
33+
Design Overview <overview>
2834
Design (original) <design>
2935
developers
30-
tracker_templates
3136
Notes about the MySQL Database backend <mysql>
3237
Notes about the PostgreSQL Database backend <postgresql>
33-
glossary
34-
acknowledgements
3538
Richard Jones implementation notes <implementation>
36-
license
3739

3840
See: https://wiki.roundup-tracker.org/ReleaseErrata for fixes to
3941
documentation.

0 commit comments

Comments
 (0)