General Infos
Please read MoinMoinWiki for general information about MoinMoin.
Read MoinMoin2.0 for infos about moin2.
Read GCI2011 for infos and links about Google Code-In 2011.
If you want to help preparing the list, join us on MoinMoinChat.
Collection of Ideas for Google Code-In 2011
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.
Creating subpages
We have our own submission tool to import from our wiki into melange.
Subpages that need help
Subpages ready for submission
Note: the 2nd task submission phase will end at 16th december 2011 08:00 UTC (until then, the tasks need to be in melange).
Ideas
Please read first: http://moinmo.in/EasyToDoTemplate
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.
All stuff needs review, whether it is easy enough (how much knowledge about moin and support libs does it need?), how long it could take
Documentation
(Tasks related to creating/editing documents)
Before creating tasks for documenting the user interface of moin2, please consider that the UI like it is now is mostly NOT in its final state. So a detailled documentation about would not be that useful, as UI will change...
Requires: english,rst,wiki
- medium: We have some TODO in our documentation about adding more docs, more examples, etc.
- pick one and do it
- you need to practically test it (e.g. if it is about adding a configuration example, you need to create such a configuration and copy a real, working example from your config to the docs)
- requires: sphinx,rst
- deliverables: patch
- medium: describe global history and all its functions
- HIST function
- bookmarks
- pagination
Quality Assurance (Testing)
(Tasks related to testing and ensuring code is of high quality)
- easy: test moin2 and write bug reports
maybe currently a bit early, there are lots and maybe too trivial 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
- testing moin2 upgrade (from 1.9, should be combined with updating/fixing docs afterwards)
should be done after namespaces branch merge
likely needs bug fixes / code changes then before/while doing QA
- medium: browser tests with selenium for user creation
- english default for browser
- create user
- check that user is created and read msg
- login
- logout
- remove user teardown.
- requires: selenium, java, python, seleniumbuilder firefox plugin
- deliverables: python unit test script and wiki page with description
- english default for browser
- medium: browser tests with selenium for some views
- 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
- delete
- assert that item is deleted
- requires: selenium, java, python, seleniumbuilder firefox plugin
- deliverables: python unit test script and wiki page with description
- create text item
- medium: browser tests with selenium for subitems and index
- create an item
- assert item created
- new subitems with index view
- assert new subitem is created
- requires: selenium, java, python, seleniumbuilder firefox plugin
- deliverables: python unit test script and wiki page with description
- create an item
Code
(Tasks related to writing or refactoring code)
Code - Tests
- run tests, there are some tests we currently skip (maybe there are also tests failing)
- find out why we skip them / why they fail:
- is the test wrong? fix it.
- is the test insane? write a better one.
- is the tested code broken? fix it.
- requires: python,pytest
- deliverables: patch with fix, documentation why fix is correct
- find out why we skip them / why they fail:
- MOINTODO, MWTODO, RSTTODO, CREOLETODO markers in the docs
- usually these are about markup not supported by the respective converter
- reproduce one of these issue
- check if we have a test for it, if not: add a test for correct behaviour (test must fail for unfixed issue)
- find out why it happens, fix the issue
- remove the TODO in the docs, in the code
- requires: python, pytest, dom/xml
- deliverable: patch
Code - UI related CODING (see also UserInterface)
- medium/hard: meta data / data types:
- nicer rendering of metadata (currently just a pre with a bunch of json)
- nicer editing of metadata (currently just textarea with a bunch of json)
write more jinja2 macros for form / form element creation with flatland http://discorporate.us/projects/flatland/
- now for user prefs, later maybe for metadata
- XXX list data types, create multiple tasks, 1 per type
- some types need special widget for some metadata keys, e.g. acl strings
- deliverables: patch
- medium: review all js code for onload stuff, use jquery for it, write docs for moin js developers
- requires: javascript,jquery,rst
- deliverables: patch
Code - Security
medium: 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
- hard: implementing signing in with 2-step verification
unclear: this depends on having a second way to communicate with the user, what do you suggest for that in our case? that second way, if it should really give additional security, needs to be an additional, independant way compared to the first communication path (which is e.g. a web browser on your PC). So, what independant way do you suggest? - SMS to mobile phone: usually costs money and needs quite special 3rd party services - not that interesting for many moin wiki sites
- email: often same device, not really independant
- even the suggestion from the video might be unsafe (e.g. if the browser used for login and that android authentication app both run on same android device - if your android device is compromised, you might not win any additional security by this)
- add a method for registering in that way
- needs to be optional / configurable
- requires: python, html, jinja2
- deliverables: patch
Code - Authentication
Code - Rewriting stuff
- medium: (re)writing MoinMoin/script/... stuff for storage-ng
needs a review what all we want to keep - easy 1x: account creation / change password / disable
- easy 1x: maint set_meta
- deliverables: patch
- multiple tasks
Code - Add Line Numbers to HTML Output
hard: moin 1.x had line numbers inserted into the HTML like this: "<span class="anchor" id="line-45">"</span>
- this provided a way for diff views to scroll the page to the changed lines and a means of scrolling the edit textarea for double-click to edit feature
- the task is to add line numbers to html output in moin2 using HTML5 custom attributes, something like "data-line-number: 45" would be added to whatever tag is generated by line 45
- one hard part is dealing with embedded parsers and transclusions
Training
(Tasks related to helping others learn more)
- medium: make a screen cast showing off moin2
this should be done rather late in GCI, then we have more to show off, less bugs, etc. - use "moin" command (builtin standalone server)
- featuring:
- item creation, modification, history, up/download
- rst, docbook, moinwiki, creole, ... items
- meta data
- transclusion, linking
- and more
- requires: screencast software, moin2 experience, good spoken english
- deliverables: screencast
- easy: make a new gource video of moin2
we already have one. do we really need a new one? - featuring:
- Extra: use some non GEMA protected / freely licensed sound
- requires: fast machine, video conversion experience, gource, xvfb knowledge optional
- deliverables: video
Research
(Tasks related to studying a problem and recommending solutions)
- hard: research http header / browser issues related to display and download of misc. mimetypes
this should be splitted in many tasks, otherwise I think we have to give 999h or more - writing test server code (small wsgi app that presents all test cases and documents expected behaviour)
- misc. combinations of: content-type, content-encoding, content-disposition
- misc. files: example.tar example.tgz, example.tar.gz, example.svg, example.svgz, example.svg.gz
- systematically testing with all major browsers for each in different versions
- IE6, 7, 8, 9
- FF 3.6, 4
- Chrome 8, 9, 10?
- Safari ...
- Opera ...
- what does browser do for each test case? show / save to disk?
- if it saves to disk: is the file content as expected. is extension correct?
- requires: http header / rfc knowledge, python, misc. browsers, english
- deliverables: wiki page with test results for each browser / test case
- medium: search for jquery table editor and document functionality
- look at:
- find an editor
- license
- look on filter, search, sort
- can it import html tables, so that it can be an inplace editor for different markups
- can it create tables as items and store it directly for transclusion
- requires: jquery, misc. browsers, english
- deliverables: wiki page with test results for each browser / test case
- look at:
Outreach
(Tasks related to community management and outreach/marketing)
- medium: Poster/Flyer (scalable!) for moin2
delay until after elevator speeches - audience: wiki users
- discuss about content with moin devs
- show off moin2, esp. the stuff that makes it unique / modern
- mention data conversion from 1.9
- requires: knowledge of moin-1.x and moin-2.x, svg editor (inkscape?), english, artistic skills
- deliverables: svg image / libreoffice document
- medium: poster/flyer for moin2, audience: developers (high level, not too detailed as everything is still in flux)
delay until after elevator speeches
- XXX we need to give content, task is only about nicely presenting that content
- requires: svg editor (inkscape?), english, artistic skill
- deliverables: svg image
- medium: write an article for a online/paper magazine about moin2 (maybe including some moin history?)
- first talk with moin developers before publishing
- we expect at least 2000 words plus at least 5 images.
- requires: moin2 knowledge, writing skills
- deliverables: wiki page with article
i think this is too early, (at least) delay until after elevator speeches
UserInterface
(Tasks related to user experience research or user interface design and interaction)
- in case I get the new theme code ready in time, we maybe could work on related stuff:
- some widgets living in the global/local sidebars
- display few recent changes (global history entries)
- display few recent changes of THIS item (local history entries)
- display a small tag cloud
- fix lots of broken views
- css (stylus) work
- litte js that expands / collapses the widgets in the sidebars, keeps state in session / cookie?
- display links to sister objects via a dropdown menu of the location_breadcrumbs display parts
interwiki name display -> other wikis / sister wikis / other sites
namespace name display -> other namespaces
toplevel items -> other toplevel items (does not scale, there are usually lots)
subitem -> other subitems on same level
/* -> subitems of this item
- some widgets living in the global/local sidebars
- hard: research and design new theme layout for viewing wiki pages
- wiki pages can be subdivided into "page content" and "wiki controls"
- traditional wiki controls include items like: logo, wiki name, page name, search box, user actions, page actions, navigation links, favorite pages, and page trail
- other items related to current page could be added to wiki controls: table of contents, list of page attachments, list of page subpages, pages with similar tags/categories, etc.
- The objective is to:
- decide which items should be included within the wiki control area
- design an efficient and eye pleasing layout using top bar, footer, sidebars, or multiple columns
- your design may target a full size display, a small display such as a netbook or smart phone, or displays of all sizes
- while the choice of colors and fonts is a factor; layout, intuitive controls, and accessibility issues are the most important factors for this task
- the most important part of any wiki page is the content; the wiki controls should play a supporting role and not dominate the page
- requires: html, css, some designs may require javascript
- 1/2/3x ?
- deliverables: wiki page describing advantages and original ideas, and html, css, or javascript files sufficient to show design and demonstrate any rollover or popup effects,
- hard: write required python/html/css code for accepted theme design
- requires: python,html,css,jinja2, accepted theme design
- tags: Code and User Interface
- 1/2/3x ?
- deliverables: patch, wiki subpage
usability tests & improvement (for someone who has never used Moin or a wiki before)
IMHO too early. we know that the UI still sucks, so why test it? - easy: Define a documentation task that you would use at school
- Try to perform the task using the Moin wiki (optionally you can have somebody else doing the task and observe him/her).
- multiple person class projects also OK
- Note any problems or any stuff that took you too long / were not intuitive
- Recommend ways how it could be done better / faster / more intuitive
- requires: newbie(s)
- Try to perform the task using the Moin wiki (optionally you can have somebody else doing the task and observe him/her).
- deliverables: wiki page describing detailed test results
Translation
(Tasks related to localization)
medium: translate http://hg.moinmo.in/moin/2.0/file/tip/docs/intro/general.rst into your native language
too early? maintenance when original text changes? - we want to use this on social networks for advertisements
- requires: rst sphinx
- requires native speaker (student) AND native speaker (mentor or reviewer)
Further Ideas
- medium: meta-task! play with moin2, precisely define 5 easy tasks for gci
- hard: meta-task! play with moin2, precisely define 3 medium tasks for gci
Fix issues
moin2
See also: https://bitbucket.org/thomaswaldmann/moin-2.0/issues?status=new&status=open
medium code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/2/security-rst-converter-javascript-urls
hard research code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/9/find-a-way-to-create-static-html-dumps
medium ui https://bitbucket.org/thomaswaldmann/moin-2.0/issue/11/improve-modernized-item_views-rendering
hard code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/14/i18n-for-javascript-code
3x medium code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/16/highlighter-for-moin-wiki-creole-wiki
hard ui code flatland https://bitbucket.org/thomaswaldmann/moin-2.0/issue/19/user-settings-are-incomplete
XXX check if still open https://bitbucket.org/thomaswaldmann/moin-2.0/issue/28/inserting-mywikipage-in-middle-of
XXX unclear, add more details https://bitbucket.org/thomaswaldmann/moin-2.0/issue/34/pre-sections
https://bitbucket.org/thomaswaldmann/moin-2.0/issue/36/ie9-and-chrome-incognito-hang-the-built-in
medium research code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/39/language-attributes-missing
hard research code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/45/destroy-item-rev-does-not-give-an
hard code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/58/notes-about-search-indexing
hard https://bitbucket.org/thomaswaldmann/moin-2.0/issue/60/search-query-add-some-more-clickable
hard research code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/62/kyoto-tycoon-kt-store-uses-not-threadsafe
XXX https://bitbucket.org/thomaswaldmann/moin-2.0/issue/65/scriptmaintreduce_revisions-still-uses
XXX https://bitbucket.org/thomaswaldmann/moin-2.0/issue/67/scriptmaintset_meta-still-uses-revnos-old
hard research https://bitbucket.org/thomaswaldmann/moin-2.0/issue/74/mad-url-redesign-item-lookup-idea
medium code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/80/transclusion-should-detect-circular
XXX too big, hard code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/81/store-a-list-of-names-into-meta-name
medium research code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/88/decide-about-editor-help
medium UI code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/91/access-denied-message-bad-formating
easy https://bitbucket.org/thomaswaldmann/moin-2.0/issue/92/wikiconfighelp-view-is-not-uptodate-has
medium/hard UI https://bitbucket.org/thomaswaldmann/moin-2.0/issue/93/design-ideas-guidelines
medium/hard code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/94/password-change-should-invalidate-sessions
medium code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/97/twitter-macro
hard code https://bitbucket.org/thomaswaldmann/moin-2.0/issue/98/fix-parentid-usage-use-mtime-less
medium UI 1.9 https://bitbucket.org/thomaswaldmann/moin-2.0/issue/101/research-fugue-icon-set
hard research https://bitbucket.org/thomaswaldmann/moin-2.0/issue/107/hierachical-acls
moin 1.9
Tagged some MoinMoinBugs with CategoryEasy (see the category page for more explanations).
Implement FeatureRequests
See also: https://bitbucket.org/thomaswaldmann/moin-2.0/issues?status=new&status=open
Because we cannot import feature requests directly, please create a short EasyTodo stub page that describes the task if you want that task to be done.
Tagged with CategoryEasy:
