|
| 1 | +# Inclusive language |
| 2 | + |
| 3 | +## Context |
| 4 | + |
| 5 | +* This is part of a broader [quality framework](README.md) |
| 6 | +* This guidance has been co-authored with the NHS Digital [EMBRACE network](https://digital.nhs.uk/about-nhs-digital/corporate-information-and-documents/staff-networks#ethnic-minorities-broadening-racial-awareness-and-cultural-exchange-embrace-) and the [Lesbian, Gay, Bisexual, Transgender, Queer and Allies (LGBTQ+) network](https://digital.nhs.uk/about-nhs-digital/corporate-information-and-documents/staff-networks#lesbian-gay-bisexual-transgender-queer-and-allies-lgbtq-) |
| 7 | + |
| 8 | +## Background |
| 9 | + |
| 10 | +The language and terminology we use is important, and there are certain industry-standard terms which cause hurt and offence. Furthermore, the 'old' standard terms use arbitrary language, for example replacing White / Black with terms such as Allow / Deny or Permit / Block removes ambiguity and delivers a better experience for all users. |
| 11 | + |
| 12 | +In line with organisations such as the [Home Office](https://hodigital.blog.gov.uk/2020/07/23/not-a-black-and-white-issue-using-racially-neutral-terms-in-technology/) and the [National Cyber Security Centre](https://www.ncsc.gov.uk/blog-post/terminology-its-not-black-and-white), we recognise that historically we have used these terms, and we will strive to avoid using these terms in the future. |
| 13 | + |
| 14 | +## Details |
| 15 | + |
| 16 | +| Context | Term we will avoid | Terms we will use instead (suggested) | |
| 17 | +| :------------------------------ | :-------------------- | :------------------------------------ | |
| 18 | +| Infrastructure (e.g. databases) | Master | Primary | |
| 19 | +| Infrastructure (e.g. databases) | Slave | Replica / Secondary / Worker / Agent | |
| 20 | +| Source control | Master | Main (see [below](#renaming-the-master-branch-in-github) for GitHub notes) | |
| 21 | +| Security / permissions | Whitelist | Allowlist / Permitlist | |
| 22 | +| Security / permissions | Blacklist | Denylist / Blocklist | |
| 23 | + |
| 24 | +Note: this is not intended to be an exhaustive list, and further suggestions are [very welcome](.github/CONTRIBUTING.md). |
| 25 | + |
| 26 | +## Renaming the master branch in GitHub |
| 27 | + |
| 28 | +GitHub have published [guidance](https://github.com/github/renaming) around renaming the master branch. It is worth noting that GitHub retains a history of the names of the parent branch so that existing links to your repository aren't broken - for example the parent branch in this repository has been renamed from master to main, but old links to the master address still work ([https://github.com/NHSDigital/software-engineering-quality-framework/blob/master/README.md](https://github.com/NHSDigital/software-engineering-quality-framework/blob/master/README.md)) and are automatically redirected to the main branch. |
| 29 | + |
| 30 | +In addition to the guidance from GitHub, developers will need to update local copies of a repository if the "master" branch is renamed - this example is for a renaming from master to main: |
| 31 | + |
| 32 | +``` |
| 33 | +git branch -m master main |
| 34 | +git fetch origin |
| 35 | +git branch -u origin/main main |
| 36 | +git remote set-head origin -a |
| 37 | +``` |
| 38 | +## Further reading |
| 39 | + |
| 40 | +* [inclusivenaming.org](https://inclusivenaming.org/word-lists/overview/) |
| 41 | +* [Internet Engineering Task Force](https://datatracker.ietf.org/doc/draft-knodel-terminology/) |
| 42 | +* [Python](https://bugs.python.org/issue34605) |
| 43 | +* [GitHub](https://github.com/github/renaming) |
| 44 | +* [NCSC](https://www.ncsc.gov.uk/blog-post/terminology-its-not-black-and-white) |
| 45 | + |
0 commit comments