inclusive language


Trevor Woerner
 

Hi,

As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?

2. Scope Creep. From the dawn of the OE project, there have been "discussions"
around variable/function names. In order to keep this work sane and concise, I
must insist that the scope of this work is "inclusive language" not "PN is too
cryptic for beginners, we should expand it to PACKAGENAME"

3. Deprecation Plan. Given the layered nature of the ecosystem, inevitably
there will be not-so-frequently-used layers out there that could stop working
entirely depending on how this work is implemented. Do we continue to support
the "old" language indefinitely? Do we have a flag day where everything
changes at once? Do we give warnings for X releases then have a cut off?

4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.

5. Backports. How far back do we make changes?

6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb

To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?

I think that would be a more sane approach rather than trying to do everything
at once.

Best regards,
Trevor


Jacob Kroon
 

On 7/15/20 7:31 AM, Trevor Woerner wrote:
Hi,
As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.
We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.
1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
I guess one way to answer that question would be an anonymous voting ?

Jacob


Rich Persaud
 

On Jul 15, 2020, at 01:31, Trevor Woerner <twoerner@...> wrote:

Hi,

As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.
Is there a YP mailing list where the minutes of the YP meeting were posted?

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
Also discussed at the June 24th, 2020 OpenEmbedded Happy Hour, where many points were raised without foregone conclusions.

6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
From the Linux coding style diff, "avoid introducing new usage", refers to new names, rather than changing existing systems with consequential impact on distributed supply chains for live systems.

To start the discussion, can we please get a consensus on item #1?
It would be helpful to define the work being proposed ("whether or not to undertake this work"), before seeking new funding for the proposed work, from YP or OE stakeholders.

Rich


Josef Holzmayr
 

Howdy!

See opinions and comments inline and below.

Am Mi., 15. Juli 2020 um 07:31 Uhr schrieb Trevor Woerner <twoerner@...>:
As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
I explicitly welcome the awareness and think we should go forward with this.

2. Scope Creep. From the dawn of the OE project, there have been "discussions"
around variable/function names. In order to keep this work sane and concise, I
must insist that the scope of this work is "inclusive language" not "PN is too
cryptic for beginners, we should expand it to PACKAGENAME"
Fully agreed.

3. Deprecation Plan. Given the layered nature of the ecosystem, inevitably
there will be not-so-frequently-used layers out there that could stop working
entirely depending on how this work is implemented. Do we continue to support
the "old" language indefinitely? Do we have a flag day where everything
changes at once? Do we give warnings for X releases then have a cut off?
This is the first time where I'll cite Torvalds "WE DO NOT BREAK
USERSPACE!". And any name-shuffling that breaks builds just for the
sake of "inclusion" will have the exact opposite effect: it "excludes"
the users, and we get the not-so-benevolent dictator label. Plus, we
serve a business case. Name-shuffling is fine if we're talking about a
hobbyist project that can break whatever it likes, but for the
industrial use case breaking stuff just for the sake of "we decided
that this name is not cool anymore" is a total no-go in my opinion.

4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.
Everything that is newly introduced shall be affected, Whenever
something new gets into the system, we shall take care to make sure
all best naming practises at the time of the introduction are adhered.
But once it is in, it is in.

5. Backports. How far back do we make changes?
Not at all.

6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
Hopefully not getting into a flamewar now, but I have to point out
that these recommendations are, again, extremely US-centric. For
example, me being German, the term "leader"(Führer) is highly loaded.
So who has the right to decide that this is better than "master" which
is the exact opposite of loaded in German ("Meister") , and only
denotes a somewhat high degree of competence at something?

So in a nutshell, I agree with the conclusion Jon draw in
https://lwn.net/Articles/823224/ - we must go forward and improve, but
not at the very real cost of breaking stuff and making on part of the
users unhappy just to make another group of people happy.

My $.02, you may beat me now.


To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?

I think that would be a more sane approach rather than trying to do everything
at once.

Best regards,
Trevor


Trevor Woerner
 

On Wed 2020-07-15 @ 03:05:38 AM, Rich Persaud wrote:
On Jul 15, 2020, at 01:31, Trevor Woerner <twoerner@...> wrote:
We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.
Is there a YP mailing list where the minutes of the YP meeting were posted?
I post them on the yocto mailing list in plain text with formatting, or you
can see them all collected here in google docs:

