NOTE: draft in progress
Criteria to identify inactive code repositories:
# Premise: no patches have been merged to the repository in at least 180 days (localization updates don't count).
# If there are open changesets submitted without any review or stuck with 0/+1 after 90 days, the repository is labelled POSSIBLY INACTIVE. Ideally, a notification would be sent to the identified maintainers and other contributors to the project.
# If there are open changesets submitted without any review or stuck with 0/+1 after 180 days, the repository is labelled INACTIVE.
== Background ==
There is this pattern in Gerrit:
* Old open patch(es) waiting for review.
* No active maintainers around.
* For the past 1-2 years, commit history only shows localizations updates and an occasional hotfix from an external developer (usually a WMF employee).
* Not even the initial uploader responds when asking for updates in the changeset.
It would be useful to have a process agreed and documented for these cases.
* Should these changesets be marked as abandoned after, say, a year?
* Should the wiki page related to this extension be marked as unmaintained, welcoming patches only after there are maintainers?
* Should we remove the repository from our metrics on http://korma.wmflabs.org/ ? (this is only a problem when there are patches open for review, not -1 or WIP)
See for instance https://gerrit.wikimedia.org/r/#/c/148020/
== Actions ==
* For POSSIBLY INACTIVE and INACTIVE code repositories, they also get listed as inactive on translatewiki.net by removing an extension from https://phabricator.wikimedia.org/diffusion/GTWN/browse/master/groups/MediaWiki/mediawiki-extensions.txt possibly leaving behind a comment saying it is archived because it is not maintained anymore. Or add a task to #I18n to find someone else to do it.
* For POSSIBLY INACTIVE and INACTIVE code repositories, the [[ https://git.wikimedia.org/blob/integration%2Fconfig.git/a8ae813ed9bfd43af43fa86b57f3ccf1acc3b02b/zuul%2Flayout.yaml#L1745 | CI/Zuul configuration would be changed ]] to automatically [[ https://gerrit.wikimedia.org/r/#/c/217552/ | add an explanatory comment in Gerrit ]] about the repository's status. Or add a task to #Continuous-Integration-Config to find someone else to do it.
* Extension/project wiki page of POSSIBLY INACTIVE and INACTIVE projects would be updated to reflect the inactive status of the codebase.
* Phabricator description of POSSIBLY INACTIVE and INACTIVE projects would be updated to reflect the inactive status of the codebase.
* [[ https://www.mediawiki.org/wiki/Developers/Maintainers | mw:Developers/Maintainers ]] would be updated by removing inactive maintainers
* INACTIVE projects would be filtered out from Wikimedia code review metrics on http://korma.wmflabs.org/ (how exactly, needs to be defined).
* Entire process should be documented on [[ https://www.mediawiki.org/wiki/Gerrit/Project_ownership#Requesting_repository_ownership | mw:Gerrit/Project_ownership ]] once agreed on.
== To be marked as inactive ==
According to the criteria above, this is the initial list of repositories that could be marked as inactive and be filtered out from code review metrics in korma:
* [[ https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/SolrStore,n,z | SolrStore ]]
* [[ https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/XMLContentExtension,n,z | XMLContentExtension ]]
* [[ https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/SemanticSignup,n,z | SemanticSignup ]]
* [[ https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/DiscussionThreading,n,z | DiscussionThreading ]]
* [[ https://gerrit.wikimedia.org/r/#/q/status:open+project:mediawiki/extensions/RecentActivityFeed,n,z | RecentActivityFeed ]]