Collection of easy TODOs
Note for GCI: 1x means "one task" of this kind, 10x means 10 tasks of this kind possible. We should not file too many tasks of same kind at the same time, though.
This is a collection of ideas that are helpful for newcomers to the project who seek a simple task that they want to work on.
Please read MoinMoinWiki for general information about MoinMoin, read MoinMoin2.0 for infos about moin2.
Most stuff here should be for moin2 except explicitely noted otherwise.
Please keep in mind that we are concentrating on the basic feature set for moin2, so don't add ideas for extensions or features we don't really need as a basic feature.
Contents
Code
(Tasks related to writing or refactoring code)
Code - Misc
combine references/sitemap views - https://bitbucket.org/thomaswaldmann/moin-2.0/issue/376/combine-sitemap-with-references-view
implement pygments highlighter https://bitbucket.org/thomaswaldmann/moin-2.0/issue/16/highlighter-for-moin-wiki-creole-wiki
- 1x for current moin2 markup (NOT stonage moin/trac)
- 1x for creole markup
- 1x for docbook xml markup (not just xml)
do a global systematic review about format strings - see https://bitbucket.org/thomaswaldmann/moin-2.0/issue/124/moin-crashed-on-cyrillic-urls-internal
you need to know how unicode vs. str works in python, but you don't need to know cyrillic
experiment with togetherjs, try integrating it, see https://bitbucket.org/thomaswaldmann/moin-2.0/issue/310/collab-editor
fix https://bitbucket.org/thomaswaldmann/moin-2.0/issue/182/interwiki-links-do-not-work-for-creole
add quicklinks setting to User Settings page - part of https://bitbucket.org/thomaswaldmann/moin-2.0/issue/19/user-settings-are-incomplete
encrypt notification emails with gpg - see https://bitbucket.org/thomaswaldmann/moin-2.0/issue/374/idea-use-openpgp-pgp-gnupg-encryption-for
- 1x add UI / code so a user can upload/update his gpg public key to his user profile
- 1x followup: use pubkey to encrypt outgoing mail
creating new user accounts with user_email_verification flag set to False - see https://bitbucket.org/thomaswaldmann/moin-2.0/issue/381/new-user-accounts-when
Code - Tests
- split long tests into smaller / simpler ones:
1x check the currently skipped roundtrip test MoinMoin/converter/_tests/test_moinwiki_in_out.py:131 and break it down into multiple tests. skip the currently failing part, but do not skip the currently succeeding parts.
1x split test_modify() from MoinMoin/items/_tests/test_Item.py into 2 smaller tests test_modify_content() and test_modify_meta()
add tests on frontend.diff and frontend.diffraw views with valid rev1 and rev2 URL arguments to MoinMoin/apps/frontend/_tests/test_frontend.py
refactor and create better test coverage for test_user() from MoinMoin/storage/middleware/_tests/test_validation.py. Test each metadata key with valid and invalid values.
- MOINTODO, MWTODO, RSTTODO, CREOLETODO markers in the docs
- first: see Quality assurance for type 1 tasks
later: >10x task type 2:
- choose 2 of those issues, update the issue tracker telling that you are working on a unittest for these
- add a (failing) unit test for each, put your changesets/patches on codereview, update the issue tracker with the codereview url of your proposed test
later: >10x task type 3:
- choose 1 of those issues, update the issue tracker telling that you are working on a fix for it
- reproduce the issue, see the failing unit test
- fix the issue, see the corresponding unit test succeeding now
- put your changeset/patch on codereview, update the issue tracker with the codereview url of your proposed fix
- after an accepted codereview, publish a changeset / do a pull request on bitbucket
- 3x add a unit test that is still missing
Code - Javascript
- review js code for "onload" or similar initialization stuff
- it seems to be unused, do we need it?
- so we need to be able to add such code by configuration or modification of a template?
- remove unneeded code, add needed code / mechanisms and docs
Code - moin 1.9
- reimplement moin maint cleanpage so it is platform independant (it currently outputs a shell script, not usable on windows)
- Review existing patches, fix issues / improve them, test them thoroughly:
Documentation / Training
(Tasks related to creating/editing documents and helping others learn more)
No UI documentation tasks now, UI is still unfinished/unstable, too early to document it.
- 1x read our documentation (see docs/*)
- fix typos / grammar errors
- something missing / not understandable?
- requires: native english speaker, good English orthography / grammar scores
- improve the docs for:
- 1x (new) developers / contributors
- 1x (new) admins of the software
- 1x (new) users of the software
- requires: native english speaker, good English orthography / grammar scores
- document a supported syntax in reST markup for sphinx (in a similar way as already existing docs for wiki, rst, etc.)
1x document markdown syntax - https://bitbucket.org/thomaswaldmann/moin-2.0/issue/260/markdown-markup-documentation-is-missing
1x document docbook syntax - https://bitbucket.org/thomaswaldmann/moin-2.0/issue/259/docbook-markup-documentation-is-missing-in
- 10x update documentation using reST markup
- we used epydoc before, so epydoc markup needs to be transformed into reST markup
- often there is simply markup missing
select one package (i.e. MoinMoin/converter/) and go through all classes / methods / functions and document them properly
Outreach / Research
(Tasks related to community management, outreach/marketing, or studying problems and recommending solutions)
Outreach
- how can the moin project improve outreach?
- ... make it more easy for new developers?
- ... make it more easy for new users?
- research contents and design of a new html/css-based, graphically impressive front page for a new moin2-based project site
- create the html/css for it
design a (laptop) sticker for MoinMoin
- use a scalable, free format accepted by some reasonable priced service that ships internationally
- do one design for dark (black) laptops, one for light (white) laptops
Research - 3rd party stuff
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/101/research-fugue-icon-set
- can we use it, should we? why? why not?
- research mediawiki templates
- what can they do, what are they typically used for
- shall we offer a similar mechanism? pros / cons?
- how could we implement it?
- 3x compare moin2 to one other popular wiki engine (mediawiki, dokuwiki, xwiki, ...)
- differences? pros / cons?
Research - Performance
- 3x research moin performance / scalability (on linux)
- test for show (random item), rc, search, rss/atom (req/s ?)
- test for 10, 300, 10000, 300000 items (how does it scale?)
- 1x moin 1.9
- 1x moin 1.9 with xapian
- 1x moin 2
- 3x research moin runtime resource consumption (on linux)
- how does resource consumption develop with a growing number of items/revisions?
- how does it develop over time (same process, increasing amount of requests)?
- how is memory consumption for big file up/downloads?
- are there memory/filehandle/other leaks or anything else unusual/unexpected?
- 1x moin 1.9
- 1x moin 1.9 with xapian
- 1x moin 2
- 2x research moin indexing time resource consumption (on linux)
- how does resource consumption develop with a growing number of items/revisions?
- how does it behave with very large items?
- are there memory/filehandle/other leaks or anything else unusual/unexpected?
- 1x moin 1.9 with xapian
- 1x moin 2
Research - Security
- 3x do a security review / security test of moin 1.9
- focus on one aspect / one method that you know well
- document what you searched for and what you found (or didn't find)
- 3x do a security review / security test of moin 2.0
- focus on one aspect / one method that you know well
- document what you searched for and what you found (or didn't find)
csrf protection for forms, see http://www.pythonsecurity.org/wiki/cross-siterequestforgery/
- we already have some ticket code in moin, but it is currently unused
- evaluate it and alternatives from 3rd party projects
- should play well with flask, jinja2, flatland, easy to use
- make a table with pros and cons of the potential solutions
Research - Misc
how to best handle this? https://bitbucket.org/thomaswaldmann/moin-2.0/issue/39/language-attributes-missing
Quality Assurance (Testing)
(Tasks related to testing and ensuring code is of high quality)
General note for this category:
Issues of all sorts have to be checked whether they exist in the issue tracker (do not create duplicates!):
- if they don't, a new issue has to be created there giving a lot of useful information about it.
- if they already exist, the existing issue should be improved, adding new information to it (or even just saying it still happens).
Issues can be found while using the wiki on http://test.moinmo.in/ (or a local installation).
It only counts if you find a new issue and describe it in an appropriate way or you can add substantial information to an existing issue.
If you can, suggest how to improve it / what/how precisely should be fixed.
- finding issues:
- 5x find a bug - make it crash or behave incorrectly
- 5x find a user interface / user experience issue
- 5x find a theme / design issue (looking ugly or inconsistent?)
- creating issues based on MOINTODO, MWTODO, RSTTODO, CREOLETODO markers in the docs:
- 6 tasks type 1:
- reproduce all such issues from
- 1x accounts.rst
- 1x markups.rst + rest.rst
- 1x creolewiki.rst
- 1x moinwiki.rst
- 1x mediawiki.rst from beginning to line 260
- 1x mediawiki.rst from line 260 to end
- if you CAN reproduce the issue, check our issue tracker whether we have an issue for it.
- if we have none yet, create an issue (title e.g. "mediawiki converter: ...") with a detailled description of the issue and how one can reproduce it. you MUST put MOINTODO, MWTODO, ... into the issue text, so one can search for that.
- if we already have an issue for it, check if you can update the issue with additional information.
- remove the TODO from the docs
- reproduce all such issues from
- 6 tasks type 1:
UserInterface
(Tasks related to user experience research or user interface design and interaction)
Userinterface - bootstrap related tasks
(work should be done in moin2 bootstrap repo and use bootstrap as far as possible)
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/375/quicklinks-do-not-scale-get-ugly
implement a pretty tag cloud template and also fix https://bitbucket.org/thomaswaldmann/moin-2.0/issue/292/tags-view-tiny-font-size
- no/few python needed, html (jinja2 template), css
- create a bootstrap UI for Subscriptions section on User Settings page (currently we have a simple textarea)
- check what we need to take from foobar theme into bootstrap theme (so we can drop foobar theme?)
- improve (bootstrap-style) the index views:
- 1x (big task) local index view
- 1x followup: global index view
- if you have experience with bootstrap, review our bootstrap usage, make suggestions on how to improve it
Userinterface - Misc
(not directly related to bootstrap, but work should be done in bootstrap repo also)
fix https://bitbucket.org/thomaswaldmann/moin-2.0/issue/92/admin-wikiconfighelp-view-is-not-uptodate
- editor help tab:
1x help-tab content for moin-wiki markup see also https://bitbucket.org/thomaswaldmann/moin-2.0/issue/88/decide-about-editor-help
- 1x make help automatically show the right help for other contenttypes, implement help for creole markup
- 1x implement help for other contenttypes
- editor ACL tab: move ACL editing to same tab as other metadata