https://docs.google.com/document/d/1ly8nyhO14kDNnFcW2QskANXW3ZT7QwKC5wWVDg9dDH4/edit

I haven't done today's posting yet. They usually have a title something along
the lines of:

Yocto Technical Team Minutes, Engineering Sync, for <date>

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
Also discussed at the June 24th, 2020 OpenEmbedded Happy Hour
This email is my attempt to get everyone together on this topic since,
for now, email is one of this project's main channels for communication.
Yesterday's call was the first time I had heard anyone bring it up (except
for Richard's email about some upstream projects no longer having a master
branch).

where many
points were raised without foregone conclusions.
I'm merely pointing out the conversation went straight into getting a feeling
for what was involved.

6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
From the Linux coding style diff, "avoid introducing new usage", refers to new names, rather than changing existing systems with consequential impact on distributed supply chains for live systems.

To start the discussion, can we please get a consensus on item #1?
It would be helpful to define the work being proposed ("whether or not to undertake this work"), before seeking new funding for the proposed work, from YP or OE stakeholders.
Fair enough.

Where did you read anything about looking for funding?


Trevor Woerner
 

Hi Josef,

On Wed 2020-07-15 @ 09:11:44 AM, Josef Holzmayr-Khosh Amoz wrote:
My $.02, you may beat me now.
Not at all, your opinion is very much appreciated! Thank you for your input.

I think, as a project, we need to have a position on this, and you've
contributed to the discussion in a positive way. I'm sure there are others who
will agree with you (whether or not we hear from them is another story); my
hope is that we reach _some_ consensus.

Best regards,
Trevor


Trevor Woerner
 

Hi Jacob,

On Wed 2020-07-15 @ 09:02:57 AM, Jacob Kroon wrote:
I guess one way to answer that question would be an anonymous voting ?
Good point. I wonder where we are on the topic of anonymous voting? I think
someone was working on this for various other purposes (electing TSC members,
various voting for OE things).

Anyone have more info?

Best regards,
Trevor


 

On Wed, 15 Jul 2020 at 06:31, Trevor Woerner <twoerner@...> wrote:

Hi,

As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
Review comments will likely appear when patches are submitted.

On that note, I recommend we move the coding style documentation from
the wiki into the oe-core git repository so that changes can be
reviewed in the normal way. Right now it's at
https://www.openembedded.org/wiki/Styleguide and
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
which have no review process for changes and are often missed by new
contributors who don't know where to find them.


2. Scope Creep. From the dawn of the OE project, there have been "discussions"
around variable/function names. In order to keep this work sane and concise, I
must insist that the scope of this work is "inclusive language" not "PN is too
cryptic for beginners, we should expand it to PACKAGENAME"
Agreed. Also, we should focus on Bitbake and OpenEmbedded terminology,
we can't fix the terminology of all packages for which we have
recipes.


3. Deprecation Plan. Given the layered nature of the ecosystem, inevitably
there will be not-so-frequently-used layers out there that could stop working
entirely depending on how this work is implemented. Do we continue to support
the "old" language indefinitely? Do we have a flag day where everything
changes at once? Do we give warnings for X releases then have a cut off?
I recommend we introduce new terminology with backwards-compatible
aliases in the 3.2 release if possible, 3.3 if not. Some magic may be
needed for variable flags if we rename PNBLACKLIST. At this point the
documentation should use new terminology with old naming used only in
a migration guide.

Backwards-compatible aliases should be removed in release N+1 or even
N+2 if necessary.


4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.
Let's focus on terminology introduced by Bitbake and OpenEmbedded
itself. That should be enough to get us started, if we want to change
anything else we can do that in a later phase.


5. Backports. How far back do we make changes?
We should leave existing releases as-is.


6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
I think this is an excellent list.

Note that it doesn't say anything about the use of 'master' alone
without corresponding 'slave' terminology. GitHub has championed using
'main' instead of 'master', personally I'd prefer 'dev' as it's more
descriptive of the status but this is how bikeshedding begins. I
recommend we start by adopting the changes in the kernel commit above,
if we want to rename 'master' we can do that in a later phase.


To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?
I recommend we start by having someone submit a patch to add a coding
style document to the oe-core repository. That can be reviewed in the
usual way. We can then proceed to implement the new coding style in a
backwards compatible way over the next few months as development
resources permit.


I think that would be a more sane approach rather than trying to do everything
at once.

Best regards,
Trevor


--
Paul Barker
Konsulko Group


Richard Purdie
 

Thanks for bringing this up and writing a summary. The OE and YP TSCs
are aware of this and are starting to have discussions about it. I have
also been looking at what other projects and the Linux Foundation are
doing. As yet there aren't any real conclusions, I've been kind of
waiting for git itself to make a decision as that could significantly
influence what we do for practical reasons.

On Wed, 2020-07-15 at 01:31 -0400, Trevor Woerner wrote:
As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
The challenge with this topic is that anyone arguing against it
potentially ends up being branded as unsupportive of certain groups at
best and racist and worse at worst.

That is not a good position to have to make decisions from, it does
feel like there is no choice in the matter and we'll have to do
something or perhaps anything and everything.

2. Scope Creep. From the dawn of the OE project, there have been "discussions"
around variable/function names. In order to keep this work sane and concise, I
must insist that the scope of this work is "inclusive language" not "PN is too
cryptic for beginners, we should expand it to PACKAGENAME"
Shouldn't that be RECIPENAME? ;-)

I think my reply (which was my first thought) proves your point! :)

There is a valid argument that some variable names are problematic and
we don't change them simply due to the pain involved. If we are
changing them, we should aim to get them right?

As one of the maintainers, I actually get really depressed when people
say "what kind of a person picked a name like this". Naming is much
harder than people think. I've been responsible for some of it and
don't like some of the end results we've had, equally, I struggle to
come up with better ideas for some areas.

3. Deprecation Plan. Given the layered nature of the ecosystem, inevitably
there will be not-so-frequently-used layers out there that could stop working
entirely depending on how this work is implemented. Do we continue to support
the "old" language indefinitely? Do we have a flag day where everything
changes at once? Do we give warnings for X releases then have a cut off?
The good news is that there is a way for layers to mark what they're
compatible with and they have to opt in with each new release. As such
I suspect we could move fairly quickly and in most cases just error out
if/where old names were used?

4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.
We are not responsible for other other upstreams, we will just follow
their lead. As such for example I don't think we should take patches
changing terminology in upstream software.

I think all the things you mention are things we will have to look at.
Some aren't a big issues and easy to change, the branch and variable
names are probably the most problematic.

5. Backports. How far back do we make changes?
This is where it gets potentially most worrying. For example, does the
project promote racism if it doesn't take the changes back into the
LTS? Does having the LTS and master diverge make things more or less
difficult to maintain. We might make a decision now but what will
'peer' pressure look like 1 or 2 years into the LTS?

6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb

To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?

I think that would be a more sane approach rather than trying to do everything
at once.
I don't see that anyone can realistically argue against 1 for the
reasons I mention above, regardless of what they might think.

My personal position (not a project one) is that I do see the issues in
the terminology and I appreciate the community's desire to want to do
something about it, I want to support that. I do however worry that its
going to cause weeks of work in dealing with the fallout from
changes and a lot of that will end up falling to me personally as few
people step up to do that kind of thing beyond the first patch.

The kind of thing I'm referring to isn't writing the patches to change
something, or coming up with a plan for that. Its writing replies like
this to discussion on the mailing list or explaining to a user on irc
that they're using docs for "pre-change" and they need the "post-
change" docs, updating the docs themselves (we don't have a docs
maintainer right now, I'm kind of doing it) or attending the bug triage
call and figuring out how to deal with issues (who takes these bugs?).

Is this a good way to spend the time? Would that time be better spent
helping some new users and getting new active maintainers involved with
the project? Difficult to say.

Assuming the answer is yes, we need to do something (I really can't see
any other way forward), some logical next steps and places to start
are:

a) Find a list of patches that need renaming and send patches to
rename them. This shouldn't be an issue.
b) Create a list of function names that need renaming. Patches to
handle those also shouldn't be too invasive.
c) Create a list of problematic variable names so we can understand
the scope of that problem. We can then formulate plans around them
on a case by case basis.

