@@ -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
1010Contents
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
1916Getting 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
2526All 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
4754Project 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
5765Other 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
7087The administrators of the project reserve the right to boot developers who
7188consistently check in code which is either broken or takes the codebase in
7289directions 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
75122Debugging Aids
76123--------------
@@ -126,7 +173,7 @@ GNU gettext package
126173
127174This chapter is full of references to GNU `gettext package`_.
128175GNU 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
130177for people involved in `I18N`_.
131178
132179There 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`_.)
400447At 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
0 commit comments