-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Add an initial policy for delisting unmaintained projects #9731
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
Merged
Merged
Changes from 14 commits
Commits
Show all changes
42 commits
Select commit
Hold shift + click to select a range
81150bb
Add an initial policy for delisting unmaintained projects
ericholscher c5b6b15
Move legalise to the bottom
ericholscher fb045c4
A bit more clarify
ericholscher 15d53aa
Add to TOC
ericholscher 86a06db
Apply the most immediately uncomplicated suggestions from code review
benjaoming 9ffd9c8
Expand section on what "unmaintained" means
benjaoming dd70d1a
Add more cross-references for defined terms
benjaoming c8e5351
sembr
benjaoming 3252663
Adding linebreaks
benjaoming 06ac18d
Remove "candidate" and make it a bit more clear that someone needs to…
benjaoming 01234ce
Add a template for emails
benjaoming d6f30d6
Move definitions to "specification" as @humitos suggested
benjaoming 24bed4c
Move use cases to "Examples" under rationale
benjaoming 20ebb61
Adds robots.txt boilerplate
benjaoming 3ddc4e6
Add a step that the source project is notified by RTD core team
benjaoming 6cf0a1b
resolve warning - include in TOC
benjaoming 3b03178
Add a comment in robots.txt template
benjaoming 00b0337
Update docs/user/unofficial-projects.rst
benjaoming 66cc1ae
Adds a link in robots.txt to where the policy will presumably live
benjaoming 5aa69bf
Apply suggestions from @agjohnson code review
benjaoming 55d3f2d
Update docs/user/unofficial-projects.rst
benjaoming 5d43f5f
Remove procedure to notify upstream maintainers
benjaoming 27ee5a9
Change Specification to Definitions
benjaoming 877aa8b
Merge branch 'outdated-docs-policy' of github.com:readthedocs/readthe…
benjaoming dd1eadb
Move High-level Overview to Rationale
benjaoming 0c96723
Add a definition of source project
benjaoming 0746c8c
Delisting with notification. Step added to take no further action if …
benjaoming 8018631
Talk mostly of "owner" in plural, there might be several people maint…
benjaoming 98ae9b0
Remove SOME stuff, we aren't going to seriously validate that
benjaoming 5ff4259
Remove examples section, it doesn't fill much purpose now
benjaoming 682d3a2
Apply suggestions from @humitos and @erichholscher
benjaoming 054a2f1
reference Terms of Service doc
benjaoming 561d135
Move delisting section
benjaoming c023902
Remove step outlining what happens if "unreachable" since nothing hap…
benjaoming e87570c
Remove definition of "Unreachable" since it's not in use
benjaoming 0756f3c
Remove definition of Source Project
benjaoming dac7f61
Update docs/user/unofficial-projects.rst
benjaoming a53cd0b
Add cross-references to Project Policies
benjaoming 0f2b70c
Apply suggestions from code review
benjaoming d1e9f6c
Update docs/user/abandoned-projects.rst
benjaoming cdb3082
Update docs/user/abandoned-projects.rst
benjaoming 9d29116
ANY and ALL => **any** or **all**
benjaoming File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
Policy for Unofficial and Outdated Projects | ||
=========================================== | ||
|
||
This policy describes a process where we take actions against unmaintained_ and unofficial_ forks of project documentation. | ||
|
||
|
||
Rationale | ||
--------- | ||
|
||
Documentation projects may be kept online indefinitely, even though a newer version of the same project exists elsewhere. | ||
There are many reasons this can happen, | ||
including forks, old official docs that are unmaintained, and many other situations. | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
The problem with old, outdated docs is that users will find them in search results, | ||
and get confused to the validity of them. | ||
Projects will then get support requests from people who are using an old and incorrect documentation version. | ||
|
||
We have this policy to allow project maintainers to request the *delisting* of forks that are old and outdated. | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
Examples | ||
~~~~~~~~ | ||
|
||
Common cases covered by this policy are: | ||
|
||
Outdated docs | ||
Documentation that is not being actively maintained or updated. This means for instance that the source project has updates that are not reflected in the documentation or a newer official documentation exists elsewhere on the internet. | ||
|
||
Unofficial forks | ||
Forks of a project documentation that are not linked to from the project in any way. | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
Specification | ||
------------- | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
Unofficial projects | ||
~~~~~~~~~~~~~~~~~~~ | ||
|
||
A project is considered *unofficial* when it is not linked to or mentioned in *any* of the following places: | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
* Websites and domains associated with the project | ||
* Social media accounts associated with the project | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* The project's primary repository -- README files, repository description, or source code | ||
|
||
|
||
Unmaintained projects | ||
~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
A project is considered *unmaintained* when ANY of the following are met: | ||
|
||
* The configured VCS repository is unreadable. This can happen if the repository is deleted, credentials are broken or the git host permanently unresponsive. | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* The project is only serving content from releases and commits >6 months older than its source project (this happens with unmaintained forks). | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* All builds have failed for >6 months. | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
Reachability | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
~~~~~~~~~~~~ | ||
|
||
In every case where contacting the user is necessary, the core team will reach out using one of the following means of contact: | ||
|
||
* E-mail address on file in the user's profile | ||
* E-mail address on the GitHub user account where the project is pointed | ||
|
||
The core team will stop trying to reach the user after 3 weeks and the user will be considered *unreachable*. | ||
|
||
|
||
Implementation | ||
-------------- | ||
|
||
|
||
Delisting of an abandoned project | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
Projects that are determined to be unmaintained_ and unofficial_ will have a ``robots.txt`` file added that removes them from all search results: | ||
|
||
.. code-block:: text | ||
|
||
# robots.txt | ||
User-agent: * | ||
Disallow: / # Delists everything | ||
humitos marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
Projects will be delisted when ALL of the following: | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
* The project has been determined unmaintained_ and unofficial_ by the rules described above. | ||
* The person who submits the report of the unmaintained_ and unofficial_ project also demonstrates failed attempts to contact the existing owner. | ||
* The project owner is unreachable_ by the Read the Docs team. | ||
* The core team does not have any additional reservations. | ||
|
||
|
||
Requesting a project be delisted | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
If you are the maintainer of a project, | ||
you can request that we delist an outdated, unmaintained set of docs with our :doc:`/support`. | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Please include the following information: | ||
|
||
.. code-block:: text | ||
|
||
URL of unofficial and unmaintained documentation project: ... | ||
URL of official documentation (if any): ... | ||
URL of official source project website (if any): ... | ||
URL of official source project repository (if any): ... | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Describe attempts of reaching the owner of the documentation project: | ||
... | ||
humitos marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
Thinking behind the policy | ||
-------------------------- | ||
|
||
The main idea behind this policy is that Read the Docs serves the community. | ||
Every user is invited to upload content under the Terms of Use, | ||
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
understanding that it is at the sole risk of the user. | ||
|
||
While Read the Docs is not a backup service, the core team of Read the Docs does their best to keep content accessible indefinitely in its published form. However, in certain edge cases, | ||
the greater community's needs might outweigh the individual's expectation of continued publishing. | ||
|
||
|
||
Prior art | ||
--------- | ||
|
||
This policy is inspired by our :doc:`abandoned-projects`. | ||
The Python Package Index (PyPI) policy for claiming abandoned packages | ||
(`PEP-0541 <https://www.python.org/dev/peps/pep-0541>`_) heavily influenced this policy. | ||
|
||
.. _unmaintained: #unmaintained-projects | ||
.. _unofficial: #unofficial-projects | ||
.. _unreachable: #reachability |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.