Skip to content

Commit 481e1f0

Browse files
committed
Describe memorialization procedure
1 parent 753d33b commit 481e1f0

File tree

2 files changed

+133
-0
lines changed

2 files changed

+133
-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: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
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+
CPython repository
48+
------------------
49+
50+
* The user's GitHub handle is removed from ``/.github/CODE_OWNERS``.
51+
* The user is marked as deceased in the private
52+
`voters/python-core.toml <https://github.com/python/voters/blob/main/python-core.toml>`_
53+
file with the ``left=`` field set to the day of passing, if known.
54+
55+
discuss.python.org
56+
------------------
57+
58+
* The user's "custom status" is set to 🕊 ``in memoriam``;
59+
* The user's "about me" is amended with ``$firstname passed away on $date. [In memoriam.]($in_memoriam_post_url)``;
60+
* In the user's security "recently used devices" the staff member chooses "Log out all";
61+
* In the user's permissions the staff member chooses "Deactivate account";
62+
* The user's trust level is reset to ``1: basic user`` (trust level 0 doesn't allow links in "About Me");
63+
* The user's "associated accounts" (like GitHub) that provide an alternative
64+
login method, are all disconnected;
65+
* The user's API keys are revoked;
66+
* The user's admin or moderator right is revoked;
67+
* The user's primary email address is reset to ``username@in-memoriam.invalid`` and
68+
secondary email addresses are removed (this step requires the administrator
69+
to contact Discourse.org staff via ``team@discourse.org``)
70+
71+
The "in memoriam" Discourse topic mentioned above is best created by
72+
a community member close to the deceased.
73+
74+
The general best practice for deceased community members on
75+
Discourse-powered forums is described `here <https://meta.discourse.org/t/best-practices-for-deceased-community-members/146210>`_.
76+
77+
python.org email account
78+
------------------------
79+
80+
The PSF staff member emails ``postmaster@python.org`` to ask the email
81+
administrator to:
82+
83+
* remove SMTP access from ``USERNAME@python.org``;
84+
* reset the password to POP3/IMAP for ``USERNAME@python.org``;
85+
* disable email forwarding, if set up, for ``USERNAME@python.org``;
86+
* remove this email from all mailing lists under ``@python.org``;
87+
* remove any known alternate emails for the same user from all mailing lists
88+
under ``@python.org``.
89+
90+
python.org admin
91+
----------------
92+
93+
* The user's account (``/admin/users/user``) is deactivated (NOT deleted)
94+
and their staff and superuser status is unchecked;
95+
* The user's password is reset to a long random string;
96+
* The user's primary email address is set to ``USERNAME@in-memoriam.invalid``
97+
and set as unverified;
98+
* The user's secondary email addresses are deleted;
99+
* The user's API keys (both on the account and ``tastypie``) are deleted;
100+
* The user's "I would like to be a PSF Voting Member" field is cleared.
101+
102+
devguide.python.org
103+
-------------------
104+
105+
* The user is marked as deceased in `developers.csv <https://github.com/python/devguide/blob/main/core-developers/developers.csv>`_;
106+
* The user is removed from the `Experts Index <https://github.com/python/devguide/blob/main/core-developers/experts.rst>`_.
107+
108+
bugs.python.org
109+
---------------
110+
111+
While the issue tracker was migrated to GitHub, the Roundup instance
112+
is still up for historical purposes.
113+
114+
* the PSF staff member logs into ``bugs.nyc1.psf.io``;
115+
* the PSF staff member runs ``roundup-admin`` to set the user's email
116+
address to ``USERNAME@in-memoriam.invalid``;
117+
* the user's alternate emails are removed;
118+
* the user's password is reset to a long random string;
119+
* the PSF staff member removes any active login sessions from Postgres.
120+
121+
SSH server access
122+
-----------------
123+
124+
* The user is removed from Salt configuration for the PSF infrastructure
125+
in `/pillar/base/users <https://github.com/python/psf-salt/tree/main/pillar/base/users>`_.
126+
127+
PyPI
128+
----
129+
130+
* The PSF staff member notifies PyPI admins to mark the user as inactive,
131+
remove their email addresses, prohibit their password resets, and
132+
revoke all API keys.

0 commit comments

Comments
 (0)