-
-
Notifications
You must be signed in to change notification settings - Fork 816
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Describe the memorialization procedure (#1516)
Co-authored-by: Hugo van Kemenade <[email protected]> Co-authored-by: Seth Michael Larson <[email protected]>
- Loading branch information
1 parent
fcbc468
commit 903b45d
Showing
2 changed files
with
147 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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 |
---|---|---|
|
@@ -13,3 +13,4 @@ Core developers | |
developer-log | ||
motivations | ||
become-core-developer | ||
memorialization |
This file contains 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,146 @@ | ||
.. _memorialize-core-developer: | ||
|
||
=============== | ||
Memorialization | ||
=============== | ||
|
||
Rationale | ||
========= | ||
|
||
When a core developer passes away, memorializing accounts helps create | ||
a space for remembering the contributor and protects against attempted | ||
logins and fraudulent activity. | ||
|
||
The process | ||
=========== | ||
|
||
The memorialization process is performed by a member of the PSF staff | ||
with administrative access to current and historical systems where | ||
core developers have access. | ||
|
||
After the status of the core developer in question is confirmed, | ||
access to the systems listed below is revoked and some changes are | ||
made to how the user displays to others. | ||
|
||
To respect the choices that someone made while alive, we aim to preserve | ||
content of their accounts without changes after they've passed away. | ||
To support the bereaved, in some instances, we may remove or change | ||
certain content when the legacy contact or family members request it. | ||
|
||
GitHub | ||
------ | ||
|
||
* The user is removed from the `python/ <https://github.com/orgs/python/>`_ | ||
organization on GitHub; | ||
* The user is removed from the `psf/ <https://github.com/orgs/psf/>`_ | ||
organization on GitHub; | ||
* The user is removed from the `pypa/ <https://github.com/orgs/pypa/>`_ | ||
organization on GitHub. | ||
|
||
The PSF staff does not follow up with GitHub with regards to GitHub account | ||
cancellation as this action is reserved for next-of-kin or designated by | ||
the deceased GitHub user to act as an account successor. | ||
|
||
The general policy regarding deceased users on GitHub is described | ||
`here <https://docs.github.com/en/site-policy/other-site-policies/github-deceased-user-policy>`_. | ||
|
||
Repositories in the organization | ||
-------------------------------- | ||
|
||
* The user's GitHub handle is removed from ``/.github/CODEOWNERS``. | ||
To see all that need action, perform | ||
`this query <https://github.com/search?q=org%3Apython+path%3A**%2F.github%2FCODEOWNERS+USERNAME&type=code>`_. | ||
* The user is marked as deceased in the private | ||
`voters/python-core.toml <https://github.com/python/voters/blob/main/python-core.toml>`_ | ||
file with the ``left=`` field set to the day of passing, if known. | ||
|
||
discuss.python.org | ||
------------------ | ||
|
||
* The user's "custom status" is set to 🕊 ``in memoriam``; | ||
* The user's "about me" is amended with ``$firstname passed away on $date. [In memoriam.]($in_memoriam_post_url)``; | ||
* In the user's security "recently used devices" the staff member chooses "Log out all"; | ||
* In the user's permissions the staff member chooses "Deactivate account"; | ||
* The user's trust level is reset to ``1: basic user`` (trust level 0 doesn't allow links in "About Me"); | ||
* The user's "associated accounts" (like GitHub) that provide an alternative | ||
login method, are all disconnected; | ||
* The user's API keys are revoked; | ||
* The user's admin or moderator right is revoked; | ||
* The user's primary email address is reset to ``[email protected]`` and | ||
secondary email addresses are removed (this step requires the administrator | ||
to contact Discourse.org staff via ``[email protected]``) | ||
|
||
The "in memoriam" Discourse topic mentioned above is best created by | ||
a community member close to the deceased. | ||
|
||
The general best practice for deceased community members on | ||
Discourse-powered forums is described `here <https://meta.discourse.org/t/best-practices-for-deceased-community-members/146210>`_. | ||
|
||
python.org email account | ||
------------------------ | ||
|
||
The PSF staff member emails ``[email protected]`` to ask the email | ||
administrator to: | ||
|
||
* remove SMTP access from ``[email protected]``; | ||
* reset the password to POP3/IMAP for ``[email protected]``; | ||
* disable email forwarding, if set up, for ``[email protected]``; | ||
* remove this email from all mailing lists under ``@python.org``; | ||
* remove any known alternate emails for the same user from all mailing lists | ||
under ``@python.org``. | ||
|
||
python.org admin | ||
---------------- | ||
|
||
* The user's account (``/admin/users/user``) is deactivated (NOT deleted) | ||
and their staff and superuser status is unchecked; | ||
* The user's password is reset to a long random string; | ||
* The user's primary email address is set to ``[email protected]`` | ||
and set as unverified; | ||
* The user's secondary email addresses are deleted; | ||
* The user's API keys (both on the account and ``tastypie``) are deleted; | ||
* The user's "I would like to be a PSF Voting Member" field is cleared. | ||
|
||
devguide.python.org | ||
------------------- | ||
|
||
* The user is marked as deceased in `developers.csv <https://github.com/python/devguide/blob/main/core-developers/developers.csv>`_; | ||
* The user is removed from the `Experts Index <https://github.com/python/devguide/blob/main/core-developers/experts.rst>`_. | ||
|
||
bugs.python.org | ||
--------------- | ||
|
||
While the issue tracker was migrated to GitHub, the Roundup instance | ||
is still up for historical purposes. | ||
|
||
* the PSF staff member logs into ``bugs.nyc1.psf.io``; | ||
* the PSF staff member runs ``roundup-admin`` to set the user's email | ||
address to ``[email protected]``; | ||
* the user's alternate emails are removed; | ||
* the user's password is reset to a long random string; | ||
* the PSF staff member removes any active login sessions from Postgres. | ||
|
||
Other PSF-related infrastructure | ||
-------------------------------- | ||
|
||
* The PSF staff member notifies administrators of the Python Core Devs | ||
Discord server to remove the user from the server. The PSF staff | ||
does not follow up with Discord with regards to Discord account | ||
cancellation. The general policy regarding deceased users on Discord | ||
is available `here <https://support.discord.com/hc/en-us/articles/19872987802263--Deceased-or-Incapacitated-Users>`_. | ||
|
||
* The user is removed from Salt configuration for the PSF infrastructure | ||
in `/pillar/base/users <https://github.com/python/psf-salt/tree/main/pillar/base/users>`_ | ||
that allows SSH access to PSF-controlled servers. | ||
|
||
* The user might have ran a buildbot worker. The PSF staff member will | ||
look for that in the | ||
`buildmaster-config <https://github.com/search?q=repo%3Apython%2Fbuildmaster-config%20USERNAME&type=code>`_ | ||
repository. | ||
|
||
PyPI | ||
---- | ||
|
||
* The PSF staff member notifies PyPI admins by emailing them at | ||
``[email protected]`` to mark the user as inactive, remove their email | ||
addresses, prohibit their password resets, and revoke all API keys. |