From 70832ae5a1fcc272308c07f1d3275341e83a804c Mon Sep 17 00:00:00 2001 From: Igor Date: Sun, 19 Nov 2023 22:36:06 +0100 Subject: [PATCH] Improve labeling system - refactor labeling logic (#5916) * Add label table * Add PR size labelling * Implement suggestings from meeting * Add proper GitHub labeller --------- Co-authored-by: Werner --- .github/labeler.yml | 9 ++-- .github/labels.yml | 72 +++++++++++++++++++++++++++ .github/workflows/labels-from-yml.yml | 29 +++++++++++ .github/workflows/pr-size-labeler.yml | 21 ++++++++ CONTRIBUTING.md | 24 +++++++++ 5 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 .github/labels.yml create mode 100644 .github/workflows/labels-from-yml.yml create mode 100644 .github/workflows/pr-size-labeler.yml diff --git a/.github/labeler.yml b/.github/labeler.yml index 8f1517115061..8a6ed5251181 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -10,7 +10,7 @@ # # Please keep the labels sorted and deduplicated. -"Hardware :gear:": +"Hardware": - patch/u-boot/* - patch/u-boot/**/* - patch/atf/* @@ -19,6 +19,7 @@ - patch/kernel/* - patch/kernel/**/* - patch/misc/* + - patch/crust/* - config/kernel/* - config/sources/* - config/sources/**/* @@ -26,11 +27,13 @@ - config/bootscripts/* - config/bootenv/* -"Software :chains:": +"Software": - lib/* - tools/* - config/cli/* + - packages/* + - extensions/* - .github/workflows/* -"Desktop :desktop_computer:": +"Desktop": - config/desktop/* diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 000000000000..b747c438c2f0 --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,72 @@ +- name: "02" + color: "76B4D9" + description: "Milestone: Winter release" +- name: "05" + color: "AADB79" + description: "Milestone: Spring release" +- name: "08" + color: "4B649F" + description: "Milestone: Summer release" +- name: "11" + color: "D58125" + description: "Milestone: Autumn release" +- name: "Backlog" + color: "d4c5f9" + description: "Stalled work that needs to be completed" +- name: "Breaking change" + color: "f4bd13" + description: "Can potentially break core functionality" +- name: "Bug" + color: "F92C01" + description: "Something isn't working well" +- name: "Bugfix" + color: "F92C01" + description: "Pull request is fixing a bug" +- name: "Discussion" + color: "33B478" + description: "Issue is being discussed. Undetermined." +- name: "Duplicate" + color: "f4bd13" + description: "Issue is already present" +- name: "Not framework bug" + color: "CD456C" + description: "Bug in 3rd party component" +- name: "User error" + color: "CD456C" + description: "A mistake that is made by the user" +- name: "size/small" + color: "ededed" + description: "PR with less then 50 lines" +- name: "size/medium" + color: "ededed" + description: "PR with more then 50 and less then 250 lines" +- name: "size/large" + color: "ededed" + description: "PR with 250 lines or more" +- name: "Desktop" + color: "bfd4f2" + description: "Graphical user interface" +- name: "Hardware" + color: "bfd4f2" + description: "Hardware related - kernel, u-boot, patches" +- name: "Software" + color: "bfd4f2" + description: "Framework components" +- name: "Work in progress" + color: "29E414" + description: "Unfinished / work in progress" +- name: "Ready to merge" + color: "1d7136" + description: "Reviewed, tested and ready for merge" +- name: "Help needed" + color: "EA1BCE" + description: "We need your involvement" +- name: "Needs review" + color: "AEE054" + description: "Seeking for review" +- name: "Can be closed?" + color: "5319e7" + description: "Ping developers on stalled issues / PR" +- name: "Build" + color: "1d76db" + description: "Executing build train" diff --git a/.github/workflows/labels-from-yml.yml b/.github/workflows/labels-from-yml.yml new file mode 100644 index 000000000000..b8412642e7af --- /dev/null +++ b/.github/workflows/labels-from-yml.yml @@ -0,0 +1,29 @@ +name: Set PR and issues labels from yaml + +on: + push: + branches: + - 'main' + paths: + - '.github/labels.yml' + pull_request: + paths: + - '.github/labels.yml' + +jobs: + labeler: + if: ${{ github.repository_owner == 'Armbian' }} + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Run Labeler + uses: crazy-max/ghaction-github-labeler@v5 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + yaml-file: .github/labels.yml + dry-run: ${{ github.event_name == 'pull_request' }} + exclude: | + Maintenance* diff --git a/.github/workflows/pr-size-labeler.yml b/.github/workflows/pr-size-labeler.yml new file mode 100644 index 000000000000..f80398bf5a64 --- /dev/null +++ b/.github/workflows/pr-size-labeler.yml @@ -0,0 +1,21 @@ +name: Pull Request Labeling + +on: + - pull_request + +jobs: + + size-label: + runs-on: ubuntu-latest + steps: + - name: size-label + uses: "pascalgn/size-label-action@v0.4.3" + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + with: + sizes: > + { + "0": "small", + "50": "medium", + "250": "large" + } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 960f3fdede3a..951c5667a014 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,6 +16,30 @@ Once you have decided to contribute to Armbian by working on an issue, check our Please be sure to review the [Development Code Review Procedures and Guidelines](https://docs.armbian.com/Development-Code_Review_Procedures_and_Guidelines/) as well before you begin. +## PR and issues labeling + +Labels are defined in [.github/labels.yml](.github/labels.yml) YAML file. They are automatically recreated upon change. Require at least `Triage` users permission on repository. [Request access](https://github.com/armbian/build#contact) if you cannot change labels! + +Most of labels are self explanoritary but here are short instructions on how to use them: + +Automated on PR: +- `size/small`, `size/medium`, `size/large` is determined automatically from the size of the PR +- `desktop`, `hardware` and `software` is determined automatically depending on location of the changes + +Manual on PR: +- `02` `05` `08` `11` milestone - determine into which release the PR should go +- `work in progress` - when you are still working on +- `needs review` - when you are done and seeking for attention +- `ready to merge` - when you are done +- `help needed` - when you are desperate and cannot move on + +Labeling Issues: +- `bug` when it is clear that it is our bug, `not our bug` if its clearly not ours, `duplicate` if issue already exists +- `discussion`, when needed, `user error` when we know it is a problem on the other side +- `can be closed` for stalled issues + + + ## Contributing This section describes how to start contributing to Armbian.