For branch naming there is potential impact on the infrastructure and
demands on Michael's time as well as mine, depending on what we might
do there. There are large chunks of code like the autobuilder codebase
which have limited numbers of contributors yet are key to the project's
health. I think its going to be the most invasive area to change, how
invasive will depend on exactly what we do, assuming we do it.

Cheers,

Richard


Josef Holzmayr
 

Just focusing on points that are prominent to me. Comments inline.

Am Mi., 15. Juli 2020 um 11:12 Uhr schrieb Richard Purdie
<richard.purdie@...>:
I don't see that anyone can realistically argue against 1 for the
reasons I mention above, regardless of what they might think.

My personal position (not a project one) is that I do see the issues in
the terminology and I appreciate the community's desire to want to do
something about it, I want to support that. I do however worry that its
going to cause weeks of work in dealing with the fallout from
changes and a lot of that will end up falling to me personally as few
people step up to do that kind of thing beyond the first patch.
Fully agreed. One of the things I loathe most is that someone puts
burdens on us (and you specifically, Richard!), just to make
themselves feel better, like "Hey, I did the rename, I'm awesome!".
This has to be avoided. And I do not realistically see that happening,
hence I oppose renaming just for the sake of renaming.

On a more philosophical note, this sounds very much like "rewriting"
history. Not in the exact sense as git does not forget anything, but
in the face-value meaning. And, again in my explicitly own opinion,
that has never ever worked. I always vote for old errors and mistakes
to be kept visible, so there can be lessons learned. This should not
be taken too easily. "We have always been at war with Eastasia".

My $.02


Philip Balister
 

https://civs.cs.cornell.edu/

Is what we use now.

Philip

On 7/15/20 4:33 AM, Trevor Woerner wrote:
Hi Jacob,

On Wed 2020-07-15 @ 09:02:57 AM, Jacob Kroon wrote:
I guess one way to answer that question would be an anonymous voting ?
Good point. I wonder where we are on the topic of anonymous voting? I think
someone was working on this for various other purposes (electing TSC members,
various voting for OE things).

Anyone have more info?

Best regards,
Trevor




Philip Balister
 

On 7/15/20 4:38 AM, Paul Barker wrote:
6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
I think this is an excellent list.

Note that it doesn't say anything about the use of 'master' alone
without corresponding 'slave' terminology. GitHub has championed using
'main' instead of 'master', personally I'd prefer 'dev' as it's more
descriptive of the status but this is how bikeshedding begins. I
recommend we start by adopting the changes in the kernel commit above,
if we want to rename 'master' we can do that in a later phase.
I'm old we should rename "master" to "trunk".

Philip



To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?
I recommend we start by having someone submit a patch to add a coding
style document to the oe-core repository. That can be reviewed in the
usual way. We can then proceed to implement the new coding style in a
backwards compatible way over the next few months as development
resources permit.


I think that would be a more sane approach rather than trying to do everything
at once.

Best regards,
Trevor





Bruce Ashfield
 

On Wed, Jul 15, 2020 at 3:12 AM Josef Holzmayr-Khosh Amoz
<jester@...> wrote:

Howdy!

See opinions and comments inline and below.

Am Mi., 15. Juli 2020 um 07:31 Uhr schrieb Trevor Woerner <twoerner@...>:
As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
I explicitly welcome the awareness and think we should go forward with this.

2. Scope Creep. From the dawn of the OE project, there have been "discussions"
around variable/function names. In order to keep this work sane and concise, I
must insist that the scope of this work is "inclusive language" not "PN is too
cryptic for beginners, we should expand it to PACKAGENAME"
Fully agreed.

3. Deprecation Plan. Given the layered nature of the ecosystem, inevitably
there will be not-so-frequently-used layers out there that could stop working
entirely depending on how this work is implemented. Do we continue to support
the "old" language indefinitely? Do we have a flag day where everything
changes at once? Do we give warnings for X releases then have a cut off?
This is the first time where I'll cite Torvalds "WE DO NOT BREAK
USERSPACE!". And any name-shuffling that breaks builds just for the
sake of "inclusion" will have the exact opposite effect: it "excludes"
the users, and we get the not-so-benevolent dictator label. Plus, we
serve a business case. Name-shuffling is fine if we're talking about a
hobbyist project that can break whatever it likes, but for the
industrial use case breaking stuff just for the sake of "we decided
that this name is not cool anymore" is a total no-go in my opinion.

