Browse Source

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 <EvilOlaf@users.noreply.github.com>
Igor 1 year ago
parent
commit
70832ae5a1

+ 6 - 3
.github/labeler.yml

@@ -10,7 +10,7 @@
 #
 #
 # Please keep the labels sorted and deduplicated.
 # Please keep the labels sorted and deduplicated.
 
 
-"Hardware :gear:":
+"Hardware":
   - patch/u-boot/*
   - patch/u-boot/*
   - patch/u-boot/**/*
   - patch/u-boot/**/*
   - patch/atf/*
   - patch/atf/*
@@ -19,6 +19,7 @@
   - patch/kernel/*
   - patch/kernel/*
   - patch/kernel/**/*
   - patch/kernel/**/*
   - patch/misc/*
   - patch/misc/*
+  - patch/crust/*
   - config/kernel/*
   - config/kernel/*
   - config/sources/*
   - config/sources/*
   - config/sources/**/*
   - config/sources/**/*
@@ -26,11 +27,13 @@
   - config/bootscripts/*
   - config/bootscripts/*
   - config/bootenv/*
   - config/bootenv/*
 
 
-"Software :chains:":
+"Software":
   - lib/*
   - lib/*
   - tools/*
   - tools/*
   - config/cli/*
   - config/cli/*
+  - packages/*
+  - extensions/*
   - .github/workflows/*
   - .github/workflows/*
 
 
-"Desktop :desktop_computer:":
+"Desktop":
   - config/desktop/*
   - config/desktop/*

+ 72 - 0
.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"

+ 29 - 0
.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*

+ 21 - 0
.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"
+            }

+ 24 - 0
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.
 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
 ## Contributing
 
 
 This section describes how to start contributing to Armbian.
 This section describes how to start contributing to Armbian.