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, it may be appropriate to disable the repository on translatewiki.net. Submit a patch commenting the repository in the file `groups/MediaWiki/mediawiki-extensions.txt` in the `translatewiki` Git repository and mention that the repository is not maintained anymore, whether it has i18n issues, how many wikis/users are using itthe [[ 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 [[ https://phabricator.wikimedia.org/maniphest/task/create/?projects=translatewiki.netContinuous-Integration-Config | create a Phabricator task ]] in the project #translatewiki.net#Continuous-Integration-Config to let someone else do it.
* For POSSIBLY INACTIVE and INACTIVE code repositories,INACTIVE code repositories, set "Projects > General > Project Options > State" to "Read Only" in Gerrit. Remove the project from 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 [[ https://phabricator.wikimedia.org/maniphest/task/create/?projects=Continuous-Integration-Config | create a Phabricator task ]] in the project #Continuous-Integration-Config to let someone else do itAdditionally we will want to update the project description and prefix it with the repository status.
* 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/ by updating [[https://www.mediawiki.org/wiki/Community_metrics#Code_review | gerrit_trackers_blacklist.conf]].
* **Still to be defined if wanted or not (see discussion)**: For POSSIBLY INACTIVE and INACTIVE code repositories, it may be appropriate to disable the repository on translatewiki.net. Submit a patch commenting the repository in the file `groups/MediaWiki/mediawiki-extensions.txt` in the `translatewiki` Git repository and mention that the repository is not maintained anymore, whether it has i18n issues, how many wikis/users are using it. Or [[ https://phabricator.wikimedia.org/maniphest/task/create/?projects=translatewiki.net | create a Phabricator task ]] in the project #translatewiki.net to let someone else do it.
* Entire process should be documented on [[ https://www.mediawiki.org/wiki/Gerrit/Project_ownership#Requesting_repository_ownership | mw:Gerrit/Project_ownership ]] once agreed on. Also steps how to revert (resurrect) a repository.
== 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 ]]