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
Docs: improve deprecation doc #16829
base: master
Are you sure you want to change the base?
Conversation
The current documentation: - contains a lot of text - is sometimes unclear (or at least you need to re-read it carefully multiple times) Using a diagram feels more appropriate.
I made the diagram with draw.io, and I can provide the original file (even add it to git or share it on Slack) if someone wants to play with it. Let me know if this is an idea that is worth pursuing. We improved the doc after the AGM by tweaking the rules, but I think we made it way more complex to understand than before. I think a picture is way better than all the text we have right now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, strongly oppose making this a SVG/PNG diagram.
These SVG/PNG diagrams bitrot super quickly and don't get updated (as we saw with the Brew Test Bot flowchart recently).
If we want it to be a diagram: it should be something like Mermaid that can be edited/searched/linted as text: https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/
What is the difference between “Does not have an open source license” and “the project has no license”? The latter implies the former, no? I tried to convert it to Mermaid: flowchart TD
DEPRECATE(Deprecate.)
DISABLE(Disable.)
REMOVE(Remove.)
LICENSE(Does is have an open source licence?)
LICENSE -->|no| REMOVE
ACCEPTABLE(Does it meet our acceptable formula criteria?)
ACCEPTABLE -->|no| REMOVE
VERSIONED[Is it versioned?]
VERSIONED -->|yes| REMOVE
HAS_DEPENDENTS(Does is have any dependent?)
HAS_DEPENDENTS -->|no| MORE_THAN_1000
MORE_THAN_1000(Does is have more than 1000 downloads in 90 days?)
MORE_THAN_1000 ---|no| DISABLED_3
DISABLED_3(Is is disabled for at least 3 months?)
DISABLED_3 -->|yes| REMOVE
DISABLED_3 -->|no| ZERO_INSTALLS
ZERO_INSTALLS(Does it have zero installs in the last 90 days?)
ZERO_INSTALLS -->|yes| DISABLE
MORE_THAN_1000 ---|yes| DEPRECATED_6
DEPRECATED_6(Is is deprecated for at least six months?)
DEPRECATED_6 -->|yes| DISABLE
DEPRECATED_6 -->|no| DEPRECATED_6_NO(( ))
BUILDS(Does it build on all supported platforms?)
DEPRECATED_6_NO --> BUILDS -->|no| DEPRECATE
CVES(Does it have outstanding CVEs?)
DEPRECATED_6_NO --> CVES -->|yes| DEPRECATE
DISCONTINUED(Is it discontinued upstream?)
DEPRECATED_6_NO --> DISCONTINUED -->|yes| DEPRECATE
|
A project may be relicensed to something like BUSL or Elastic, which are not open source licenses, but they are still licensed. |
Yes, but “no license” still implies “no open source license”, right? So either way would be straight to removal. |
If the license changes we can continue using the previous bottles that were shipped under the open-source license, and we go down the deprecate lifecycle. |
So, this? flowchart TD
A(Does it have an open-source licence?) -->|no| B
B(Does it have a previous version with an open-source licence?)
B -->|no| C(Disable.)
B -->|yes| D(Deprecate.)
Do we even have formulae that do not currently have an open source license and also didn't previously? |
It can. Currently taking "no license" to mean that the formulae literally has no license at all. We've been slowly working on correcting that over the last few months though and have been removing things that do not have a discoverable license. |
We can deprecate if the license changes to something not open source. If we have no license in a formula, and can't find one, it should be outright removed immediately. |
Good idea to use mermaid for this. I'm going to update it with the latest comments. This doc will end up on https://docs.brew.sh, do we have mermaid integration there? |
Not by default, it seems, looks like it needs some extra work to get it rendering. |
There is jekyll-spaceship:
mermaid-processor:
mode: pre-fetch |
That isn't in the list of supported plugins for GitHub Pages, so including it would require some additional effort. |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
I'm on it, trying to get |
The current documentation:
Using a diagram feels more appropriate.
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?