GitHub Hygiene: Develop a standard way to indicate a repo/project is deprecated #54
Description
Developers who are building things on top of IPFS have pretty much all indicated that they’ve solved a lot of their problems by digging through IPFS source code and through the repos here on GitHub. Unfortunately, a huge proportion of repos there are deprecated, but not clearly marked as such (gray, red, and possibly many of the orange lines in that spreadsheet), making that job much harder.
We won’t suddenly have perfect docs that solve all of their problems tomorrow, so we should coming up with a standard way of marking out deprecated repos that we can easily and quickly apply:
- Have a standard indicator/text in the repo description
- Have a standard indicator/text at the start of the readme
- Think about a policy for when/how to archive repos (makes them read-only and hides them from most listings)
- Apply it to all repos that should be deprecated.
- Also think about the same things for repos that are “in hibernation.” (And should any of those be deprecated instead?)
I’d suggest:
- Description always starts with “DEPRECATED:”
- Readme title always starts with “DEPRECATED:”
- Immediately below the readme title there should be a bold or italicized paragraph about:
- Why it was deprecated
- When it was deprecated
- Where to go for the same resource/functionality/whatever now (if applicable)
(Edit: surfacing our final decisions here so they are easy to find)
Conclusions/Final Process
- Add the topic
deprecated
to the repo (pulling this over from GitHub Hygiene: Develop a standard way to indicate non-code repos #57) - Prefix the repo’s description with “DEPRECATED:”
- Prefix the README title with “DEPRECATED:” (If a repo does not have a readme or its readme is empty, add one with the title: “DEPRECATED: [repo name]”
- Follow the README title with a paragraph describing:
- Why it was deprecated
- When it was deprecated
- Where to go for the same resource/functionality/whatever now (if applicable)
- Finally, if a repo is dead, archive it (but don’t delete it). A dead repo might be
ipfs.js
, while a non-dead, non-archived one might benewsletter
, where we might bring it back in the future.- Why archive? links still work, but this hides it from most views and lists on GitHub, drastically reducing noise and confusion. For repos like
support
, this also prevents people from posting new issues. - Downsides: issues and discussions get frozen. We may want to preserve that functionality on some repos (e.g. ones that are freshly deprecated or that haven’t gained any traction/that we can’t support, but that we might want to revisit later).
- Why archive? links still work, but this hides it from most views and lists on GitHub, drastically reducing noise and confusion. For repos like
Checklist of Repos to Fix
Definitely deprecated repos:
- https://github.com/ipfs/starlog
- https://github.com/ipfs/examples
- https://github.com/ipfs/faq
- https://github.com/ipfs/http-api-spec
- https://github.com/ipfs/go-blocks
- https://github.com/ipfs/go-commands
- https://github.com/ipfs/js-ipfs-merkle-dag
- https://github.com/ipfs/support
- https://github.com/ipfs/newsletter
- https://github.com/ipfs/datatogether
- https://github.com/ipfs/ipfs-mans Issue: Roadmap ipfs-mans#1 (comment)
- https://github.com/ipfs/dnslink-deploy Dead according to @victorbjelkholm
- https://github.com/ipfs/go-sbs (I confirmed this is deprecated with @Kubuxu)
- https://github.com/ipfs/go-cid-utils Nobody seems to have anything to say on this and the repo is completely empty, with no issues or anything, so maybe we should just delete it.
Things that might be dead, but need clarity from their owners/maintainers:
- https://github.com/ipfs/astralboot
- https://github.com/ipfs/bitswap-ml Shutting down and merging with research-bitswap? Readme/description pretty opaque. Deprecated according to @whyrusleeping
- https://github.com/ipfs/dataviz
- https://github.com/ipfs/fs-stress-test
- https://github.com/ipfs/go-iprs
- https://github.com/ipfs/refs
- https://github.com/ipfs/refs-denylists-dmca
- https://github.com/ipfs/file-browser
- https://github.com/ipfs/install-go-ipfs
- https://github.com/ipfs/scala-ipfs-api
- https://github.com/ipfs/apps Only one issue has discussion in the past 6 months and this issue: Issues should be moved to discuss.ipfs.io ipfs/apps#37 suggests the discussions here should be happening in other places instead
- https://github.com/ipfs/golang-build Not used according to @victorbjelkholm
- https://github.com/ipfs/refs-solarnet-storage
- https://github.com/ipfs/project-repos Several folks didn’t even know the site this powers existed
- https://github.com/ipfs/POST
- https://github.com/ipfs/ops-requests
- https://github.com/ipfs/go-dnslink
- https://github.com/ipfs/connections-globe (Not used in WebUI, which has its own version)
- https://github.com/ipfs/paperhub
- https://github.com/ipfs/go-key Not used according to @whyrusleeping
- https://github.com/ipfs/go-ipfs-gateway
- https://github.com/ipfs/2016-Q3-Workshop
- https://github.com/ipfs/js-idb-pull-blob-store Only used by js-ipfs-merkle-dag, which is deprecated
- https://github.com/ipfs/go-ds-redis
- https://github.com/ipfs/go-ds-lru
- https://github.com/ipfs/ipfs-pages
- https://github.com/ipfs/websiter
- https://github.com/ipfs/js-level-pull-blob-store
- https://github.com/ipfs/go-ds-s3
- https://github.com/ipfs/test-lab Open issue on converging with other test tools: Converge/clarify testing frameworks pm-test-lab#28
- https://github.com/ipfs/research-bitswap Dead according to @whyrusleeping
- https://github.com/ipfs/ipfs-netjournal
- https://github.com/ipfs/contributors-hex-grid
- https://github.com/ipfs/contributors
- https://github.com/ipfs/ipfs-nodeschool
- https://github.com/ipfs/jest-environment-aegir
- https://github.com/ipfs/glossary (Issue: Merge with ipfs/textbook glossary? glossary#1 (comment))
- https://github.com/ipfs/go-ipfs-path (deleted since it was never actually in use)
- https://github.com/ipfs/go-ipfs-path-resolver (deleted since it was never actually in use)
- https://github.com/ipfs/go-ipfs-blockservice (deleted since it was never actually in use)
Already archived, but missing standard notices: (How much do we care to update?)
- https://github.com/ipfs/ipfs-web-app
- https://github.com/ipfs/go-ipld
- https://github.com/ipfs/js-libp2p-ipfs-nodejs
- https://github.com/ipfs/js-libp2p-ipfs-browser
- https://github.com/ipfs/ipfs.js
- https://github.com/ipfs/browserify-zlib-next
- https://github.com/ipfs/js-docker-base
- https://github.com/ipfs/node-github-issue-bot
- https://github.com/ipfs/dweblink-infra
Turned out not to be dead:
https://github.com/ipfs/js.ipfs.io(2018-06-04 Per @diasdavid, this now has active work)https://github.com/ipfs/ipfs-hubot(Magically risen from the dead once someone pointed it out)