Grants:Project/Isarra/Post-deployment support
Project idea
edit- TL;DR: Timeless has been deployed across all Wikimedia projects, with continuing feedback and issues incoming. This grant proposes to devote the development and design resources needed to effectively aggregate and address the results of this deployment in order to create a full-featured modern skin that effectively meets the needs of users across the projects.
What is the problem you're trying to solve?
editWhat problem are you trying to solve by doing this project? This problem should be small enough that you expect it to be completely or mostly resolved by the end of this project.
Remember to review the tutorial for tips on how to answer this question.
Essentially: the primary Wikimedia skin, Vector, is dated and difficult to use, but this cannot be effectively addressed until the underlying problems with the MediaWiki skinning system, and especially how we approach it as developers, are addressed. But without information on what a replacement might actually need in practice, addressing these problems is also very difficult.
Reader problems: the Wikimedia projects have a dated and cluttered interface that is distracting and difficult to read on desktop (Vector), and on mobile lacks meaningful navigation and has few to no paths forward even if they wanted to try to contribute (Minerva). The overall user experience is incredibly inconsistent, because along with the two mismatched skins, it is also comprised of a separate widget library, OOjs UI, which does not have styles for Vector; a bunch of arbitrary extension and gadget layouts; and arbitrary content.
Contributor problems: despite there being multiple skins available as options in preferences, none of them fully meet user needs, and only one is entirely supported and developed for by the Wikimedia Foundation (Vector).
- Actions, page, and site links are inconsistently organised across skins and even within a single skin. Vector has spaces for tools across the sidebar, above the page (tabs), within the page (content sub), as well as user and footer links, but current-page-specific tools seem to wind up in any of these but the user links.
- Content editors have no good way to make content work well across different skins because skins lack content styles that can be leveraged here (such as skin-defined styles for common types of templates, or reusable colours for borders, text, etc), and no good way exists to preview content across different skins when editing. Content often winds up too wide for different devices or skins as a result.
- Skin and interface changes often break editor workflows, gadgets, etc, with little apparent purpose or gain.
- Reader problems also apply.
Extension/library/gadget developer problems: no sane assumptions can be made about skins in general; the only way to make new tools/interfaces work with a given skin is often to specifically implement a solution for that skin.
- Different skins can have completely different internal structures (even in terms of naming the content block), use of styles, organisation of tools.
- Skinning standards are few and far between, as are useful abstractions in core.
- For these reasons, most work here is focussed only on making extensions work with Vector (the default) and other skins are largely ignored.
Skin developer/designer problems: there are few standards, so the only reliable approach to making sure things (extensions/gadgets/existing content) are likely to work with a new skin is to copy the structure and layout of Vector. The example skin cannot be used, despite being intended for precisely this purpose, because it has a structure different from Vector and also lacks features that have been added/implemented in Vector.
- Developers making extensions work with Vector almost never port the changes back to Example.
- The skinning backend lacks functions for abstracting out most common skin objects, forcing every skin to implement its own, which results in drift even when they started out the same.
- When the functions do exist, they are inflexible. Printing the footer prints exactly that block of html. Printing the category links prints exactly that format. Changing the layout of such things often requires reimplementing them from scratch. In the case of the category links, there are no higher-level functions that can be used to output a different format: the only approach is to query the database directly for the raw information and rewrite everything from there.
- Doing this causes extension and gadget incompatibilities. Gadgets, as js/css, are tied to an expected DOM to function. Many extensions do the same.
Core developer problems: Effectively improving the skinning backend to address the above requires an understanding of common skin skin practices that we simply do not have.
- The skinning code is messy and redundant. Multiple different functions might implement the same thing in slightly different ways, with no telling which are actually used, if any, but we lack the information needed to effectively choose one as the standard.
- The interface data is abstracted out in an opaque and frankly bizarre manner, but we lack the information needed to come up with something better.
- Standard functions across classes do not follow standards consistent with the rest of MediaWiki (getMsg vs msg), but fixing this would break all existing skins.
- Changing most of what is already in the skinning system would break all existing skins; to improve it would largely require simply implementing new functions/classes to more effectively meet the needs of fully-functional modern skins.
- No fully-functional modern skins exist to demonstrate the needs that need to be met.
The development problems are all a bit circular, but this circle is essentially why we cannot adequately address the issues with the current interface for readers and contributors, either. Thus the specific problem that this proposal concerns is this:
- No fully-functional modern skins exist to demonstrate the needs that need to be met.
What is your solution to this problem?
editFor the problem you identified in the previous section, briefly describe your how you would like to address this problem.
We recognize that there are many ways to solve a problem. We’d like to understand why you chose this particular solution, and why you think it is worth pursuing.
Remember to review the tutorial for tips on how to answer this question.
Timeless, a MediaWiki skin developed originally in 2015 for a skin creation Tech Talk, was recently deployed to Wikimedia production in August 2017, with full rollout to all projects as an alternative option to the existing skins (Vector, MonoBook, Cologne Blue, MinervaNeue, and Modern) in late November. This is effectively a beta release, ostensibly seeking testing and feedback from users, with full disclosure that the skin is not a finished project.
With the Timeless skin already deployed, this provides the perfect opportunity to develop the skin into a complete product that better serves the needs of the communities who have gone out of their way to ask to test it[1] beyond anything currently deployed, with a modern design and structured code. There is much work to be done, of course, including compatibility issues with other deployed extensions, and especially gadgets (these are a major blocker for a lot of users even testing the skin), as well as new feature development and testing various tool layouts and colour schemes, but doing this is the most effective way to truly find out just how much it will be in the first place, and thus what will be required of any future such projects. Similarly, we will also establish what will be required of gadget and extension developers who will in the future need to work around it, and all other skins, and provide other skin developers as well as future core developers who wish to work on the skinning system a real-world example of something that does address the main use cases, thus allowing us to perhaps finally move forward toward working on all the other problems, and eventually coming up with a skin worth replacing the current defaults and resolving their problems across the board.
Project goals
editWhat are your goals for this project? Your goals should describe the top two or three benefits that will come out of your project. These should be benefits to the Wikimedia projects or Wikimedia communities. They should not be benefits to you individually.
Remember to review the tutorial for tips on how to answer this question.
The end goal of this project is to render Timeless into a generally complete, stable product, produce better answers to the question of what is required from a new Wikimedia deployed skin, and seek the input and feedback required to evaluate the success or failure of this skin's deployment, and thus whether or not to keep it deployed.
No further funding will be required for development of Timeless itself; ongoing required maintenance will be comparable to that of MonoBook or Cologne Blue, and if fully successful, will remain available as an option on Wikimedia projects alongside those, allowing users to choose whichever skin they want without having to worry about frequent bugs.
Project impact
editHow will you know if you have met your goals?
editFor each of your goals, we’d like you to answer the following questions:
- During your project, what will you do to achieve this goal? (These are your outputs.)
- Once your project is over, how will it continue to positively impact the Wikimedia community or projects? (These are your outcomes.)
For each of your answers, think about how you will capture this information. Will you capture it with a survey? With a story? Will you measure it with a number? Remember, if you plan to measure a number, you will need to set a numeric target in your proposal (i.e. 45 people, 10 articles, 100 scanned documents).
Remember to review the tutorial for tips on how to answer this question.
For Timeless, we will measure completion as (based on phabricator:tag/timeless/):
- Features implemented and general styles finalised
- Compatibility issues with particular browsers and devices are resolved - all grade A browsers function fully and look consistent, and grade C ones at least mostly work, though no guarantees about mobile (unless you have some way to make tiny interface work withous js).[10]
- Regressions and functional problems with core and Wikimedia deployed extensions in Timeless are resolved
- A lot of this seems to be the same five extensions breaking over and over, but we can probably expect around 20-30 total distinct tasks over the course of the project for around 10-20 total extensions/components.
- Gadgets/scripts/etc either work in Timeless, or can be made to work with gadget-side layout improvements[11][12]
- Appearance issues with core and Wikimedia deployed extensions in Timeless are resolved
Numerically, we can expect around ~35 other meaningful tasks (features/bugfixes) to be closed, bearing in mind likely equivalent numbers of duplicates, unactionable items, and other low-priority tasks. Some tasks will simply not be addressed. This is expected.
To determine the success or failure of Timeless as a deployed skin, a process or set of requirements will be determined outside the scope of this grant, evaluating metrics as outlined here as well as consensuses and use across the projects.
Do you have any goals around participation or content?
editAre any of your goals related to increasing participation within the Wikimedia movement, or increasing/improving the content on Wikimedia projects? If so, we ask that you look through these three metrics, and include any that are relevant to your project. Please set a numeric target against the metrics, if applicable.
We will measure participation and content results via the following:
- Total active users opted into Timeless across the projects
- Total number of users enabling timeless vs turning it off
- Number of content pages edited using Timeless
For (1), we have data on user skin preferences (by user activity); extrapolating on that, we can measure this periodically and define goals for preference numbers at the end of the project. phabricator:T147696 is the 2016 results; phabricator:T180860 covers rerunning it.
We will aim for the following targets for Timeless: That 0.3% of all editors use it by the end of the project, 1% of active editors, and 5% of very active editors.
For (2), it is possible to log user preference changes and determine if there are issues with users opting in and then just opting out again. For this retention, the percentage keeping and adopting Timeless should go up. We will aim for the following target at the end of the project: that the retention rate does increase over earlier stages.
For (3), it would be nice if in particular we could specifically track formatting changes (fixes to content so it renders appropriately in Timeless, which in many cases would likely also fix it for other mobile-friendly skins such as Minerva as well), but the type of edit not really possible to determine. We can, however track edits per skin in general, which will invariably include those edits as some percentage. phabricator:T181772 concerns the specifics for measuring this.
We will aim for the following target at the end of the project: that .05-0.1% of all (non-bot) logged-in edits are made through Timeless.
Project plan
editActivities
editTell us how you'll carry out your project. What will you and other organizers spend your time doing? What will you have done at the end of your project? How will you follow-up with people that are involved with your project?
To proceed effectively, the project requires organisation and direction. We need not just to devote the resources to resolving the bugs and implementing the features missing from the skin itself, but also to:
- Community outreach
- Setting up hub(s) for collecting feedback, user stories, etc (mw:Talk:Timeless for the main one? also an IRC channel)
- Reaching out to the wider community specifically soliciting feedback and knowledge, and coming back periodically to survey current status, results of changes, whether or not previous blockers have been resolved (at least beginning, middle, end)
- Issuing periodic newsletters with updates on the status of the project to all interested users (monthly?)
- Filing tasks for issues raised by users who may not necessarily want to do so directly themselves (especially non-technical users)
- Coordinating with other teams and developers responsible for related projects
- Developers/maintainers of on-wiki gadgets
- Developers/maintainers of extensions with which compatibility issues arise
- Developers/maintainers of libraries, interfaces, etc that Timeless uses or should use (such as OOjs UI)
- Triaging the tasks, including identifying duplicates, reproducing issues, prioritising which to work on first ('nice to have' versus 'unbreak now before it deploys and ruins everything')
- Doing code review and ensuring patches from other developers do not fall through the cracks
As well as:
- Ensuring evaluation of skin deployment actually happens - is it considered worth keeping by developers, operations people, and users? (end of project outreach)
- Setting up and tracking the metrics
- Additional overhead for the grant process itself
Budget
editHow you will use the funds you are requesting? List bullet points for each expense. (You can create a table later if needed.) Don’t forget to include a total amount, and update this amount in the Probox at the top of your page too!
This grant request is for the allocation of one day a week for the first six months of 2018 for me to work specifically on Timeless stuff. Using a standard rate of 50 USD/hour and assuming ~160 hours total, that comes out to 8000 USD total.
Time breakdown per week:
- 1-2 hours for triaging tasks, checking projects, discussions, as well as keeping up with related discussions on mailing lists, RFCs, etc.
- 6-7 hours for development work fixing/implementing tasks and investigating various design problems that come up.
Notes:
- Resolving a task (implementing a fix or feature) can be expected to take about 3-5 hours on average. Some will be one-liners. Some will require reimplementing half of the skin output, or learning an entirely new extension, or redefining how the tools are handled.
- Filing, triaging, or clarifying a task can take anywhere from a minute to a few hours. This is because bugs can be difficult to effectively reproduce/rule out, and some tasks, such as addressing design problems, require looking into a lot more than what may or may not be on the task itself.
- The reason for the one day per week approach is to account for the time required for changes and announcements to reach users, and user responses to trickle back. The six-month scope also allows for more meaningful data to be acquired regarding buy-in and practical usability of the skin over time.
- Budget does not account for hardware testing needs. These can be addressed elsewhere, such as by leveraging time of volunteers who already have needed devices.
Community engagement
editHow will you let others in your community know about your project? Why are you targeting a specific audience? How will you engage the community you’re aiming to serve at various points during your project? Community input and participation helps make projects successful.
This is built into the project and specifically scoped in the plan. Hubs, newsletters, randomly showing up on village pumps, IRC, etc. Mostly phabricator.
Get involved
editParticipants
editPlease use this section to tell us more about who is working on this project. For each member of the team, please describe any project-related skills, experience, or other background you have that might help contribute to making this idea a success.
- Isarra is a volunteer MediaWiki developer and designer specialising in skins and formatting extensions. She was the developer and designer for Timeless.
- Jack Phoenix is the primary reviewer for Timeless, and an accomplished MediaWiki developer in general who also specialises in skins and user-facing extensions, and is thus also being conscripted for at least minor involvement.
Community notification
editYou are responsible for notifying relevant communities of your proposal, so that they can help you! Depending on your project, notification may be most appropriate on a Village Pump, talk page, mailing list, etc.--> Please paste links below to where relevant communities have been notified of your proposal, and to any other relevant community discussions. Need notification tips?
- https://www.mediawiki.org/wiki/Skin_talk:Timeless#Grant_proposal:_Post-deployment_support_for_Timeless_and_stuff
- https://phabricator.wikimedia.org/T154371#3692024
- wikitech-l
(all notified 17 october)
Endorsements
editDo you think this project should be selected for a Project Grant? Please add your name and rationale for endorsing this project below! (Other constructive feedback is welcome on the discussion page).
- Timeless is one of the most interesting new skins to have appeared in a long time. It is clear there is community interest in it, and I think its a no-brainer to provide further support for this extension. BWolff (WMF) (talk) 16:03, 26 September 2017 (UTC) (Edit: To be clear, my endorsement of the draft fully applies to the final version of this grant proposal as well)
- Isarra has the expertise needed to make this a success. I know from experience that designing a skin is no easy task and requires skills that not all developers possess, and some bugs are trickier to fix than others, whether due to them being platform-specific or otherwise tricky to reproduce. Being able to adequately focus on fixing these things helps everyone involved, as there is a definite interest in the Timeless skin, and CollaborationKit has the potential to revolutionize WikiProjects altogether. --Jack Phoenix (Contact) 17:11, 26 September 2017 (UTC)
- Isarra is one of the few people who had the drive and commitment to get a new skin deployed to Wikimedia projects (putting her on the same level of Wikimedia greats like Roan, Gabriel, and River). There is a significant amount of communities that are interested in trying out and using Timeless, and it would be great if we could sponsor Isarra to continue working on it. Legoktm (talk) 17:41, 28 September 2017 (UTC)
- Isarra is a very skillful MediaWiki developer as well as designer - with support like this, it would help very much drive both projects (skin and extension) forward in improvement. I understand that there's bugs that can be difficult to debug or reproduce as mentioned by Jack. Having an extension for WikiProjects can help encourage people to contribute with a consistent interface, navigation, and design overall. Not only that, having a volunteer-developed skin (as mentioned by Legoktm) on WMF projects is a big step that I think is extremely motivating and encouraging, and this development should be continued to help continue the health of the software. SamanthaNguyen (talk) 21:15, 28 September 2017 (UTC)
(Note: previous comments pertain to a draft referring to both Timeless and CollaborationKit. This proposal now only concerns Timeless.)
- Timeless it is a huge step forward bringing in a new major standard skin in for the first time in a heck of a long time. I believe we should pick up this chance and make this a success story. Given the interest I see for this skin it would be utterly sad not to provide the support it needs to get things going in a sustainable way. --[[kgh]] (talk) 19:58, 17 October 2017 (UTC)
- Support Timeless is super cool and we ought to support its development. -- NKohli (WMF) (talk) 21:58, 17 October 2017 (UTC)
- Even people like me acknowledge that the look of the Wikipedias is dated and needs a refresh. If we have the chance to get a new skin by a volunteer for small money (6k is not THAT much), we should do that. --DaB. (talk) 22:04, 17 October 2017 (UTC)
- Support It would be ashame for development to stall just after it gets deployed to so many WMF wikis. I see a lot of room for growth, so financing further development seems well worth our while. Timeless has in my opinion already proven itself to be the fresh new look so many people have been waiting for, bringing MediaWiki up to code with modern web design — MusikAnimal talk 22:07, 17 October 2017 (UTC)
- This is absolutely something we should support. Timeless is a breath of fresh air in how our sites look, we should let it grow. Max Semenik (talk) 22:09, 17 October 2017 (UTC)
- Support I've been using Timeless on my mediawiki.org account since its initial deployment there and am very excited about the possibility of it being available on all wikis. Even if Timeless never becomes the default skin shown to anons on any of the Wikimedia projects it is very valuable to the larger movement and technical community to have a strongly engaged volunteer working on making a skin compatible with the extensions used in the Wikimedia production wikis. This work serves as a roadmap for work by others and also exposes unintended deep couplings between various extensions and Vector. --BDavis (WMF) (talk) 22:10, 17 October 2017 (UTC)
- Support It is terrific that MediaWiki has got a new high-quality, good-looking skin and it would be great to see it continue to develop. I think lots of people basically think "MediaWiki = Vector" and don't investigate further, but different skins can help so much with different uses of MediaWiki. I commend Isarra for getting Timeless this far, and hope she can be supported in taking it further. Sam Wilson 22:12, 17 October 2017 (UTC)
- Strong support It was a shame this wasn't funded the first time, it would be an absolute travesty to stop momentum on it now. 😂 (talk) 23:06, 17 October 2017 (UTC)
- Support Timeless is a cool project that deserves some support from WMF. Kaldari (talk) 00:01, 18 October 2017 (UTC)
- Support very low cost compared with the potential rewards. – Ajraddatz (talk) 00:12, 18 October 2017 (UTC)
- Support I'm guessing my old support doesn't count since it was for the draft, so I'm re-supporting with the same reasons as last time. SamanthaNguyen (talk) 00:48, 18 October 2017 (UTC)
- Support seems like good potential return on the low investment. —TheDJ (talk • contribs) 07:00, 18 October 2017 (UTC)
- Support, per TheDJ, 😂, and many others. --MZMcBride (talk) 22:10, 18 October 2017 (UTC)
- I'm tired of hearing "timeless is not supported by the foundation, so we're not doing anything", a sentence that I just heard today by a WMF employee. This is the first time I've seen such an advanced project to modernize the old existent vector interface. WMF has an evident interest in supporting this project. --Framawiki (talk) 13:49, 20 October 2017 (UTC)
- Experimentation, innovation, and competition are something that drives folks to improve the user experience for the movement. Let's support more of that. Ckoerner (talk) 17:27, 31 October 2017 (UTC)
- Support Technical things need to more and more improvment. I support it.-Jayprakash >>> Talk 16:27, 1 November 2017 (UTC)
- Strong support. Now the skin is deployed on every wiki, this is a real plus value for the project. The project encourages editing by offering a full interface available on every device, mobile, tablet, netbook or desktop, without ahving to switch between mobile and desktop mode, ie having access to all the tools contributors use. --Dereckson (talk) 07:19, 22 November 2017 (UTC)
- Support The skin stagnation we have at the moment isn't a good thing. MediaWikis design needs to be refreshed. --MGChecker (talk) 21:19, 22 November 2017 (UTC)
- Support This skin looks like it can be a fully-featured successor to Vector across Wikimedia. It is certainly worth the requested 8000 USD. Arafey (talk) 17:26, 28 November 2017 (UTC)
- It's a great skin and has far more functionality in it than the default MinveraNeue mobile frontend yet it is perfectly compatible with the mobile interface Force Radical (talk) 09:40, 20 February 2018 (UTC)
Notes
edit- ↑ See: phabricator:T154371.
- ↑ phabricator:T131803
- ↑ phabricator:T131990
- ↑ phabricator:T131988
- ↑ phabricator:T132073
- ↑ phabricator:T132004
- ↑ phabricator:T131467
- ↑ phabricator:T161953
- ↑ phabricator:T131998
- ↑ Stuff like phabricator:T161470 and phabricator:T177146, and actually testing everything.
- ↑ phabricator:T181362
- ↑ phabricator:T181344
- 2017 Community Wishlist Survey/Reading/Further develop the Timeless skin is also relevant.