Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add repository archiving policy #26

Open
hillaryj opened this issue Oct 7, 2020 · 4 comments
Open

Add repository archiving policy #26

hillaryj opened this issue Oct 7, 2020 · 4 comments

Comments

@hillaryj
Copy link
Contributor

hillaryj commented Oct 7, 2020

🚀 Feature Proposal

Unmaintained repositories should be archived. Ideally, people would do this but robots are much better at doing regularly-scheduled maintenance like that than people are. Let's:

  1. Develop a policy for when unmaintained (i.e. un-updated) repositories get archived automatically
  2. Implement a regularly-scheduled archive process for unmaintained repositories

Motivation

We want to make it clear when repositories are no longer maintained and reduce confusion and expectations. Code rot sets in as soon as code is written.

Repositories can be easily un-archived through the Settings menu and it will prompt someone to maybe do something about that repo.

Example

GSA 18F/TTS uses an automated archiving process to archive after 90 days of inactivity per their open source policy section on archiving.

@hillaryj
Copy link
Contributor Author

hillaryj commented Oct 7, 2020

Notes from chat re: ghad:

@jsf9k
Copy link
Member

jsf9k commented Oct 7, 2020

@mcdonnnj makes a good point that "un-updated" is not a sufficient condition for labeling a repository as "unmaintained" or as "unused".

@hillaryj
Copy link
Contributor Author

hillaryj commented Oct 7, 2020

Good point!

Un-archiving a repository is a fairly trivial task and we want to make it so the positive action (i.e. "doing an actual thing") undertaken by humans is the lower-incidence option.

I mean, we could create an exception list, but then maintaining the exception list becomes the new version of where we are now.

So, the process could be something like: monthly(?) the archive script runs and tells us what it archived, then anyone who objects can go in and unarchive their repo(s).

@jsf9k
Copy link
Member

jsf9k commented Oct 7, 2020

  1. I suspect that once we get all the golden oldies modernized then this process will probably run smoothly. Use of skeletons and lineage, as well as dependabot, will force any repository we don't archive to be updated every once in a while, and hence for practical purposes "un-updated" will become a sufficient condition for "unmaintained".
  2. My suggested name for this tool is "The Reaper". Alternate name is "TLP Black".
    Reaper
  3. Two requirements that I think make sense:
    • An email should be sent to [email protected], say, whenever a repo is archived or about to be archived. We don't repos to silently be archived.
    • There should be a simple measure that allows a repo to avoid being archived. Maybe something like adding an empty file named .no-archive to the root of the repo. This is just in case we have some oddball repos that don't get changed but also shouldn't be archived.
  4. Actually, we could just have a .reaper file that contains any necessary configuration for The Reaper, such as archive=False or the email where notification of archival should be sent. Or should notifications just be sent to all users listed as codeowners?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants