[Django] #22667: Replace occurrences of master/slave terminology with leader/follower

35 views
Skip to first unread message

Django

unread,
May 20, 2014, 12:29:13 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+--------------------
Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+--------------------
The docs and some tests contain references to a master/slave db
configuration.

While this terminology has been used for a long time, those terms may
carry racially charged meanings to users.

This patch replaces all occurrences of master and slave with 'leader' and
'follower'

--
Ticket URL: <https://code.djangoproject.com/ticket/22667>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
May 20, 2014, 12:29:59 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
-------------------------------------+-------------------------------------
Reporter: fcurella | Owner: nobody
Type: | Status: new
Cleanup/optimization | Version: 1.6
Component: Documentation | Resolution:
Severity: Normal | Triage Stage:
Keywords: | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by fcurella):

* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0


Comment:

Pull Request up at https://github.com/django/django/pull/2692

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:1>

Django

unread,
May 20, 2014, 12:30:13 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
-------------------------------------+-------------------------------------
Reporter: fcurella | Owner: nobody

Type: | Status: new
Cleanup/optimization | Version: 1.6
Component: Documentation | Resolution:
Severity: Normal | Triage Stage:
Keywords: | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by fcurella):

* has_patch: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:2>

Django

unread,
May 20, 2014, 12:45:48 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
-------------------------------------+-------------------------------------
Reporter: fcurella | Owner: nobody
Type: | Status: closed
Cleanup/optimization | Version: 1.6
Component: Documentation | Resolution: fixed

Severity: Normal | Triage Stage:
Keywords: | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by timo):

* status: new => closed
* resolution: => fixed


Comment:

Fixed in 73a57b06f9d8c963b9be2bdb83122a004a4a8b0b.

For future reference, please note our
[https://docs.djangoproject.com/en/dev/internals/contributing/committing-
code/#committing-guidelines commit message guidelines] so that the ticket
will be automatically closed when the PR is merged, thanks.

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:3>

Django

unread,
May 20, 2014, 3:05:57 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
-------------------------------------+-------------------------------------
Reporter: fcurella | Owner: nobody

Type: | Status: closed
Cleanup/optimization | Version: 1.6
Component: Documentation | Resolution: fixed
Severity: Normal | Triage Stage:
Keywords: | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by erikr):

I can definitely see the point of this ticket, but I'm worried that this
particular change significantly reduces the readability of the
documentation, especially for those less familiar with database
terminology or not native English. Personally, I had never heard of
leader/follower in the context of SQL replication before, and I'm not sure
how fast I would have figured out, if I had not seen this ticket. In
addition, we've also replaced all references to master in the multi-db
support, where it does not seem to be used in master/slave context.

[[http://www.postgresql.org/docs/9.1/static/high-
availability.html|PostgreSQL]] uses master/slave or primary/standby, and
[[http://dev.mysql.com/doc/refman/5.7/en/replication.html|MySQL]] only
uses master/slave. [[https://devcenter.heroku.com/articles/heroku-
postgres-follower-databases|Heroku]] mixes follower and slave. I've also
heard replica in the past, which is my favourite (standby suggests cold to
me).

Suggestion: use the terminology master and replica. On the first use of
replica in each document, add: "(referred to as slave or standby by some
databases)". That seems like a good middle ground to me between avoiding
problematic historical associations and keeping our documentation readable
and understandable, even by those new to development or not being native
English speakers.

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:4>

Django

unread,
May 20, 2014, 3:11:54 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
-------------------------------------+-------------------------------------
Reporter: fcurella | Owner: nobody

Type: | Status: closed
Cleanup/optimization | Version: 1.6
Component: Documentation | Resolution: fixed
Severity: Normal | Triage Stage:
Keywords: | Unreviewed
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by aaugustin):

I share Erik's concerns. Making Django's docs more difficult to understand
for the people who need them most, for the sake of political correctness,
seems like a bad tradeoff. Besides, it would have been polite to wait for
feedback -- especially constructive feedback about non-loaded terms that
are more consistent with the vocabulary of supported databases -- instead
of rushing this ticket before anyone could contribute.

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:5>

Django

unread,
May 20, 2014, 3:16:05 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by aaugustin):

* status: closed => new
* has_patch: 1 => 0
* resolution: fixed =>
* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:6>

Django

unread,
May 20, 2014, 3:17:04 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by fcurella):

FWIW, I'm ok with any of the proposed terminologies (basically anything
that's not master/slave).
I'm volunteering to do the work of making another PR as soon as we reach a
rough consensus. Let's just not have too long of a bikeshed

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:7>

Django

unread,
May 20, 2014, 3:23:58 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by aaugustin):

If we want to avoid master and slave (I don't see the need, but I won't
stand in the way) I suggest "primary" and ("replica" or "standby"). These
appear to be the least ambiguous terms. "standby" has the advantage of
being PostgreSQL terminology, "replica" of being a bit more explicit (at
least to me).

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:8>

Django

unread,
May 20, 2014, 3:33:32 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by fcurella):

primary/replica sounds good to me. I'd like to wait for erikr's opinion
before proceeding, since he raised the initial concern.

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:9>

Django

unread,
May 20, 2014, 3:35:25 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by aaugustin):

If we're sticking with non-standard terminology, we should explain it at
the beginning of the multi-db docs, where it's used most heavily.

Let's try not to make this change too exclusive for Django users who
haven't been exposed to this kind of activism before -- most haven't.

It goes against our recent efforts to make the docs easier to understand
(which, as an unfortunate side-effect, destroyed a lot of their
character).

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:10>

Django

unread,
May 20, 2014, 3:46:03 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by aaugustin):

Flavio, there was a quick discussion in the core team's IRC channel in
parallel. Everyone agreed that primary/replica were good choices and that
these terms should be defined (if they aren't already). If you can send a
new PR that would be most helpful. Thank you.

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:11>

Django

unread,
May 20, 2014, 3:58:07 PM5/20/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by fcurella):

PR is up for discussion https://github.com/django/django/pull/2694

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:12>

Django

unread,
May 21, 2014, 10:46:07 AM5/21/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------

Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by timo):

* has_patch: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:13>

Django

unread,
May 22, 2014, 12:08:48 PM5/22/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------
Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: closed
Component: Documentation | Version: 1.6
Severity: Normal | Resolution: fixed

Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by Tim Graham <timograham@…>):

* status: new => closed
* resolution: => fixed


Comment:

In [changeset:"beec05686ccc3bee8461f9a5a02c607a02352ae1"]:
{{{
#!CommitTicketReference repository=""
revision="beec05686ccc3bee8461f9a5a02c607a02352ae1"
Fixed #22667 -- Replaced leader/follower terminology with primary/replica
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:14>

Django

unread,
May 28, 2014, 3:21:31 AM5/28/14
to django-...@googlegroups.com
#22667: Replace occurrences of master/slave terminology with leader/follower
--------------------------------------+------------------------------------
Reporter: fcurella | Owner: nobody
Type: Cleanup/optimization | Status: closed
Component: Documentation | Version: 1.6

Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by AD):

This change is ridiculous. If master/slave if offending anyone, you should
also be consequent and consider other name changes. For instance, you need
to find a replacement for "release". Oh, and in 2012 there was this movie
Django, all about slavery and killing. Because of this, you should also
consider project name change!

--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:15>

Reply all
Reply to author
Forward
0 new messages