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.
* 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>
* has_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:2>
* 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>
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>
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>
* status: closed => new
* has_patch: 1 => 0
* resolution: fixed =>
* stage: Unreviewed => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:6>
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>
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>
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>
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>
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>
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>
* has_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/22667#comment:13>
* 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>
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>