Personal Details
Name: Joannah Nanjekye
IRC Name: joannah
GitHub name: nanjekyejoannah
Email: jnanjekye@python.org
Blog: https://medium.com/@Captain_Joannah
CV Link: https://shorturl.at/vwyNT
Abstract
MediaWiki.org is the open source platform for Wikipedia, wikimedia projects and documentation and other projects. The project is open source and has attracted many users and contributors over time due its popularity as it is used by thousands of websites, companies, and organizations for collecting and organizing knowledge for convenient access by its users. MediaWiki documentation has evolved from the Meta-Wiki platform originally to the now official MediaWiki.org. However, the transition at the time of writing this document remains incomplete. The MediaWiki community is using this opportunity to complete the transition by consolidating any incomplete and duplicated documentation from Meta-Wiki, as well as reorganizing and updating any documentation that needs to remain on Meta-Wiki, to allow users to have a smooth experience when using MediaWiki to find the information they need.
Motivation
I have been an open source contributor since 2015, started as a Rails Girls Summer of Code intern, then got into outreachy in 2017 to work on Ceph, after which I started the process of becoming a Python core developer, which ended in a promotion in 2019. I am passionate about writing documentation and use the summer months to contribute to open source documentation projects. The MediaWiki project fits my description of useful open source software and being a technical writer for the project, will allow me to make a significant contribution to a diverse set of users, which includes thousands of websites, companies, and organizations. The big picture is for my work to be part of an effort that in the end helps with collecting and organizing knowledge to make it available to people that MediaWiki powers.
Project Details
Current Status of Documentation
Documentation on both Platforms is not up-to date because; 1) several pages that were supposed to be moved from the Meta-Wiki to MediaWiki.org need prior modifications due to licensing restrictions and remain unmoved as a result; 2) other pages are duplicated across the two platforms and; 3) genuine Meta-Wiki documentation on how MediaWiki is used on Wikimedia projects exists without good structure, hindering convenient access and maintainability.
Analysis and Verdict
I have taken about two weeks to assess the current state of documentation on the two platforms, and as mostly discussed in the project proposal, most of the work during the documentation period should focus on rewriting licensed Meta-Wiki pages, updating duplicated pages between the platforms and improving the structure of the remaining Meta-Wiki pages.
Licensed content from the Meta-Wiki needs rewriting after thorough analysis of the licenses. There is room for some restructure especially things like m:Help:Special*, and any other regrouping, subject to approval by other contributors and maintainers.
Towards consolidating duplicate content, for better maintainability, the focus should be to make referencing as self contained as it can be, while adding any missing information to the MediaWiki versions of the pages. This means this should happen after moving the licensed pages as well, to limit references to the Mata-Wiki as much as we can.
The pages like m:Help:How to start a new Wikipedia that have to remain on the Meta-Wiki, can be restructured, breaking them down to subsection links for easy access on first glance. Restructuring can also group topics like those related to users together.
These are preliminary ideas but I believe if hired, I will perform a full audit of the documentation, within the scope of the project concretely come up with a new structure for the documentation under Project:MediaWiki_documentation_on_Meta-Wiki/List#Actually_WMF-specific, as well as a transition approach for licensed documentation.
Timeline and Schedule of Deliverables
There are three major documentation tasks required for the consolidation and organization of the MediaWiki documentation:
- Rewrite and move licensed pages
- Update duplicate pages
- Restructure Meta Pages
After carefully studying the provided timeline in the proposal, I decided that it matches my planning, so I will adopt it with a few modifications. Should any changes come up, they can be incorporated if communicated by the mentors. The table below details a tentative schedule of tasks on the project.
Key Dates | Tasks |
Community Bonding | |
2 weeks (May 20 - June 1) | Set up accounts, and orient to tools |
Review project plan and determine the final scope of activities | |
Decide on communication channels and frequency | |
Install tooling and project setup | |
Documentation Development | |
Rewrite and move licensed pages | |
4 weeks (June 2 - June 29) | Audit duplicated content on the Meta page |
Write missing content needed for MediaWiki.org, and get feedback | |
Publish | |
Update duplicate pages | |
9 weeks (June 30 - August 31) | Review pages and group into subject topics |
Audit pages in each subject topic | |
Rewrite content following licensing policies, and get feedback | |
Publish | |
Restructure Meta Pages | |
5 weeks (September 1 - October 5) | Review Wikimedia-specific content on Meta, including content in this category identified during phases 1 and 2 topics |
Design an information architecture for this content | |
Get feedback | |
Implement changes to meta:Help | |
Project Finalization | |
3 weeks (October 6 - October 26) | Identify and complete cleanup tasks |
Identify follow-up work | |
Write a project report describing outcomes, learnings, best practices, and recommendations for future projects | |
Budget
The following is a breakdown of tasks and respective budget.
Task | Budget (USD) |
Rewrite and move licensed pages | 4000 |
Update duplicate pages | 4000 |
Restructure Meta Pages | 4000 |
Total | 12000 |
Communication
I will be available by email and the project communication forum. I am also always available for a call on google meet, zoom, jitsi or any other tool of choice.
Specifications
- I will be located in New Brunswick, Canada in the Atlantic time zone however, I am flexible as it is a matter of scheduling
- I will keep track of the project status on GitHub and will write a bi-weekly blog on my progress. If there are any other platforms recommended by the mentors, I am flexible to adapt
- I will discuss tasks and have meetings with mentors on the community forum and calls if required
- I am eligible to work in Canada . I hold a student permit with a work allowance
- I am eligible to work off campus too and have had a work term with my PHD funding company, IBM
Obligations
I am a PHD student waiting to defend my thesis, so I do not have pressing obligations. On September 23 - 27, I will travel to attend the Python core developer sprints.
Writing Experience
I have writing experience from authoring a book titled “Python 2 and 3 compatibility with Apress”. Authoring technical papers as a Computer Science Ph.D. candidate has also significantly improved my writing skills.
I am familiar with the open source workflow having been an avid contributor since 2016. I currently maintain upstream Python as a core developer.
Specific to the MediaWiki project, I have tried to acquaint myself with the contributor workflow, through observation.. I believe it involves steps like, before a page is improved, a contributor would have to make the changes on his or her sandbox page first, ask for reviews from maintainers of the community, get reviewed and then merged to the main namespace.
I have also participated in the following three previous rounds of Google Season of Docs, 2020, 2021, and 2022:
MicroPython Internals: https://developers.google.com/season-of-docs/docs/2020/participants/project-micropython-joannahnanjekye
SymPy: https://github.com/sympy/sympy/wiki/GSoD-2021-Case-Study
Geomstats: https://geomstats.github.io/gsod.html
The following is a selected summary of my other technical writing experience.
Kind | Title | Publisher | URL |
Book | Python 2 and 3 Compatibility: With Six and Python-Future Libraries | Apress | https://www.amazon.ca/Python-Compatibility-Six-Python-Future-Libraries/dp/148422954 |
Book | Deploying and Managing Python with Kubernetes | Apress | To be released this year |
Paper | Eclipse OMR garbage collection for tracing JIT-based virtual machines | ACM | |
Paper | The Garbage Collection Cost For Meta-Tracing JIT-Based Dynamic Languages | ACM | |
Paper | Towards Reliable Memory Management for Python Native Extensions | ACM | |
Defensive Patent | Type-Based Stores for Data Structure Polymorphism | IP.COM | https://priorart.ip.com/IPCOM/00274036D |
Blog Post | Running a Python application on Kubernetes | opensource.com | https://opensource.com/article/18/1/running-pythonapplication-kubernetes |
Blog Post | Running a Python application on Kubernetes | Apress | https://www.apress.com/gp/blog/all-blog-posts/running-a-python-application-on-kubernetes/15338678 |
Blog Post | Ruby in Containers | The New Stack | https://thenewstack.io/ruby-in-containers/ |
Other FoSS contributions
The following are relevant contributions I have made in open source. They are mostly code contributions with relevant documentation.
CPython
My area of expertise on Python is interpreters and the CAPI. I recently implemented PEP 554 for use in the test suite. I have authored several pull requests on the interpreter and runtime core.
https://github.com/python/cpython
Ceph
I contributed to Ceph during my summer internship with outreachy and worked on multi language testing for the rados gateway. I wrote tests to test the s3 interface for the gateway. I implemented test suites in golang and Java that have been forked by ceph and still being maintained.
https://github.com/nanjekyejoannah-zz/go_s3tests
https://github.com/nanjekyejoannah-zz/java_s3tests
PyPy
Pypy is an alternate implementation of the python language and features a GIT making programs using it to run faster. I have been adding missing posix attributes for pypy on its python 3.5 branch.
https://bitbucket.org/pypy/pypy/pull-requests/?state=MERGED&author=nanjekye
https://bitbucket.org/pypy/pypy/pull-requests/?state=OPEN&author=nanjekye
Also, my PHD thesis is mainly on PyPy.
Qutebrowser
I started contributing to open source on qutebrowser during Rails girls summer code and was able to make the contributions below for three months.
https://github.com/qutebrowser/qutebrowser/pulls?q=is%3Apr+is%3Aclosed+author%3Ananjekyejoannah-zz