Skip to content
This repository has been archived by the owner on Jun 2, 2020. It is now read-only.

GitHub Hygiene: Develop a standard way to indicate a repo/project is deprecated #54

Closed
8 of 63 tasks
Mr0grog opened this issue Mar 16, 2018 · 19 comments
Closed
8 of 63 tasks
Labels
dif/easy Someone with a little familiarity can pick up effort/weeks Estimated to take multiple weeks help wanted Seeking public contribution on this issue topic/design-content Content design, writing, information architecture topic/docs Documentation

Comments

@Mr0grog
Copy link
Collaborator

Mr0grog commented Mar 16, 2018

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 be newsletter, 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).

Checklist of Repos to Fix

Definitely deprecated repos:

Things that might be dead, but need clarity from their owners/maintainers:

Already archived, but missing standard notices: (How much do we care to update?)

Turned out not to be dead:

@Mr0grog
Copy link
Collaborator Author

Mr0grog commented Mar 16, 2018

We should also probably consider something similar for repos that are not really usable yet, but currently just works in progress.

@ZenGround0
Copy link

Really like those three final bullets explaining the context behind deprecation.

@whyrusleeping
Copy link

Yeah, agree with @ZenGround0. Plan sounds good to me.

@victorb
Copy link
Contributor

victorb commented Mar 28, 2018

Sounds good to me as well, but I would add that we make the repository archived/read-only if it's deprecated as well. This can be done in the "Options" of a repository, under "Danger Zone" > "Archive this repository "

@Mr0grog
Copy link
Collaborator Author

Mr0grog commented Mar 29, 2018

I would add that we make the repository archived/read-only if it's deprecated as well

I think that’s generally a good idea, but we certainly ran into some opposition when we started to do that a few weeks ago. It would be good to have feedback from folks like @jbenet. Maybe the big issue before was in differentiating between things that are deprecated and things that are on indefinite hold/hibernation/not-active-not-dead-just-a-zombie (in which case we should be careful to also describe and tag those appropriately). I’m not sure.

@Mr0grog
Copy link
Collaborator Author

Mr0grog commented Apr 24, 2018

OK, I think we need to move forward with this. I’ll bring this up for last call feedback in next week’s all hands (2018-04-30). In the mean time, I think what we’ve locked down on here is:

  • 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 be newsletter, 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).

@jbenet I would really appreciate your feedback here, especially on the last point about archiving. I know you’ve had some particular concerns on that.

Again, I’ll make a last call for comments here in next week’s all hands. Barring any major concerns, let’s aim to have this decided by the end of next Wednesday (2018-05-02) and use this space for tracking updates to all the relevant repos.

@whyrusleeping
Copy link

@Mr0grog this all sounds good to me. The point on downsides of archiving repos, i think we can take some of these case by case if it looks like theres still ongoing discussion. But otherwise, archiving them should help shift discussion to more constructive places (i.e. maintained repos)

@flyingzumwalt
Copy link

@mgoelzer could you help with this cleanup effort?

@ghost
Copy link

ghost commented Apr 26, 2018

Not a perfect proxy for deprecation candidates, but below is a quick list of active repos (not archived, not marked "deprecated") with no activity before the the indicated date. Are any of these obvious candidates for deprecation?

Last updated Sept 2017
https://github.com/ipfs/go-poll-endpoint
https://github.com/ipfs/research-p2p-video
https://github.com/ipfs/jest-environment-aegir
https://github.com/ipfs/js-docker-base
https://github.com/ipfs/fs-repo-migrations

Last updated August 2017
https://github.com/ipfs/contributors-hex-grid
https://github.com/ipfs/go-ipld-btc
https://github.com/ipfs/artwork
https://github.com/ipfs/contributors
https://github.com/ipfs/go-cid-utils

Last updated July 2017
https://github.com/ipfs/ipfs-nodeschool
https://github.com/ipfs/scala-ipfs-api
https://github.com/ipfs/support

Last updated Q2 2017
https://github.com/ipfs/dht-node
https://github.com/ipfs/get-gh-contributors
https://github.com/ipfs/webrtcsupport
https://github.com/ipfs/ipfs-pages
https://github.com/ipfs/ipfs-netjournal
https://github.com/ipfs/datatogether
https://github.com/ipfs/go-ipld-zcash

Last updated Q1 2017
https://github.com/ipfs/project-repos
https://github.com/ipfs/newsletter
https://github.com/ipfs/go-ds-s3
https://github.com/ipfs/archive-format
https://github.com/ipfs/apps
https://github.com/ipfs/interface-pull-blob-store
https://github.com/ipfs/research-blockchain-data
https://github.com/ipfs/websiter
https://github.com/ipfs/file-browser

