Page MenuHomePhabricator

Publish mentor/mentee relationship for reuse by community tools
Closed, ResolvedPublic

Description

Background

Growth team has mentorship features that allows newcomers to interact with their mentor. Mentors are assigned based on a list of mentors. Recently, certain communities were asking about ways to curate their list of mentors, including possibilities to reassign mentees to some other mentor, so newcomers continue to have a way to ask questions, including creating their own (admin)bots tasked with curating the mentor list. Unfortunately, it's not currently possible for communities to build such tools, because the mentor/mentee relationship is not available in an easy-to-access way.

However, the relationship is available in a couple of a ways already. Here are main ways that this is possible:

Solution

To let communities build their own tools around mentorship, not having to rely on the Growth team to build the tools for them, I think we should release the mentor/mentee relationship as public data.

Next steps

It is technically simple to do the release, once we're sure we want to do it. This will likely need at least approval from @MMiller_WMF as Growth's PM; potentially, it may also need an approval from other WMF teams.

Test at deployment-prep

https://wikitech.wikimedia.org/wiki/Nova_Resource:Deployment-prep/Dumps covers testing the dumps part at deployment-prep (aka beta cluster).

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
mewoph subscribed.

Moving to Needs Discussion for @MMiller_WMF's approval

This has Trust-and-Safety blessing now (approved via email).

Change 740370 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] getReplicaServer: Handle clusters

https://gerrit.wikimedia.org/r/740370

Change 740371 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[operations/puppet@production] [DNM] snapshot: Dump information about Growth mentorship

https://gerrit.wikimedia.org/r/740371

Change 740370 merged by jenkins-bot:

[mediawiki/core@master] getReplicaServer: Handle clusters

https://gerrit.wikimedia.org/r/740370

Change 743917 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Create API to release mentor/mentee relationship

https://gerrit.wikimedia.org/r/743917

Change 745975 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] UserSelectQueryBuilder: Support specifying requesting authority

https://gerrit.wikimedia.org/r/745975

Change 745976 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] UserSelectQueryBuilder: Make it possible to filter via user's hidden status

https://gerrit.wikimedia.org/r/745976

Change 745975 abandoned by Urbanecm:

[mediawiki/core@master] UserSelectQueryBuilder: Support specifying requesting authority

Reason:

not right solution

https://gerrit.wikimedia.org/r/745975

Change 745977 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] MentorStore: Make it possible to filter out hidden users

https://gerrit.wikimedia.org/r/745977

Change 745976 merged by jenkins-bot:

[mediawiki/core@master] UserSelectQueryBuilder: Make it possible to filter via user's hidden status

https://gerrit.wikimedia.org/r/745976

Urbanecm_WMF added a subscriber: Tgr.

FYI, the puppet patch was successfully tested at both deployment-prep and snapshot1008 in production. Expected SQL files are produced. The API patch is now waiting on re-review by @Tgr.

Change 748335 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] UserSelectQueryBuilderTest: Test behavior of hidden()

https://gerrit.wikimedia.org/r/748335

Change 748334 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/core@master] [docs] UserSelectQueryBuilder: Add missing @since annotation

https://gerrit.wikimedia.org/r/748334

Change 748334 merged by jenkins-bot:

[mediawiki/core@master] [docs] UserSelectQueryBuilder: Add missing @since annotation

https://gerrit.wikimedia.org/r/748334

This should be announced in tech news once deployed. Tagging, so we don't forget about that.

Change 748335 merged by jenkins-bot:

[mediawiki/core@master] UserSelectQueryBuilderTest: Test behavior of hidden()

https://gerrit.wikimedia.org/r/748335

Change 745977 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] MentorStore: Make it possible to filter out hidden users

https://gerrit.wikimedia.org/r/745977

Change 743917 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Create API to release mentor/mentee relationship

https://gerrit.wikimedia.org/r/743917

Urbanecm_WMF added a subscriber: Trizek-WMF.

To User-notice: Patches to do the API release were merged. Following wmf.16 deployment (according to the schedule, should be live at all Wikipedias by 2022-01-06), anyone will be to do a query like https://en.wikipedia.beta.wmflabs.org/w/api.php?action=query&format=json&list=growthmentormentee&gemmmentor=Martin%20Urbanec to get someone's mentees.

Also FYI to @Trizek-WMF.

Note, this is included in the upcoming Tech News at https://meta.wikimedia.org/wiki/Tech/News/2022/02 as:

You can now use the Action API to get a list of a mentor's mentees.

Please edit that, if needed, within the next ~22 hours. Thanks. (and thanks to JJMC89 for adding it!)

I clarified the context, since not all wikis will have access to it. Wikis that have a mentoring project but not using the Growth one will not have access to it either.

Change 740371 merged by ArielGlenn:

[operations/puppet@production] snapshot: Dump information about Growth mentorship

https://gerrit.wikimedia.org/r/740371

I too prefer that rewrites of functions used in multiple systemd job scripts be handled separately rather than holding up this patch. Everything else looks good to me. So I went ahead and merged and deployed the patchset after the usual PCC/test in deployment-prep/test on production testbed.