[Buildbot] #2340: [MOSS Project] Please Change 'Slave' terminology (was: Please Change 'Slave' terminology)

Buildbot trac trac at buildbot.net
Sat Dec 19 21:47:38 UTC 2015


#2340: [MOSS Project] Please Change 'Slave' terminology
-----------------------------+--------------------
Reporter:  kimmers           |       Owner:
    Type:  enhancement       |      Status:  new
Priority:  patches-accepted  |   Milestone:  0.9.+
 Version:  master            |  Resolution:
Keywords:  moss              |
-----------------------------+--------------------
Changes (by dustin):

 * keywords:   => moss
 * version:  0.8.6p1 => master
 * milestone:  1.0.+ => 0.9.+


Old description:

> I am a manager at Cray Supercomputers, where we have recently started
> using Buildbot. Some of our employees have found the Master/Slave
> terminology offensive. Please consider changing this terminology to
> Master/Worker.

New description:

 I am a manager at Cray Supercomputers, where we have recently started
 using Buildbot. Some of our employees have found the Master/Slave
 terminology offensive. Please consider changing this terminology to
 Master/Worker.

 ----

 Some notes on how we communicate on this bug may be salient:

  * Buildbot does have a
 [https://github.com/buildbot/botherders/blob/master/policies/conduct.md
 code of conduct] - please be mindful of it when posting
  * By proposing this as part of the project's MOSS application, which has
 been funded, we have committed to making this change.  As such, arguments
 that Buildbot should not make this change are not particularly relevant.

 --Dustin

--

Comment:

 I think that the consensus here is on renaming "Slave" to "Worker" while
 leaving "Master" intact -- that addresses the request without the
 additional complexity of changing the master's name.

 I put some of my concerns in pull 1842, but it looks like that PR is stale
 now so I'll reiterate them here:

  * master/{slave,worker} compatibility is critical -- users with existing
 running buildslaves need to be able to interact with a new master.  If the
 package name changes (buildbot-slave -> buildbot-worker), then it's fine
 for the reverse to not work (that is, buildbot-worker need not be
 compatible with buildbot versions earlier 0.9.0, as those users can still
 install the latest (but older) buildbot-slave package)
   * this is trickier than it sounds, since the class names are a part of
 the PB protocol used for master/slave communication.  Another (not easy!)
 option is to complete the master/slave generalization and use that new
 protocol instead.
  * Documentation needs to be updated with some care.  As a stopgap, we've
 endeavored to use "buildslave" instead of "slave", but that should not
 turn into "buildworker".
  * required changes for users should be minimized and documented clearly
 in the release notes and `nine-upgrade.rst`.  For example, presumably
 `c['slaves']` is now `c['workers']` and is populated with `Worker`
 instances.  If the changes are more than a simple instruction, include
 compatibility and a warning rather than outright failing.
  * Developer API changes need to be documented individually in the release
 notes.  As above, prefer to warn and succeed rather than failing for un-
 upgraded code.
  * Modifications to the Data API do not require compatibility notes as
 there have been no Data API releases.  However, the AngularJS frontend
 needs to utilize the modified API correctly.
  * Include a DB migration to rename the buildslave table and any other DB
 names.

 As a MOSS project (and thus funded work) I will strengthen the
 compatibility requirement: where in any way possible, backward
 compatibility must be maintained, for configuration files, for existing
 custom buildsteps, and for network communication.

 Because of the compatibility considerations, a grep of the code for
 `/slave/` will continue to produce a number of hits.  However, a new
 install of Buildbot should run without any user-visible evidence of the
 term.  That includes database table names, Data API paths and fields, and
 any UI elements, as well as configuration files and documentation.

--
Ticket URL: <http://trac.buildbot.net/ticket/2340#comment:13>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the bugs mailing list