Last updated 2016 and earlier
https://github.com/ipfs/go-key
https://github.com/ipfs/install-go-ipfs
https://github.com/ipfs/go-todocounter
https://github.com/ipfs/golang-build (fork of golang/build)
https://github.com/ipfs/astralboot
https://github.com/ipfs/go-iprs
https://github.com/ipfs/paperhub
https://github.com/ipfs/ipfs.js
https://github.com/ipfs/go-metrics-interface
https://github.com/ipfs/go-ds-lru
https://github.com/ipfs/go-ds-redis
https://github.com/ipfs/2016-Q3-Workshop
https://github.com/ipfs/ops-requests
https://github.com/ipfs/refs-solarnet-storage
https://github.com/ipfs/refs-denylists-dmca
https://github.com/ipfs/refs
https://github.com/ipfs/ipfs-mans
https://github.com/ipfs/logo
https://github.com/ipfs/dataviz
https://github.com/ipfs/bitswap-ml
https://github.com/ipfs/fs-stress-test
https://github.com/ipfs/dnslink-deploy
https://github.com/ipfs/connections-globe
https://github.com/ipfs/POST
https://github.com/ipfs/go-ipfs-gateway

@Mr0grog
Copy link
Collaborator Author

Mr0grog commented Apr 26, 2018

@mgoelzer have you seen this spreadsheet? https://docs.google.com/spreadsheets/d/1IDVAGfniyHCJLIxLc3y7K7YTOFGCtgwTVCZEojtNLlw/edit#gid=0 It provides a little more information on what is and isn’t deprecated than last-updated-date (which is also super helpful for all the orange rows, which are "unclear status").

@ghost
Copy link

ghost commented Apr 26, 2018

@Mr0grog Thanks - I had not seen the spreadsheet. It's much more useful imo.

I'm happy to do the work of deprecating repos (per the process you proposed), but need help knowing which repos should definitely be deprecated, which are up for debate, etc.

@Mr0grog
Copy link
Collaborator Author

Mr0grog commented Apr 26, 2018

Great! @flyingzumwalt suggested making a last call for comments on the proposed process at Monday’s all hands, so I was holding off on discussing which repos to apply that to — I assume some will be contentious and it would be hard to sort out that discussion from any comments on the process.

That said, we could definitely normalize the labeling on the repos that are already somehow marked as deprecated (gray rows in the sheet):

And the ones that are supremely obvious or that folks have already stated are dead on Slack & IRC:

@Mr0grog
Copy link
Collaborator Author

Mr0grog commented May 3, 2018

OK, there’s been no other feedback, so I think we are good with the rules laid out above in #54 (comment) .

@mgoelzer I don’t have the rights to modify topics/descriptions/archived status anywhere, so if you’ve got the time and interest to help on updating things, that’d be incredibly wonderful.

EDIT: moved this checklist to the top of this issue so it’s more visible.

@Kubuxu
Copy link
Contributor

Kubuxu commented May 7, 2018

https://github.com/ipfs/go-metrics-prometheus is alive and being used there isn't just much to develop there

@Mr0grog
Copy link
Collaborator Author

Mr0grog commented May 7, 2018

@Kubuxu Great, I’ve removed it from the list and added it to #55. Should I do the same with go-metrics-interface?

Would you please either:

@Kubuxu
Copy link
Contributor

Kubuxu commented May 7, 2018

Same with go-metrics-interface. Will do.

@kevina
Copy link

kevina commented Aug 16, 2018

https://github.com/ipfs/go-ipfs-blockservice/ now removed by @Stebalien.

@Mr0grog Mr0grog added help wanted Seeking public contribution on this issue dif/easy Someone with a little familiarity can pick up labels Aug 23, 2018
@Mr0grog
Copy link
Collaborator Author

Mr0grog commented Aug 23, 2018

Update here: we have a way we want to mark things and a list of repos that probably need those markings (see top of this thread). What this needs is individuals to:

  • Check listed repos to make sure they still really appear to be deprecated.
  • If so, submit an issue or PR as appropriate:
    • PR to update the README to explain the repo is deprecated and say why.
    • Issue to request a repo admin update the description, update the tags, and archive the repo.
    • Post back here with the issue/PR number so we can put it in the checklist to monitor it.
    • If you are a repo admin, please go ahead and just do the above things!

Anybody who’s got some free time, just pick one repo from the list that’s not checked off and do the above! It would be enormously helpful.

@meiqimichelle meiqimichelle added topic/design-content Content design, writing, information architecture and removed blocked topic/design-content Content design, writing, information architecture labels Jun 4, 2019
@jessicaschilling jessicaschilling changed the title Develop a standard way to indicate a repo/project is deprecated GitHub Hygiene: Develop a standard way to indicate a repo/project is deprecated Jul 26, 2019
@jessicaschilling jessicaschilling added topic/docs Documentation effort/weeks Estimated to take multiple weeks and removed Priority: P2 (Medium) labels Sep 19, 2019
@jessicaschilling
Copy link
Contributor

Support on this didn't follow through, and initial effort is now outdated. Closing.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
dif/easy Someone with a little familiarity can pick up effort/weeks Estimated to take multiple weeks help wanted Seeking public contribution on this issue topic/design-content Content design, writing, information architecture topic/docs Documentation
Projects
None yet
Development

No branches or pull requests

9 participants