Skip to content

Commit 903b45d

Browse files
ambvhugovksethmlarson
authored
Describe the memorialization procedure (python#1516)
Co-authored-by: Hugo van Kemenade <[email protected]> Co-authored-by: Seth Michael Larson <[email protected]>
1 parent fcbc468 commit 903b45d

File tree

2 files changed

+147
-0
lines changed

2 files changed

+147
-0
lines changed

core-developers/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ Core developers
1313
developer-log
1414
motivations
1515
become-core-developer
16+
memorialization
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
.. _memorialize-core-developer:
2+
3+
===============
4+
Memorialization
5+
===============
6+
7+
Rationale
8+
=========
9+
10+
When a core developer passes away, memorializing accounts helps create
11+
a space for remembering the contributor and protects against attempted
12+
logins and fraudulent activity.
13+
14+
The process
15+
===========
16+
17+
The memorialization process is performed by a member of the PSF staff
18+
with administrative access to current and historical systems where
19+
core developers have access.
20+
21+
After the status of the core developer in question is confirmed,
22+
access to the systems listed below is revoked and some changes are
23+
made to how the user displays to others.
24+
25+
To respect the choices that someone made while alive, we aim to preserve
26+
content of their accounts without changes after they've passed away.
27+
To support the bereaved, in some instances, we may remove or change
28+
certain content when the legacy contact or family members request it.
29+
30+
GitHub
31+
------
32+
33+
* The user is removed from the `python/ <https://github.com/orgs/python/>`_
34+
organization on GitHub;
35+
* The user is removed from the `psf/ <https://github.com/orgs/psf/>`_
36+
organization on GitHub;
37+
* The user is removed from the `pypa/ <https://github.com/orgs/pypa/>`_
38+
organization on GitHub.
39+
40+
The PSF staff does not follow up with GitHub with regards to GitHub account
41+
cancellation as this action is reserved for next-of-kin or designated by
42+
the deceased GitHub user to act as an account successor.
43+
44+
The general policy regarding deceased users on GitHub is described
45+
`here <https://docs.github.com/en/site-policy/other-site-policies/github-deceased-user-policy>`_.
46+
47+
Repositories in the organization
48+
--------------------------------
49+
50+
* The user's GitHub handle is removed from ``/.github/CODEOWNERS``.
51+
To see all that need action, perform
52+
`this query <https://github.com/search?q=org%3Apython+path%3A**%2F.github%2FCODEOWNERS+USERNAME&type=code>`_.
53+
* The user is marked as deceased in the private
54+
`voters/python-core.toml <https://github.com/python/voters/blob/main/python-core.toml>`_
55+
file with the ``left=`` field set to the day of passing, if known.
56+
57+
discuss.python.org
58+
------------------
59+
60+
* The user's "custom status" is set to 🕊 ``in memoriam``;
61+
* The user's "about me" is amended with ``$firstname passed away on $date. [In memoriam.]($in_memoriam_post_url)``;
62+
* In the user's security "recently used devices" the staff member chooses "Log out all";
63+
* In the user's permissions the staff member chooses "Deactivate account";
64+
* The user's trust level is reset to ``1: basic user`` (trust level 0 doesn't allow links in "About Me");
65+
* The user's "associated accounts" (like GitHub) that provide an alternative
66+
login method, are all disconnected;
67+
* The user's API keys are revoked;
68+
* The user's admin or moderator right is revoked;
69+
* The user's primary email address is reset to ``[email protected]`` and
70+
secondary email addresses are removed (this step requires the administrator
71+
to contact Discourse.org staff via ``[email protected]``)
72+
73+
The "in memoriam" Discourse topic mentioned above is best created by
74+
a community member close to the deceased.
75+
76+
The general best practice for deceased community members on
77+
Discourse-powered forums is described `here <https://meta.discourse.org/t/best-practices-for-deceased-community-members/146210>`_.
78+
79+
python.org email account
80+
------------------------
81+
82+
The PSF staff member emails ``[email protected]`` to ask the email
83+
administrator to:
84+
85+
* remove SMTP access from ``[email protected]``;
86+
* reset the password to POP3/IMAP for ``[email protected]``;
87+
* disable email forwarding, if set up, for ``[email protected]``;
88+
* remove this email from all mailing lists under ``@python.org``;
89+
* remove any known alternate emails for the same user from all mailing lists
90+
under ``@python.org``.
91+
92+
python.org admin
93+
----------------
94+
95+
* The user's account (``/admin/users/user``) is deactivated (NOT deleted)
96+
and their staff and superuser status is unchecked;
97+
* The user's password is reset to a long random string;
98+
* The user's primary email address is set to ``[email protected]``
99+
and set as unverified;
100+
* The user's secondary email addresses are deleted;
101+
* The user's API keys (both on the account and ``tastypie``) are deleted;
102+
* The user's "I would like to be a PSF Voting Member" field is cleared.
103+
104+
devguide.python.org
105+
-------------------
106+
107+
* The user is marked as deceased in `developers.csv <https://github.com/python/devguide/blob/main/core-developers/developers.csv>`_;
108+
* The user is removed from the `Experts Index <https://github.com/python/devguide/blob/main/core-developers/experts.rst>`_.
109+
110+
bugs.python.org
111+
---------------
112+
113+
While the issue tracker was migrated to GitHub, the Roundup instance
114+
is still up for historical purposes.
115+
116+
* the PSF staff member logs into ``bugs.nyc1.psf.io``;
117+
* the PSF staff member runs ``roundup-admin`` to set the user's email
118+
address to ``[email protected]``;
119+
* the user's alternate emails are removed;
120+
* the user's password is reset to a long random string;
121+
* the PSF staff member removes any active login sessions from Postgres.
122+
123+
Other PSF-related infrastructure
124+
--------------------------------
125+
126+
* The PSF staff member notifies administrators of the Python Core Devs
127+
Discord server to remove the user from the server. The PSF staff
128+
does not follow up with Discord with regards to Discord account
129+
cancellation. The general policy regarding deceased users on Discord
130+
is available `here <https://support.discord.com/hc/en-us/articles/19872987802263--Deceased-or-Incapacitated-Users>`_.
131+
132+
* The user is removed from Salt configuration for the PSF infrastructure
133+
in `/pillar/base/users <https://github.com/python/psf-salt/tree/main/pillar/base/users>`_
134+
that allows SSH access to PSF-controlled servers.
135+
136+
* The user might have ran a buildbot worker. The PSF staff member will
137+
look for that in the
138+
`buildmaster-config <https://github.com/search?q=repo%3Apython%2Fbuildmaster-config%20USERNAME&type=code>`_
139+
repository.
140+
141+
PyPI
142+
----
143+
144+
* The PSF staff member notifies PyPI admins by emailing them at
145+
``[email protected]`` to mark the user as inactive, remove their email
146+
addresses, prohibit their password resets, and revoke all API keys.

0 commit comments

Comments
 (0)