Skip to content
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

Correcting case for GitHub usernames #4371

Merged

Conversation

bridgetkromhout
Copy link
Member

Summary:
While GitHub is not case-sensitive, the Elekto tool used for CNCF elections currently does need username case to match GitHub-official reality. This means that we should be consistent in how we store GitHub usernames, matching the official capitalization, so as to be able to correctly generate voter lists from devstats data.

What is currently wrong:
In the course of preparing for this year's steering election, I learned from the esteemed @mrbobbytables and subsequently documented that election eligibility pulls from several files. When generating the eligible voters list using those files as input, I noticed that my sample data had a discrepancy with the example output @mrbobbytables was showing, because his method was lowercasing all usernames. Presumably, for other uses of those files it's fine for GitHub handles to be all-lowercase. However, this leads to incorrect data for the purposes of Elekto, because a voter won't be listed as being eligible if their devstats data doesn't match a username in these files storing their participation status.

Scope of data fix:
These are the GitHub usernames that turned up as a discrepancy if case is ignored between devstats data and these files, scoped specifically to eligible voters for the 2023 steering elections. I am not attempting a comprehensive fix of all data or data generation (as I do think adding usernames to these files is manual), but I do want to make sure we can prevent "why can't I vote?!" for these specific people we can see will be affected if they try to vote in this or any future election that uses eligibility data generated from these files.

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. area/github-management Issues or PRs related to GitHub Management subproject labels Aug 8, 2023
@k8s-ci-robot k8s-ci-robot added sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Aug 8, 2023
Copy link
Member

@palnabarun palnabarun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The usernames being updated in this PR are all legit and should have been in the correct case from the start.

/lgtm
/approve

/hold for another GitHub Admin to take a secondary look

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 8, 2023
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 8, 2023
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bridgetkromhout, palnabarun

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 8, 2023
@palnabarun
Copy link
Member

/assign @kubernetes/owners

@mrbobbytables
Copy link
Member

/lgtm

Thanks!

@cblecker
Copy link
Member

cblecker commented Aug 8, 2023

/hold

@bridgetkromhout I think this is a bug in elekto we should get fixed. We've colloquially called this the "BenTheElder" bug, and have introduced case normalization in all our tools. While merging this won't have any effect on peribolos, there is no programatic enforcement to ensure drift. If we want to fix this, it should be normalizing cases in elekto.

@bridgetkromhout
Copy link
Member Author

@cblecker I agree that this small fix to the data files is not going to prevent future drift. I do think it has the possibility of reducing future harm and doesn't make anything worse, so I think we should get this specific data patch in.

I look forward to a real fix that will make this sort of patch unnecessary.

@cblecker
Copy link
Member

cblecker commented Aug 8, 2023

Ack. I left a comment elekto-io/elekto#84 (comment) to hopefully nudge us forward in that direction. I just don't want us to keep having to make what are effectively cosmetic changes to this data source going forward. For now, let's get this one in.

/lgtm
/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 8, 2023
@k8s-ci-robot k8s-ci-robot merged commit a7ec312 into kubernetes:main Aug 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/github-management Issues or PRs related to GitHub Management subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants