slachiewicz opened a new pull request, #301: URL: https://github.com/apache/maven-gh-actions-shared/pull/301
Three colours in `labels.js` are each used by more than one label, so those labels are indistinguishable wherever they appear together: ``` #912E29 maintenance, build #E4E669 invalid, breaking, skip-changelog #FFFFFF waiting-for-feedback, wontfix ``` ## Colours — five moves, not three | label | from | to | why | |---|---|---|---| | `build` | `#912E29` | `#795548` | frees `maintenance`, which keeps its established colour | | `skip-changelog` | `#E4E669` | `#2F6F6F` | | | `breaking` | `#E4E669` | `#FF4F00` | `#E4E669` carries **three** labels; `invalid` keeps it as a GitHub default | | `wontfix` | `#FFFFFF` | `#6E7781` | frees white | | `waiting-for-feedback` | `#FFFFFF` | `#BF8700` | otherwise left alone on pure white | Two things that are easy to miss. `#E4E669` is on three labels, so moving `skip-changelog` off it still leaves `invalid` and `breaking` identical. And once `wontfix` vacates white, `waiting-for-feedback` is stranded there — an invisible outline in light mode, a glaring chip in dark. `breaking` deliberately does **not** move to `#B60205`, the obvious GitHub red: that is 23 in RGB distance from `priority:blocker`'s `#CC0000`, and those two land on the same pull request often enough to matter. `#FF4F00` keeps the danger reading at 79 from its nearest neighbour. After the five moves the closest pair left is `dependencies` / `documentation` — the two stock blues, RGB 19 apart and honestly indistinguishable. They are left alone on purpose: both are entrenched GitHub and Dependabot defaults, they rarely co-occur, and renaming or recolouring them costs more than it buys. ## Descriptions — nine rewrites `maintenance` had none at all, despite being the third most-applied label in the org. `skip-changelog`'s was not grammatical. `breaking`'s said *"Pull requests that break existing features"*, which describes a **regression** rather than a backwards-incompatible change. Four labels described themselves as applying to pull requests while also being applied to issues. In `apache/maven` alone, `breaking` sits on **2 issues against 4 pull requests** and `deprecated` on **1 against 2** — so for a third of `breaking`'s uses, its own description told a maintainer it did not apply. `dependencies`, `java` and `github_actions` keep the pull-request wording. Dependabot is the only thing that applies them and it only ever opens pull requests, so there the phrasing is accurate; staying byte-identical to Dependabot's own string also stops them reading as drift in a newly created repository. ## Six declarations of labels that already exist Not new labels — these are the ones the sync does not manage, which is exactly where all the colour drift lives: | label | repos | state today | |---|---|---| | `github_actions` | 83 | two different descriptions (74 / 9), as Dependabot changed its wording | | `question` | 78 | two colours, frozen per repo by GitHub's 2018 default change | | `Stale` | 24 | no description; load-bearing in the stale workflow | | `hacktoberfest-accepted` | 17 | **sixteen** different colours | | `security` | 13 | **thirteen** colours, zero descriptions | | `reverted` | 0 | but `release-drafter.yml` already lists it in `exclude-labels` | `security`'s description carries the reporting address from this project's own `SECURITY.md`, because the label picker is exactly where someone is about to file a public exploit report. `Stale` keeps `#EDEDED` and its capitalisation. `actions/stale` never edits label metadata — the GitHub API auto-creates a missing label at that colour when it is first applied, which is why all 24 copies look identical — so this declaration is a no-op on every repository that already has one, and the workflows match the name case-sensitively. ## Worth knowing before merging - **Declaring creates.** All six will be created in every active repository on the next sync, including `security` in the 79 that lack it and `hacktoberfest-accepted` in the ones that never took part. That is the intended behaviour and it ends the colour drift permanently, but it is a real consequence rather than a no-op. - **`labels.js` lives only on `main`.** `v4` and `v5` do not carry it, so this is deliberately a single-branch change rather than an omission. - **Nothing is deleted.** The sync only creates and updates, so undeclared labels such as `task` or the version-targeting ones stay exactly where they are. - The result is 28 labels with no two sharing a colour, no empty descriptions, and every description inside GitHub's 100-character limit. ## Not in this pull request The shared `release-drafter.yml` categorises on 11 labels that exist in no repository in the org (`major-enhancement`, `major-rfe`, `major-bug`, `rfe`, `fix`, `bugfix`, `regression`, `developer`, `internal`, `test`, and `reverted` — the last of which this change fixes by declaring it). That is a separate change and I would rather it be reviewed on its own. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
