Welcome to this project's midpoint report! This report shares progress and learning from the grantee's first 3 months.
In a few short sentences or bullet points, give the main highlights of what happened with your project so far.
We have entered the rabbit hole.
- I attended the 2018 Wikimedia Hackathon in Barcelona and visited the Wikimedia Foundation office to discuss the project and collaborate with various developers and teams working on related projects.
- The enormous backlog of bugs, feedback, and issues to consider across various projects has been generally consolidated into a single location: the Timeless phabricator workboard, with more feedback constantly incoming.
- Improvements and compatibility fixes from Timeless and a few other skins have been consolidated into the Example skin so that all new skins made from it should now have much better out-of-the-box support for expected features.
- With a patch submitted by Jack Phoenix, we have submitted a Request for Comment to improve MediaWiki core support for wiki-specific customisation of skin styles, to both better support usability improvements on Wikimedia projects as well as more varied visual identities for third-party projects without the need for an entirely new skin.
- Development has improved the internal architecture of the Timeless skin to just generally break things less. It's still pretty bad.
Methods and activities
How have you setup your project, and what work has been completed so far?
Describe how you've setup your experiment or pilot, sharing your key focuses so far and including links to any background research or past learning that has guided your decisions. List and describe the activities you've undertaken as part of your project to this point.
This report covers activities from May 2018 to December 2018.
- Community outreach
- User feedback and bug reports have been reported across various venues, depending on who is reporting it and the nature of the issue/information in the first place - some sent directly to me on IRC, some reported on various talkpages, a few projects (especially non-english ones) having dedicated pages on-wiki to discuss issues locally before passing them along. Based on this, I have been consolidating this information on the Timeless phabricator workboard by creating new tasks and adding the user feedback to relevant existing ones.
- As part of the project goal to better address the needs of developers as well as end users, I attended the Wikimedia Hackathon in Barcelona and visited the Wikimedia Foundation office to meet with other developers and teams directly to discuss the project and, in a couple of cases, how our respective work could impact each other's projects. This also brought up potential needs and especially timeline considerations that I would need to work into the project in practice - a lot of cross-team and wider MediaWiki development processes and discussions can be quite slow.
- As new concerns and possible affected use cases arise, I have asked for feedback in various onwiki and phabricator discussions, as well as IRC in project-specific channels for quick input from users outside of my usual testers. While some of the resulting feedback has been a bit amusing ("Modern is the hill I will die on"), even that has provided useful context and a reminder of how we should be proceeding with such skinning work in general: that this is about providing more robust options for users and simplifying the development process around these options, not taking things away.
- Timeless development
- Most of the work has been on various bug and compatibility fixes, in order to make the Timeless skin better work within the environment to which it is deployed, including quite a bit of consolidation and triage of the reported issues themselves (per the outreach activities) in order to properly understand and track the differences between expected and extant behaviour.
- Some of the planned more advanced features, such as the themes, icon handling, and improved header layout, have proven more complicated than initially expected. To better understand the options and how best to implement solutions in practice, I have looked into and in a few cases done work on related skins/extensions that currently implement similar, to see if their handling can be directly replicated or reused in order to maintain consistency and avoid reinventing the wheel.
- General skinning improvements
- For the theme functionality in particular, we found that really the only good way to do this is to move the functionality into core. Currently, it exists as a third-party extension, but this comes with certain limitations as to how the resources can be handled and what can really be done, skin-side, moving forward, so we wrote up a Request for Comment to merge it into core. This will add MediaWiki core support for wiki-specific customisation of skin styles, to both better support usability improvements on Wikimedia projects as well as more varied visual identities for third-party projects without the need for an entirely new skin.
- I have been compiling a list of issues surrounding MediaWiki skinning that need to be addressed, based on my experiences working on this project and others, from which I hope to create a proper report later on.
What are the results of your project or any experiments you’ve worked on so far?
Please discuss anything you have created or changed (organized, built, grown, etc) as a result of your project to date.
- Community outreach
- The Timeless page on Meta serves as a central hub for tracking the project, and lists various places where users can go to discuss the skin or report issues, as well as how to test it out. This has been updated with a better listing of places, and is where the newsletters with updates on the project are stored and sent from.
- After consolidating the reports from the various venues, we have a much more central listing of tasks. Currently, a small backlog still exists in my personal notes (oops), and most of the new feedback is now being reported directly to phabricator, or on the skin talkpage on mediawiki.org.
- Timeless development
- Visually, Timeless looks basically the same as it began at the start of the project, but the internal architecture and general cross-compatibility are improved: gadgets such as HotCat and Twinkle at least show up, for instance, though their handling still needs considerable improvement.
- All patches that I have been directly involved in that were last touched within the first half of the project can be viewed on gerrit.
- General skinning improvements
- We now have a specific plan as to what to do about supporting theme functionality (skin variants) - the Request for Comments presents a path forward, that while unlikely to entirely occur within the scope of this project, will help to resolve many general problems down the road, and provide far more robust means with which to address several community wishlist items in the process, in particular for night mode and accessibility settings.
- Improvements and compatibility fixes from Timeless and a few other skins have been consolidated into the Example skin so that all new skins made from it should now have much better out-of-the-box support for expected features, including extensions such as VisualEditor and Notifications.
Please take some time to update the table in your project finances page. Check that you’ve listed all approved and actual expenditures as instructed. If there are differences between the planned and actual use of funds, please use the column provided there to explain them.
|Expense||Approved amount||Actual funds spent||Difference|
|Timeless skin development, outreach and research, and related expenses||8000 USD||8000 USD||0|
|Total||8000 USD||8000 USD||0|
Then, answer the following question here: Have you spent your funds according to plan so far? Please briefly describe any major changes to budget or expenditures that you anticipate for the second half of your project.
For the first half of the project, funds use within the specified item breaks down as follows:
- 6700 USD for actual work hours
- 1300 USD for travel to attend the Wikimedia Hackathon in Barcelona, as a part of which I also visited the WMF office in San Francisco.
For the second half, no meaningful changes are expected at this point, as I am now in a much more solid position to focus on the development and code itself.
The best thing about trying something new is that you learn from it. We want to follow in your footsteps and learn along with you, and we want to know that you are taking enough risks to learn something really interesting! Please use the below sections to describe what is working and what you plan to change for the second half of your project.
What are the challenges
What challenges or obstacles have you encountered? What will you do differently going forward? Please list these as short bullet points.
- There are several different aspects to this project, requiring a variety of not just skills, but also mindsets to effectively complete. Though there has also been some overlap, in particular, the stark shift between focusing on the development and the administrative and management aspects of the project has been a bit jarring, and as a developer primarily myself, getting back into the mind to compile and report on things after the fact has been difficult. As an alternative, effective logging and whatnot during development has also proven to be something of a blocker for me, though effectively using tools such as Phabricator helps, as these workflows have been optimised for development work.
- Much of the code that I am working with is very bad. Some of it is my fault, some of it is just ancient, and some is the result of various conflicting viewpoints on what is proper being put down to the repositories. As much as I knew about this going in, actually working with it is a whole other matter. This work has to be done on some level, however, so the only solution is simply to continue to move forward and address what is presently addressable, and make note of what is not. Resolving the underlying issues will be a matter for a later project.
- I have encountered various delays with the project due to personal health issues, which were particularly problematic as I am just one person: first illness, and later suffering a concussion. I would rather prefer to avoid repeating any of this, because getting started again after two months away from any project is difficult enough even without the side effects of a head injury, no matter how understanding the affected communities might be.
What is working well
What have you found works best so far? To help spread successful strategies so that they can be of use to others in the movement, rather than writing lots of text here, we'd like you to share your finding in the form of a link to a learning pattern.
- Learning pattern: When things go wrong, just tell people
Next steps and opportunities
What are the next steps and opportunities you’ll be focusing on for the second half of your project? Please list these as short bullet points. If you're considering applying for a 6-month renewal of this grant at the end of your project, please also mention this here.
- Next steps: do the rest of it.
- We are at the point now where much of the backlog consolidation, research, and outreach is, for the moment, basically done - it's time to focus specifically on fixing the bugs, implementing the features, and also porting fixes and moving forward with consolidating quite a bit of redundant and needlessly diverse code across quite a few skins, now that I have a much better idea what we're actually dealing with here.
- Of these features and fixes, specific ones to call out in particular include:
- Theme support (even if the backend support itself is not deployed to Wikimedia at this point, we can still implement the themes themselves skin-side, and the sort of restructuring required for that represents an important pattern for how we should be developing skins in general)
- Implementing the requested configuration options: sidebar layouts, logo handling, removal of the cat
- Better tools handling for both gadget/extension support as well as general usability
- Redoing the header layout so it stops breaking and is generally more useful
- General discussions:
- We will continue to move along the Theme RfC, wherever it winds up.
- Once this project is further along, we will need to figure out what we're doing, longer-term, with regards to the deployment of Timeless itself - it was deployed to Wikimedia as an experiment, and it will need to be discussed more widely what to do with it at the end of this, based on this. Do we want to keep it? Do we want to make something new with it? What does the development community make of it? What do the editing communities make of it?
I am not considering applying for a renewal for this project at this time - I expect rather that any follow-up proposals will be as their own projects, that should stand on their own merits based on the discoveries of this one, and other investigations into the MediaWiki ecosystem as a whole.
We’d love to hear any thoughts you have on how the experience of being an grantee has been so far. What is one thing that surprised you, or that you particularly enjoyed from the past 3 months?
- I've been very impressed by how understanding and downright friendly the editing communities have been in light of all the delays, bugs, and random setbacks that have occurred so far in this project, especially considering the rather rocky history developers have had in the past working on skinning and frontend design issues. Generally the volunteers I've talked to have been nothing but helpful, even the ones militantly refusing to ever give up Modern.