-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change the "Master" nomenclature #472
Comments
Suggesting |
I believe the context is very different between master/main branch in a repo and master/leader node. Master nodes are not the main nodes in the cluster. |
@Jon-AtAWS , you mention code and parameters, should we update cluster settings and APIs as well (e.g. /_cat/master)? |
Ideally, we would change from master/(slave - implied) terminology across the board. So, yes, changing the _cat APIs as well. Also, I agree "main" doesn't really fit for me. The function of the nodes is to hold and broadcast state, so "manager" is a close second for me. |
@Jon-AtAWS words are not offensive by themselves! It's time to start learn that finally! Eh, this talk again… Simple example: If I shout at friend in a friendly-laughy-way: "hey, stupid! ;)" it won't be offensive. But If I should: "Hey You! Stupid!" to someone else - it is offensive. It's not words, it's context. And software context has nothing to do with offense at all. Changing words like that is very bad and not helpful with your "real world" (I mean slavery) problem as it more like sweeping it under the rug. You're just pretending there's no anything like master-slave relation - while here - in software - it is! Let alone, we don't have slavery right now here in our countries and you're trying to wash your hands by doing such change (like something like that never happened in your country). This is just pure madness and world is broken. Good luck with project because I'm looking into it, but please leave stupid ideas behind and do something that is really meaningful to us - users - which is actual software. And don't get me wrong - I'm from Poland - we didn't have slavery and stuff like that, I'm just looking at all that crap from outside of America region and I may be not aware of your internal problems (but it's still your internal problems, not rest of the world!) - but from my point of view it's like: You are just trying to wash your hands from history by removing those words. And I know that because I live in country which was occupied in WW2 by Germany (not Nazis! Nazis was a political party in Germany country!) and they are trying to wash that history too in their country by forbiding telling anything about WW2 and by changing "Germany" to "Nazis" like it is another country so people can forget that Germans did (quite similar to your word changing, isn't it?). @YtFI apart from my personal opinion regarding this change - "Control Plane" in Kubernetes is different thing from "master"/"manager" - so definitely big no for "control plane" in ES. Especially that "Control Plane" is general term for all set of services that makes kubernetes master, database and other tools needed to operate Kube cluster - while here in ElasticSearch it's just single application (I mean: ElasticSearch; or here called: OpenSearch). |
I think this issue should be closed and ignored. [Redacted] Every minute we spend with this stupid nonsense is a waste of time. Jon, nobody is forcing you to use this product, if you don't like it, you're free to use a different one. Period.
|
On behalf of the maintainers of the project I agree that the term 'master' may be offensive to some people. This project is committed to being a community where everyone can join and contribute. This means using inclusive and welcoming language. The repo defaults to main for the branch and, in a similar vein, supporting inclusive language should extend to the API and the rest of the software as long as it can be made in a backward compatible way. |
Thanks @stockholmux. I would kindly ask for future comments to please be limited to technical arguments, and we really appreciate all your suggestions and thoughts and contributions. |
Thanks for the replies, folks. I appreciate that this is a possibly difficult, and politicized discussion. I want to encourage everyone to stick with the technical. And I want to +1 @stockholmux's comment above on a commitment to inclusivity. |
@Jon-AtAWS sorry, but I just don't see how "inclusivity" connects with some people's personal problems with wrong understanding of word in this context. And @sercasti has point here. Any word can be offensive to anyone. If "world" decides one day that >any other word< is offensive, will we go with this nonsense over and over again? You can't make everyone's happy - that's unwritten rule to this world. And inclusivity doesn't mean changing words - inclusivity means we welcome all people to commit to project, we welcome everybody to be part of community no matter who they are. And this I can just write in very simple Code of Conduct rules:
That's all. So, be human, be welcome to other people, be nice and I encourage everyone to take part of this (and any other projects) - but please don't change real inclusivity into some political war (like even you mentioned) or some day this will turn to those people who didn't wanted such "offensive" words (which - they are just not offensive, let's be honest - and there's even prove to that because you ignored @sercasti's comment here who makes good point here). I just try to understand all of this "political correctness", but I simply can't. |
disclaimer: this is very much my personal opinion (anything not 100% technical will always be my personal opinion and not reflect any opinion of an employer or other 3rd party if not explicitly mentioned). with that out of the way, i have a simple technical reason why this renaming shouldn't be done: this nomenclature is part of various APIs (e.g. in the cluster API). changing this would change the API. besides this being a breaking change (and you should break as little as possible) it'd also break compatibility with elasticsearch 7.10. and the statement was that you want to be compatible with ES 7.10 for as long as possible. |
@rursprung I don't think an API change like this would happen in a disorderly fashion - like any API change, it would go through a deprecation period on a major version change. |
👋 what's the best way to proceed? I'm happy to work on this with a bit of direction on how to chunk up the changes. |
I added the 2.0 release (when we'd want to fix this) and removed "help wanted" as it's not a good starting issue for someone. |
This is the plan to resolve the issue. Goal of the enhancementReplace non-inclusive terminology "master" throughout this repository with inclusive one. ContextWhat is "inclusive language"?Inclusive language is designed to avoid excluding people on the basis of gender, sexual preference, age, race, ability, etc. By using language that avoids expressions which imply or express ideas that have prejudice to any particular group of people, we aim to create a more equitable community. Why using "inclusive language" is important?Using inclusive language helps build an inclusive environment, which accepts diversity and ensures any individuals and groups feel welcome, respected, and safe. Diversity does contribute to create a fair and strong organization, and also leads to diversity of ideas, which change into creativity and innovation. How to apply "inclusive language" in a software program?Replace objectionable language in code bases and documentation. It involves assessing existing code bases and documentation, identifying potentially problematic language, then replacing terms with more preferable language. SolutionOverviewTo solve the issue, breaking changes will be introduced to OpenSearch, which requires backwards compatibility. The exclusionary terms exist in APIs and configurations, which will impact the compatibility with previous versions of OpenSearch and its third-party clients and tools. Substitute for the exclusionary terminologyOur proposed preferable terminologies to replace "master" (when referring to a role of node): leader, primary, manager, ClusterManager, ClusterCoordinator Location for the terminology:
Versions to introduce the change
Explanation:
Procedure for the replacement1. Replace the exclusionary words that won’t impact the compatibility.(source of the idea)
2. Deprecate old usages that having exclusionary words and impact the compatibility, then create alternative usages with the inclusive terms.(source of the idea)
The location that will impact the compatibility when changed:
3. Add tests to check both old and new usages - REST APIs and settings.(source of the idea) 4. Replace the exclusionary words in log messages and update documentation.This step includes the following effort:
5. Replace the exclusionary words that will impact software programs depend on OpenSearch Java libraries - in Java APIs.Replace the exclusionary words in all Java APIs, including field, method, class, and package names. 6. Remove the deprecated configurations and REST APIs in a future major version.Sub-issues
AppendixLocation that contains the exclusionary term and will impact the compatibility when changedSetting names 2 Local gateway settings 3 Miscellaneous Setting values REST API endpoints REST API path parameters REST API request parameter names
REST API request parameter values REST API response fields 2 cat nodes Location that contains the exclusionary terms and will impact software programs depend on OpenSearch Java librariesAPI of Java library Java High Level REST Client server Related issues and PRsExisting PR before the issue created: #564 |
@tlfeng Thanks for driving this effort, I would strongly recommend adding a mechanism to ensure we have removed all of these terms. By onboarding a separate check style workflow that can be created and run automatically by plugins it ensure compliance and lets you capture metrics charting the progress to zero. I've created a couple of checkstyle rules in this PR for the security plugin opensearch-project/security#1782 |
@peternied Thank you for your suggestion! I knew this campaign lack a mechanism to validate the achievement, it looks like a feasible solution. 😄 |
Strange for Amazon engineers to take a decision implying dozens of hours of refactoring (just highly political without any impact on the real world) instead of focusing on real features improving the software and asked by your community. Just saying "this is inclusive" and "this solves a problem" doesn't mean it is nor it does... How much time are you going to loose on this ? Is this even estimated ? |
@flavienbwk I appreciate your desire to improve OpenSearch, please open an issue or create a pull request in areas you'd to see updated/enhanced. |
I've created an issue to track a centralized mechanism, opensearch-project/opensearch-plugins#147 |
There are multiple APIs in OpenSearch core still have master terminology, so security plugin cannot remove all of them: |
@tlfeng looks like we do have few changes reverted, so is it safe to assume we will not ship in 2.1.0? |
With 2.4 release, we have deprecated all non-inclusive usages (i.e. master, blacklist and whitelist) and we are planning to remove those deprecated usages on 3.0 release. |
@anasalkouz after all this talk being on the other side of Ocean, I still don't see what's "non-inclusive" in those terms. Sorry. The world is just broken and you're doing wrong thing here. |
Closing the issue. |
Is your feature request related to a problem? Please describe.
Coming from #2589.
Describe the solution you'd like
Change all code, parameters, APIs, and documentation to refer to "leader" nodes instead of "master" nodes.
The goal is to have a consistent term to refer to this node function, while avoiding offensive language.
Describe alternatives you've considered
Other possible terminology
Manager (Keeps the"M" for abbreviations and existing diagrams)
Controller
Added on 04/18/2022:
Workitems in Plugins
In Other Projects
The text was updated successfully, but these errors were encountered: