Repository navigation
Removal Policy
Most curated lists only ever grow. Repos stop being maintained, and nobody goes back to take them off. DevStream checks every entry once a week, and Likes never save an entry that has stopped being a good one to send people to.
The check also gives owners a fair warning and a way back.
Every Monday at 06:45 UTC, the bot re-checks every listed, warned and archived entry. A single entry can also be checked on demand, which is what a "dead" report triggers.
The health check is lighter than the Quality Bar you pass to get in. It looks for two kinds of problem:
| Problem | What happens |
|---|---|
| The repo is archived on GitHub | Warning, then the archive |
| The repo calls itself deprecated, unmaintained or no longer maintained | Warning, then the archive |
| No push in over a year | Warning, then the archive |
| The repo is gone (deleted, made private, returns 404, taken down under a DMCA notice or blocked by GitHub) | Removal |
| A different repo now lives at the name | Removal, and I'm asked to check which repo is the real one |
| No OSI license any more | Removal |
| No README any more, or one under 300 characters of prose | Removal |
If GitHub can't give a clear answer for one repo, for example a README it can't read, the bot skips that repo this week. If it still can't tell after 3 weeks running, it opens an issue for me. If GitHub is down, the whole run stops and nothing changes. A missed weekly run is re-run within about a day. Nothing is removed because of a hiccup.
Every step below, apart from a rename, is announced in a comment on the entry's Discussion, so anyone watching the thread sees it.
When a repo hits one of the warning problems, the entry is marked as warned, and the bot posts a heads-up with the date, 30 days away, when it moves to the archive. The comment lists what the bot spotted.
A warned entry stays on the list and keeps its rank and its Likes. If the problem is fixed before the date, the warning clears at the next weekly check. For a quiet year, a single commit does it.
If the problem is still there at the first weekly check 30 or more days after the warning, the entry moves to the archive page.
An archived entry:
- keeps its Discussion and every Like on it;
- isn't ranked, and doesn't appear in Top, Trending, New or the category lists;
- is still checked every week.
The moment an archived or warned repo passes the health check again, it returns to the list on its own, and the bot posts a welcome-back comment. Nobody has to resubmit it. If someone tries, the bot points them to the archive instead.
Removal is for repos that are gone, or that no longer meet the basics. It's quick, but never instant, because a repo can blink out for a day during a rename or a license change.
- First sighting. The bot posts a removal notice on the entry's Discussion, with what it found and a date 6 days away.
- Second sighting. At the first weekly check on or after that date, if the problem is still there, the entry comes off the list and the bot posts a final comment.
In practice that's one week of notice. Fix the problem in between and the notice is cancelled. If the second sighting doesn't happen within 14 days of the first, for example because a run was skipped, the bot treats the next sighting as a fresh start and posts a new notice.
A removed entry is gone from the list and the archive. If the repo is fixed later, it's welcome back through a normal submission.
When a repo is renamed or moves to a new owner, the bot follows it by its GitHub repo ID, so it still finds it even if the old name's redirect is gone. At the next weekly check, the entry takes the new owner/name, the Discussion is retitled to match, and the Likes carry over. Nothing else changes. Renames are followed automatically; the entry and its Likes thread are retitled, with no notice.
If someone else's repo turns up at the old name, it inherits nothing. The entry gets a removal notice, and I check which repo is the real one.
Sometimes two entries end up pointing at the same repo, for example when a project absorbs another. The entry that was listed first is kept. The other is folded into it: it's taken off the list, its Discussion gets a comment explaining why and a title starting "Removed:", and Likes count on the kept entry's thread from then on.
Two more states come from me, not the weekly check.
| State | How it happens | What it means |
|---|---|---|
| Hidden | Enough reports from established accounts, or my decision | Off the list while I review it |
| Superseded | I decide another repo has replaced it, usually after a "Replaced by something better" report | Off the live list, shown on the archive page |
The weekly check leaves both alone.
- Quality Bar: the checks for getting in.
- Reporting an Entry: how to ask for a check now instead of waiting for Monday.
- FAQ: "my repo was archived, what do I do?"
Site · Repo · Discussions · CC0 license
Getting listed
Likes
Keeping it clean
Help
The project