Contents
General Infos
Please read MoinMoinWiki for general information about MoinMoin, read MoinMoin2.0 for infos about moin2.
If you want to help preparing the list, join us on MoinMoinChat.
Collection of (more or less) easy TODOs
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.
Ideas
Most stuff here should be for moin2 (see also MoinMoin2.0). A task is for moin2 except explicitely noted otherwise.
Please keep in mind that we are concentrating on the basic feature set for moin 2.0 release, so don't add ideas for extensions or features we don't really need as a basic feature.
Code
(Tasks related to writing or refactoring code)
Code - Tests
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 find out what's going wrong with MoinMoin/converter/_tests/test_moinwiki_in.py:317 and either fix it or improve the skip messages
- MOINTODO, MWTODO, RSTTODO, CREOLETODO markers in the docs
- 6x task type 1:
- reproduce all such issues from
- accounts.rst
- markups.rst + rest.rst
- creolewiki.rst
- moinwiki.rst
- mediawiki.rst from beginning to line 260
- mediawiki.rst from line 260 to end
- if you CAN reproduce the issue, check our issue tracker whether we have in 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
- 6x task type 1:
- MOINTODO, MWTODO, RSTTODO, CREOLETODO markers in the docs
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
Code - UI related CODING (see also UserInterface)
Code - Security
- (multiple times) do a security review of moin 1.9
- (multiple times) do a security review of moin 2.0
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 alternatives from 3rd party projects
- you need to create something that is easy-to-use for moin form creators, kind of automagic
- requires: python, html, jinja2
- deliverables: patch
Code - Misc
- bug: create a new item (rev), delete item, destroy trashbin item, crash
- maybe related bug: orphaned items lists some stuff that should be gone (after that crash)
3x https://bitbucket.org/thomaswaldmann/moin-2.0/issue/16/highlighter-for-moin-wiki-creole-wiki
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/182/interwiki-links-do-not-work-for-creole
Code - moin 1.9
Improve existing patches, fix issues, test them thoroughly:
Write new code:
- reimplement moin maint cleanpage so it is platform independant (it currently outputs a shell script, not usable on windows)
- write a moin script that classifies all entries of all edit logs
- whether the log lines parses without raising an exception
- whether the userid referenced exists
- whether the page revision / attachment file exists
- output a report for all unusual classifications
- write a moin script that efficiently determines the edit count (how many modifications did a user do?) of a set of userids
- for page revisions, it only counts as edit if the page revision still exists
- for an attachment, it only counts as edit if the action was the last of its kind
- output a report (userid, name, edit count (sorted by edit count)
(later, needs breaking into smaller pieces: http://www.moinmo.in/FeatureRequests/UserMerge )
Documentation / Training
(Tasks related to creating/editing documents and helping others learn more)
No UI docs tasks, it is still unfinished/unstable.
document markdown syntax (in a similar way as already existing docs for wiki, rst, etc.) - https://bitbucket.org/thomaswaldmann/moin-2.0/issue/260/markdown-markup-documentation-is-missing
- requires: markdown, rst
document docbook syntax (in a similar way as already existing docs for wiki, rst, etc.) - https://bitbucket.org/thomaswaldmann/moin-2.0/issue/259/docbook-markup-documentation-is-missing-in
- requires: docbook, rst
2x https://bitbucket.org/thomaswaldmann/moin-2.0/issue/285/extend-the-moin-man-page
account-create This command allows you to create a user account account-disable This command allows you to disable user accounts. account-password This command allows you to set a user password. index-build Build the indexes. index-create Create empty indexes. index-destroy Destroy the indexes. index-dump Dump the indexes in readable form to stdout. index-move Move the indexes from the temporary to the normal location. index-optimize Optimize the indexes. index-update Update the indexes.
maint-set-meta This command can be used to set meta data of a new revision. item-get Get an item revision from the wiki. item-put Put an item revision into the wiki. load Deserialize a file into the backend. save Serialize the backend into a file. moin Runs the Flask development server i.e. app.run() runserver Runs the Flask development server i.e. app.run() shell Runs a Python shell inside Flask application context
- create pretty(!) SVG graphics for moin2 docs (and talk slides)
- architecture of an item / revision / metadata data (for developers)
- architecture of storage/indexing/protection layers (for developers)
- overall architecture of moin2
Outreach / Research
(Tasks related to community management, outreach/marketing, or studying problems and recommending solutions)
- research contents and design of a new html/css-based, graphically impressive front page for a new moin2-based project site
- followup: 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
- 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?
- are there memory/filehandle/other leaks or anything else unusual/unexpected?
- 1x moin 1.9 with xapian
- 1x moin 2
- research usability
- use moin2 and find usability issues
- make specific suggestions about how to improve
- how can the moin project improve outreach?
- ... make it more easy for new developers?
- ... make it more easy for new users?
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/39/language-attributes-missing
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/88/decide-about-editor-help
Quality Assurance (Testing)
(Tasks related to testing and ensuring code is of high quality)
- test moin2 manually and write a bug report
find a bug while practically using the wiki on http://test.moinmo.in/
- check if the bug is already described, only new bugs count
- create a bugreport on our issue tracker on bitbucket
- after a mentor has confirmed the report your task is finished
- requires: writing skills, live testing skills
- 3x install moin2 development environment (windows / linux / mac os x)
create a user home page on http://moinmo.in to log your progress
- one paragraph to describe your Python knowledge and prior programming experience
- one paragraph to describe your PC, OS environment
- was Python or Mercurial installed previously
- problems encountered while installing moin2 development environment
- total time to install, what documentation did you read, frustrations
- After moin2 development environment is installed
- create and save home page
- create a login ID and make yourself a superuser
- change wiki name and logo
- extra credit - install Stylus (required if you intend to work on CSS task)
- add a unit test that is still missing
run automated and manual tests on on python 2.6 and pypy (>1.9 release or nightly build)
- add a selenium-based automated test that is still missing
- selenium test: user
- create user
- check that user is created and read msg
- login
- logout
- selenium test: user settings
- login user
- go to Settings
- test all Forms there if data can be entered and stored.
- selenium test: contenttype item
- create text item
- assert that the item is created
- modify
- assert modification is done
- rename
- assert rename is successful
- download
- assert download has worked
- highlight
- assert hightlight
- meta
- assert that we have something on meta
- delete
- assert that item is deleted
- create text item
- selenium test: user
UserInterface
(Tasks related to user experience research or user interface design and interaction)
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/101/research-fugue-icon-set
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/11/improve-modernized-item_views-rendering
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/286/search-view-unpretty-wrapping
- no left alignment "These items have subitems that match your filter:" with stuff below
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/19/user-settings-are-incomplete
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/288/destroy-revision-view-should-use
- index view: can not click on action triangle (modernized), filter (foobar)
- foobar: triangle missing for action
- foobar user browser action buttons: low contrast
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/290/delete-bookmark-link-has-low-contrast
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/291/foobar-theme-home-link-is-not-coloured-as
- index view: filter: click on more to see less
- index view select all looks like headline, but is clickable action
- foobar: metadata panel ugly wrapping
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/292/tags-view-tiny-font-size
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/289/orphans-view-shows-item-views-panel
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/92/wikiconfighelp-view-is-not-uptodate-has
