SUL finalisation

SUL finalisation would unify user accounts across all Wikimedia wikis.

History
Originally, Wikimedia wikis operated completely independently from each other, with separate user accounts and passwords for each wiki. CentralAuth was created to let users log in with the same credentials across multiple wikis, but as the wikis operated independently for years there were thousands of clashing accounts, i.e. cases where different people had registered the same name on different wikis. These clashes prevent those affected from logging in with the same name across all wikis.

Project Goal
The goal of the SUL finalisation is to forcibly rename any clashing user accounts so that every single user has their own single unified login across all Wikimedia sites.

Project Duration
TODO: Fill this out

Necessary prior code/ops steps

 * ✅ : ACTION: ?? to run the pass0 script to clean up data; updated stats review
 * ✅: PG's AccountAudit extension deployed and $wgCentralAuthAutoMigrate enabled on 2013-05-10 (allows gradual automatic merging by users on login).
 * : ACTION: ?? to run the migrateAccount script for non-conflicting users, in order:
 * ✅ Merge 10k users who only exist on one wiki, and are not attached
 * ✅ Merge 18k incorrectly unattached users and 3k LUGM
 * Iterate over all unattached accounts with email and, where all accounts for a username have the same (confirmed) email, merge them all.
 * Send emails to make 50k global accounts claim all their local unattached accounts (gives 28 days time)
 * Figure out other cases which need no manual intervention
 * Next steps (parallel):
 * Who? – Run script for 3 ( without   and without specifying homewiki in userlist)
 * Who? – Write script for 4
 * Depends on stats DB ✅
 * : Finalize the global rename user tool and get deployed
 * Note that renamed users MUST have their cookie invalidated.
 * Next step:
 * ✅ Legoktm, CSteipp, Hoo man - Merge https://gerrit.wikimedia.org/r/#/c/92468/ and test on beta
 * ✅ CSteipp, Hoo man, Legoktm - deploy on cluster and test. Planned for July 9th.
 * We need the ability to re-run metrics like these
 * Setup DB for tracking unattached user in the cluster
 * Ops: rt #7775
 * CSteipp? - Scripts to synchronize user tables
 * Next step:
 * Legoktm helped by Roan – Scripts for updated stats
 * : Add sufficient unit tests to CentralAuth to prevent regressions
 * Next steps:
 * Hoo man - reworking rename architecture for testability
 * CSteipp - Add more tests
 * ❌ : Run pass0 again, to ensure localnames and globalnames are accurate
 * Legoktm - also resolve 67350.
 * ❌ : Write & deploy new code for auto-login-to-alternate account.
 * ("You logged in as 'Foo' but your username has been automatically changed to 'Foo~Barwiki' - please use this in future")
 * Started as
 * Next steps:
 * Needs UX input
 * ❌: CS to write & deploy clashing-user-rename-and-globalise script.
 * Note that a single user with multiple local accounts that clash with a global account need to be renamed to a single global account named after the “home wiki” per the same code that Special:MergeAccount uses

Desirable prior code/ops steps

 * ❌: Write & deploy global user merging so two global users can be merged together
 * What to do when two clashing local instances under the global accounts?
 * Next steps:
 * Legoktm - implement based on Dan's specifications
 * Currently waiting on UserMerge code review -
 * ❌: Write & deploy a tool for local ‘losing’ users to check a proposed new account name (check against clashing global and local users, and also against the global user account name rules) and request it be done.
 * This needs to integrate with Stewards current rename workflow
 * Depends on Global Rename tool
 * Next steps:
 * DGarry (WMF) - Requirements and UX input

Project pages

 * /Global account merge


 * Global rename
 * older implementation (historical, outdated)
 * User documentation for tool


 * SUL Audit:
 * February 2013
 * March 2013
 * April 2013