4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.
Everything that is newly introduced shall be affected, Whenever
something new gets into the system, we shall take care to make sure
all best naming practises at the time of the introduction are adhered.
But once it is in, it is in.

5. Backports. How far back do we make changes?
Not at all.

6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
Hopefully not getting into a flamewar now, but I have to point out
that these recommendations are, again, extremely US-centric. For
example, me being German, the term "leader"(Führer) is highly loaded.
So who has the right to decide that this is better than "master" which
is the exact opposite of loaded in German ("Meister") , and only
denotes a somewhat high degree of competence at something?
This is actually the most interesting point to me. In anything we undertake, the
higher level goals should be stated (not just a technical document with
rename mappings), that the effort is being done with the best intentions,
if mistakes happen the effort will evolve over time, and the language that
is being used as the baseline.

Living in an officially bilingual country, speaking 3 (or 4 if you are generous)
languages, there are many words which are offensive to one language/culture
and not to others (or are just downright funny when heard to the non native
speakers' ears). I'd think our European community members are very familiar
with this (even more than some other regions).

My main point is that deciding to do something is the easy part, coming up
with the plan will take some time (due to the above and many more issues)
and the implementation/stabilization even more time (I'm stating the obvious).

So we should go into this with eyes wide open that it won't be trivial or
necessarily quick to do.

Cheers,

Bruce



So in a nutshell, I agree with the conclusion Jon draw in
https://lwn.net/Articles/823224/ - we must go forward and improve, but
not at the very real cost of breaking stuff and making on part of the
users unhappy just to make another group of people happy.

My $.02, you may beat me now.


To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?

I think that would be a more sane approach rather than trying to do everything
at once.

Best regards,
Trevor


--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Rich Persaud
 

On Jul 15, 2020, at 05:12, Richard Purdie <richard.purdie@...> wrote:

Thanks for bringing this up and writing a summary. The OE and YP TSCs
are aware of this and are starting to have discussions about it. I have
also been looking at what other projects and the Linux Foundation are
doing. As yet there aren't any real conclusions, I've been kind of
waiting for git itself to make a decision as that could significantly
influence what we do for practical reasons.

On Wed, 2020-07-15 at 01:31 -0400, Trevor Woerner wrote:
As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?

The challenge with this topic is that anyone arguing against it
potentially ends up being branded as unsupportive of certain groups at
best and racist and worse at worst.

That is not a good position to have to make decisions from, it does
feel like there is no choice in the matter and we'll have to do
something or perhaps anything and everything.

In comparison to Github (hundreds of employees, sold for billions) or the Linux kernel with contributors from large commercial ecosystems (e.g. RedHat/IBM and Google/Android), OE was architected by a smaller set of volunteers and companies.  With less resources, careful scheduling can reduce disruption and maximize confidence in shared decisions.

Practically: are there companies who would stop contributing to OE until names are changed? Are there consumers of OE-based equipment who would boycott said equipment until names are changed?  If yes, would those companies offer funding to make their requested changes?  If not, such change requests could join the backlog for de-dupe alongside related changes to core components. 

If there were a negative campaign planned against OE, it would inadvertently provide OE with much-needed publicity, especially after appropriate changes could be agreed by the community in a shared decision.  Rushed, pre-emptive changes in fear of such a campaign would be more effort for less impact.  And no, this is not a challenge!

The context of decisions matter.  At this halfway point of 2020, it feels less coherent than previous years, with unpredictable events competing for reduced financial and psychological resources, among geographies and companies. This year is also missing in-person meetings like OEDAM, for consensus-building on complex issues. 

U.S. FTC mandates [1] a cooling-off period for some transactions made in temporary locations. With many people isolated from in-person social interaction, and the unfettered power of social media to propagate ideas online without substantive debate, the "temporary locations" of 2020 are not conducive to making decisions with long-lasting stability.

A cooling-off period would enable limited OE resources to be later deployed in service of a broader consensus.


5. Backports. How far back do we make changes?

This is where it gets potentially most worrying. For example, does the
project promote racism if it doesn't take the changes back into the
LTS? Does having the LTS and master diverge make things more or less
difficult to maintain. We might make a decision now but what will
'peer' pressure look like 1 or 2 years into the LTS?

We could aim for the next LTS, which would be released in late 2021?  The time between now and early 2021 could be used to learn from the broader OE ecosystem and reach consensus on naming-related changes, with May 2021 commit to the release that will become YP LTS in late 2021. Ideally with the benefit of an in-person OEDAM in early 2021.


6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb

To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?

I think that would be a more sane approach rather than trying to do everything
at once.

I don't see that anyone can realistically argue against 1 for the
reasons I mention above, regardless of what they might think.

Since monoculture is the opposite of multiculture, hopefully each community can make choices appropriate to their project, rather than replacing an accidental/historical monoculture with an external monoculture that is equally a snapshot of time and space.

OpenEmbedded's uniquely flexible layer mechanism enables granular overrides and "loose coupling" of requirements that would otherwise lead to forks.  Although OE is more bazaar than cathedral, there can be periods of focus which consolidate organic patterns.  How might OE evolve to be less fragile to some name changes?

While the project is incurring the cost of intrusive changes and validation for non-regression, can we use this rare opportunity to make namespace-related improvements that would otherwise be difficult to coordinate?  In terms of matching donations: contrition for the past can be matched with an architectural investment in future flexibility.

Finally, for a diversion into semantics and perception of language, consider this 1960s variant of English, E-Prime, which excluded the verb "to be".  It's a thought experiment about our expectations of language.  The more we understand the limits of a tool, the better we can use the tool appropriately.


Rich



Rich Persaud
 

On Jul 15, 2020, at 09:20, Philip Balister <philip@...> wrote:

On 7/15/20 4:38 AM, Paul Barker wrote:
6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb

I think this is an excellent list.

Note that it doesn't say anything about the use of 'master' alone
without corresponding 'slave' terminology. GitHub has championed using
'main' instead of 'master', personally I'd prefer 'dev' as it's more
descriptive of the status but this is how bikeshedding begins. I
recommend we start by adopting the changes in the kernel commit above,
if we want to rename 'master' we can do that in a later phase.

I'm old we should rename "master" to "trunk".

Philip

"Trunk" also has the advantage of describing a physical object ("tree") which overlaps with the functional role of the digital object being named.

Here's the etymology of "main", which does not inspire non-Borg feelings of inclusiveness:

Old English mægen (Mercian megen) "power, bodily strength; force, violent effort; strength of mind or will; efficacy; supernatural power," from Proto-Germanic *maginam "power" (source also of Old High German megin "strength, power, ability"), suffixed form of PIE root *magh- "to be able, have power." Original sense of "power" is preserved in phrase might and main. Also used in Middle English for "royal power or authority" (c. 1400), "military strength" (c. 1300), "application of force" (c. 1300). 



Josef Holzmayr
 

Thank you Rich,

Am Mi., 15. Juli 2020 um 16:00 Uhr schrieb Rich Persaud <persaur@...>:
Since monoculture is the opposite of multiculture, hopefully each community can make choices appropriate to their project, rather than replacing an accidental/historical monoculture with an external monoculture that is equally a snapshot of time and space.
This is exactly what I wanted to convey. Couldn't word it any better way.


Armin Kuster
 



On 7/14/20 10:31 PM, Trevor Woerner wrote:
Hi,

As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?

Well, as I see it, the LF will make a ruling and then the Yocto Project with have to follow.  If OE decides not to change then this put the two projects at odds.

Since we have deferred most issues regarding repos to the Maintainers of those repos, so I would say we see what the maintainers want to do.  If there is no action from the maintainers then this would be escalated to the appropriate TSC's and then the Board.  Community input is always helpful.

As a maintainer of a few layers, I plan on aligning with what the kernel does and will be in-sync with the transition plan from OE/YP.



2. Scope Creep. From the dawn of the OE project, there have been "discussions"
around variable/function names. In order to keep this work sane and concise, I
must insist that the scope of this work is "inclusive language" not "PN is too
cryptic for beginners, we should expand it to PACKAGENAME"

3. Deprecation Plan. Given the layered nature of the ecosystem, inevitably
there will be not-so-frequently-used layers out there that could stop working
entirely depending on how this work is implemented. Do we continue to support
the "old" language indefinitely? Do we have a flag day where everything
changes at once? Do we give warnings for X releases then have a cut off?
I think a switch over plan and how that is communicated is the challenge.  We can not enforce bad actors in layers today so doing what we have done in the past seems more appropriate like, warns first then error out. This then places the burden on the user of the bad layers to go get them fixed.

4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.
I think what the kernel changes its master branch name to we should follow. Regarding the other name changes, maybe aligning with terminology  changes the kernel does and what is left, maybe we define those at that time.  There is nothing we can do with recipes that pull from dead projects that use some sort of cloning. 


5. Backports. How far back do we make changes?
I would not suggest this as it  has the potential destabilize the current LTS version.  Not only that, there is product in the field already so altering older branches may introduce some instability.


6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb

We already reference the kernel for processes so what they do, I think we just pick up unless we don't like what they did.

-armin

To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?

I think that would be a more sane approach rather than trying to do everything
at once.

Best regards,
	Trevor


    


Eilís Ní Fhlannagáin
 

On Wed, Jul 15, 2020 at 6:31 AM Trevor Woerner <twoerner@...> wrote:

Hi,

As most are aware, there are efforts in many open-source/free-software
communities to adjust the language that is used throughout a given project
to be more inclusive.

We discussed this briefly at the most recent YP Technical Team/Engineering
Sync Meeting. Many good points were raised. I'd like to start a discussion on
this topic via email in order to enumerate and keep track of these efforts.

1. As a project we need to decide whether or not to undertake this work. Not
all projects have decided to make any changes. The discussions we had at the
last meeting made it feel as though it was a forgone conclusion by those who
spoke up that we would take on this work. Is that the consensus? Silence
represents agreement?
A note here, as I was talking with Paul Barker about this last week.

We've already done this in part of YP, in the now retired autobuilder
code base (about 6 years ago), removing master/slave terminology. So
there is precedent. I think it should be done, as much as it can be
done. Certainly WHITELIST/BLACKLIST type terminology at minimum.


2. Scope Creep. From the dawn of the OE project, there have been "discussions"
around variable/function names. In order to keep this work sane and concise, I
must insist that the scope of this work is "inclusive language" not "PN is too
cryptic for beginners, we should expand it to PACKAGENAME"
Agreed.


3. Deprecation Plan. Given the layered nature of the ecosystem, inevitably
there will be not-so-frequently-used layers out there that could stop working
entirely depending on how this work is implemented. Do we continue to support
the "old" language indefinitely? Do we have a flag day where everything
changes at once? Do we give warnings for X releases then have a cut off?
I think we need to do this responsibly, so yes, I'd be in favour of a
"here is our ideal, here is our deadline" and communicating that out
to all layer maintainers in layers.openembedded.org as well as the
mailing lists with a clearly defined set of goals and dates and doing
the things we can do to minimize build breakage between now and that
point.

-b


4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.

5. Backports. How far back do we make changes?

6. Terminology. The Linux kernel project has put out some recommendations:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb

To start the discussion, can we please get a consensus on item #1? If
positive, can we then work on whether we agree with the list of items (have I
forgotten anything, are there things to add to the list, or things to remove
from the list)? THEN can we please focus on each of the items from the list we
create?

I think that would be a more sane approach rather than trying to do everything
at once.

Best regards,
Trevor


Adrian Bunk
 

On Wed, Jul 15, 2020 at 01:31:34AM -0400, Trevor Woerner wrote:
...
4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.
...
If the word "master" alone is considered non-inclusive for people in
the US then CVs are also affected, like speaker bios at conferences.

What replacement term are US universities using for their M-word degrees?

Best regards,
Trevor
cu
Adrian


Trevor Woerner
 

On Wed 2020-07-15 @ 08:33:56 PM, Adrian Bunk wrote:
On Wed, Jul 15, 2020 at 01:31:34AM -0400, Trevor Woerner wrote:
...
4. What will be affected? Branch names, variable names, function names,
fetchers, patch file names, documentation… Given the fact we build code from
upstream projects, if we currently build from an upstream's master branch and
that upstream project never changes the name of their main branch away from
"master", I don't think there's anything we can do in those cases.
...
If the word "master" alone is considered non-inclusive for people in
the US then CVs are also affected, like speaker bios at conferences.

What replacement term are US universities using for their M-word degrees?
This is a good question.

Some projects are replacing "master" in isolation; such as when used as a branch
name. Other projects are only replacing "master" when paired with "slave".