Core Platform Team/FY1819 Closeout

From mediawiki.org

Overview and purpose[edit]

In order to close out the current year, we are listing all of our inflight work and then defining a "done" state for all of it that we can do by July 15th 2019. That will mean some projects we will cut scope, for others we may just shelve and put back into our project planning board (or send to Clinic Duty). But for all we should give ourselves a target that we can achieve and give ourselves some more headspace to move into the next year.


Instructions:

  1. If you are working on a project not listed (or the project has been reactive and you get intermittent pings), please list it below.
  2. For each project, write in a definition of "done". This should be an actionable set of tasks - concrete tasks either written or in Phab. Be bold and make a proposal!
  3. For each projects definition of "done" come up with a level of done where the project could be set down and picked up later. (We may pick it up immediately in the new year, but we want a definition of done for FY 18/19)
  4. For each project, write in any risks or dependencies we need to figure out to make this happen.
  5. Each project has two sign off columns, one for a Tech Lead/EM and on for a PM. Please review and add your signature if you think the "done" column is well defined and accomplishable.
  6. For any project where you cut scope, but has work still needs done after July 15th, file a project ticket on our Asana project board so we can get it scheduled.

The leads will review and finalize this list on July 1 2019.


Additional notes that are implicit above:

  • EM/Tech Leads and PMs need to coordinate and agree on done. If you can work together to get to this, please do so. Set a meeting talk through the projects.
  • If you already the PM, EM or Tech Lead for a project , you should probably one of the people to define done, but at a minimum you should probably sign off.
  • Coordination with other team members is not listed, but you are expected to coordinate with engineers as needed.
  • Don't reinvent the wheel… you probably have the scope you need somewhere, just try to cut away the rest.

Inflight projects[edit]

Below is the list of projects we are working on that we wish to get to some state of "done" before we start the work for next year.

Project Definition of "done"

(Phab task, requirement, etc)

Tech Lead/Engineering Manager

sign off (on the definition of done)

Product Manager

sign off (on the definition of done)

Remaining work is Reactive or Project?
Add API integration tests Complete requirements definition at Core_Platform_Team/Initiative/Add_API_integration_tests/Epics,_User_Stories,_and_Requirements

[done]

Daniel Cindy Cicalese Project
Make all required MCR storage layer code level changes
  • Resolve the following tasks:
    • T198341 Remove all references to the rev_text_id and ar_text_id fields [patches have comments and need follow up]
    • T198342 Remove all usages of the 'text' flag in calls to Revision::getQueryInfo() and RevisionStore::getQueryInfo() [patches have comments and need follow up]
  • Close the following reactive tasks, if possible:
    • (fallout) T212428 includes/Revision/RevisionStore.php: Main slot of revision (number) not found in database! (We may not be able to fix this in time. It's a subtle bug, hard to reproduce, we don't know the cause).
    • (fallout) T217829 Update populateRevisionSha1.php to run over the content table [patch merged]
    • (fallout) T217831 Add a check to populateContentTables.php to ensure that populateRevisionSha1.php is run first [solved in a slightly different way]
Daniel Cindy Cicalese Project/Reactive
Remove storage from RESTBase Dones
  • Load Testing and Configuration Completed
  • Both services deployed to production (one on Cassandra nodes, the other in Kubernetes)

To be split into new project

  • Individual services use the storage engine service directly


Challenges

  • Actually switching over between the services will require significant SRE/CPT sync because of the potential for unknown unknowns
  • So this should be scheduled as its own initiative


Will Doran Evan Prodromou
Quantify and reduce coupling in MediaWiki Core
  • Resolve the following tasks:
    • T223294 Deprecate the $mRights field in the User class, replacing it with a cache in PermissionManager.
    • T207977 deprecate Language::viewPrevNext
    • (fallout) T224368 Ensure Linker::userLink is not called with empty user name [merged]
    • (fallout) T225585 Unable to open user sub pages with trailing space (Blank page fatal: "invalid DB key") [merged, deployed and verified]
    • (fallout) T224814 Several articles inaccessible due to fatal ParameterAssertionException "Bad value for parameter $dbkey: should not be empty" [merged, waiting for confirmation on the live site]
Daniel Cindy Cicalese Project/Reactive
Update XML Dumps for MCR
  • T174031 Include all slots in XML dumps [merged, waiting for confirmation on the live site]
  • (fallout) T220493 Xml stubs dumps are running 5 to 15x slower than previously
Daniel Cindy Cicalese Project
Complete Front End Architecture Review Project
Actor and Comment Table migration
  • This work will not be complete by July 15. See T227047 to track the remaining work.
Brad Jorsch Project
Enable Multi-DC Session Storage

Done:

  • MW has the capabilities to but is not currently accessing sessions from 2 Data Centers
  • MW is technically but not fully accessing data from 2 Data Centers(Staged to Test Wiki)
  • Manual QA Testing has been completed on Test Wiki

Split into next project:

  • MW is fully migrated to and capable of accessing data from 2 Data Centers(Group 0)
  • MW is fully migrated to and capable of accessing data from 2 Data Centers(Group 1 then Group 2)


Current state: T206016

  • Session Storage is deployed and allegedly ready to go
  • MW integration needs to complete review and be deployed T224993T222099

Challenges:

  • Infrastructure it's deployed on is opaque and potentially untested to us
  • Full migration requires a lot of testing and vetting
  • Might need SRE if issues is severe enough
Will Doran Evan Prodromou
Modern Event Platform Done Will Doran Evan Prodromou
REST API For Parsoid/PHP Done:
  • REST infrastructure merged
    • Router
    • Parameter validation
  • Parsoid routes implemented as a MediaWIki extension
  • Parsoid/JS unit tests fail with data errors, not HTTP errors
Tim Starling Evan Prodromou
Documentation Portal Done:
  • Prototype site deployed and available for review
  • Design documents and rationales available for review
  • Review and implementation projects ready for Q1
Kate Chapman Evan Prodromou
OATHAuth Resolve:
  • T218210 Step 1: Refactor OATHAuth extension
  • T218211 Step 2: Enable WebAuthn method
  • T218214 Step 3: Finalize settings and user experience
  • T218215 Step 4: Bind permissions to 2FA
Kate Chapman Cindy Cicalese Project
Release Automation Resolve:
  • T217840 Test tarball extraction and verify diffs apply cleanly
  • T217960 Tarball upload automation
  • T217961 Produce and document interface for kicking off a branch and tarball production
  • T217963 Ensure all repositories in Gerrit have been branched at the right time
  • T222829 merge branch.py and make-wmf-branch
Kate Chapman Cindy Cicalese Project