diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..89e72e1 Binary files /dev/null and b/.DS_Store differ diff --git a/ruled_labels/specs_polkadot.yaml b/ruled_labels/specs_polkadot.yaml new file mode 100644 index 0000000..61ec557 --- /dev/null +++ b/ruled_labels/specs_polkadot.yaml @@ -0,0 +1,261 @@ +--- +name: paritytech/polkadot +description: Import from paritytech/polkadot +version: 0.0.1 +labels: + - name: A0-please_review + description: Pull request needs code review. + color: "666666" + - name: A1-needs_burnin + description: Pull request needs to be tested on a live validator node before merge. DevOps is notified via matrix + color: c7def8 + - name: A2-insubstantial + description: "Pull request requires no code review (e.g., a sub-repository hash update)." + color: C6C7F8 + - name: A3-in_progress + description: Pull request is in progress. No review needed at this stage. + color: DBC6F8 + - name: A4-companion + description: A PR that needs a companion PR to merge in parallel for one of its downstream dependencies. + color: EEF8C0 + - name: A5-stale + description: Pull request did not receive any updates in a long time. No review needed at this stage. + color: F2C5F8 + - name: A6-backport + description: Pull request is already reviewed well in another branch. + color: F8C5E7 + - name: B0-silent + description: Changes should not be mentioned in any release notes + color: f9f0f4 + - name: B1-note_worthy + description: Changes should be noted in the release notes + color: f9f0f4 + - name: C1-low + description: PR touches the given topic and has a low impact on builders. + color: eeeeee + - name: C3-medium + description: PR touches the given topic and has a medium impact on builders. + color: eebb00 + - name: C5-high + description: PR touches the given topic and has a high impact on builders. + color: D4C5F9 + - name: C7-critical + description: PR touches the given topic and has a critical impact on builders. + color: E99695 + - name: D1-audited 👍 + description: PR contains changes to critical logic that has been properly reviewed and externally audited. + color: "006600" + - name: D2-notlive 💤 + description: PR contains changes in a runtime directory that is not deployed to a chain that requires an audit. + color: 0052CC + - name: D3-trivial 🧸 + description: PR contains trivial changes in a runtime directory that do not require an audit. + color: FBCA04 + - name: D5-nicetohaveaudit ⚠️ + description: PR contains trivial changes to logic that should be properly reviewed. + color: aa6600 + - name: D9-needsaudit 👮 + description: PR contains changes to fund-managing logic that should be properly reviewed and externally audited. + color: "880000" + - name: E0-runtime_migration + description: PR introduces code that might require downstream chains to run a runtime upgrade. + color: "221133" + - name: E1-database_migration + description: PR introduces code that does a one-way migration of the database. + color: "112233" + - name: E2-dependencies + description: Pull requests that update a dependency file. + color: "222211" + - name: E3-host_functions + description: PR adds new host functions which requires a node release before a runtime upgrade. + color: f9f2f2 + - name: E4-node_first_update + description: This is a runtime change that will require all nodes to be update BEFORE the runtime upgrade. + color: e8d7d7 + - name: E5-needs_cumulus_pr + description: This is an issue that needs to be implemented upstream in Cumulus. + color: "444475" + - name: F0-breaks_everything + description: This change breaks the underlying networking, sync or related and thus will cause a fork. + color: bdadad + - name: F1-breaks_authoring + description: This change breaks authorities or authoring code. + color: e99695 + - name: F2-breaks_consensus + description: This change breaks consensus or consensus code. + color: "5319e7" + - name: F3-breaks_API + description: This PR changes public API; next release should be major. + color: cdadad + - name: I0-consensus + description: Issue can lead to a consensus failure. + color: f6d9e9 + - name: I1-panic + description: The node panics and exits without proper error handling. + color: 17b25d + - name: I2-security + description: "The node fails to follow expected, security-sensitive, behaviour." + color: D62209 + - name: I3-bug + description: Fails to follow expected behavior. + color: FB3701 + - name: I4-annoyance + description: "Code behaves within expectations, however this “expected behaviour” itself is at issue." + color: F76E02 + - name: I5-tests + description: Tests need fixing, improving or augmenting. + color: f3a603 + - name: I6-benchmarks + description: Benchmarks need fixing, improving or augmenting. + color: f3a603 + - name: I6-documentation + description: Documentation needs fixing, improving or augmenting. + color: fbca04 + - name: I7-refactor + description: Code needs refactoring. + color: dbea04 + - name: I8-footprint + description: An enhancement to provide a smaller (system load, memory, network or disk) footprint. + color: 34C302 + - name: I9-optimisation + description: An enhancement to provide better overall performance in terms of time-to-completion for a task. + color: 009B40 + - name: J0-enhancement + description: An additional feature request. + color: 006b75 + - name: J1-meta + description: A specific issue for grouping tasks or bugs of a specific category. + color: 0C7BAD + - name: J2-unconfirmed + description: Issue might be valid, but it's not yet known. It should not be worked on until it is verified. + color: "000000" + - name: J3-intended + description: Issue describes a behavior which turns out to work as intended. Closer should explain why. + color: b10d11 + - name: J4-duplicate + description: Issue is a duplicate. Closer should comment with a link to the duplicate. + color: D62209 + - name: J5-wont_fix + description: "Issue is in principle valid, but this project will not address it. Closer should explain why." + color: FB3701 + - name: J6-invalid + description: Issue is invalid. Closer should comment why. + color: ABAA8E + - name: J7-mentor + description: An easy task where a mentor is available. Please indicate in the issue who the mentor could be. + color: F76E02 + - name: S0-design + description: PR/Issue is in the design stage + color: dd6e83 + - name: S1-implement + description: PR/Issue is in the implementation stage + color: c9d7ff + - name: S2-test/monitor + description: PR/Issue is in the testing stage. + color: dbea04 + - name: S3-deploy + description: PR/Issue is in the deployment stage + color: 34C302 + - name: S4-blocked + description: PR/Issue is blocked, see comments for further information. + color: D5C978 + - name: S5-on_ice + description: Work is currently on hold, see comments for further information. + color: "122381" + - name: T0-node + description: This PR/Issue is related to the topic “node”. + color: fbffe0 + - name: T1-runtime + description: This PR/Issue is related to the topic “runtime”. + color: F5FCE6 + - name: T2-API + description: This PR/Issue is related to APIs. + color: 009B40 + - name: T3-relay_chain + description: This PR/Issue is related to the relay chain. + color: ffeeee + - name: T4-parachains_engineering + description: "This PR/Issue is related to Parachains performance, stability, maintenance." + color: 42F808 + - name: T5-parachains_protocol + description: This PR/Issue is related to Parachains features and protocol changes. + color: 14C663 + - name: T6-XCM + description: This PR/Issue is related to XCM. + color: c5def5 + - name: T7-substrate + description: This is an issue that needs to be implemented upstream in Substrate. + color: 1d76db + - name: T8-release + description: This PR/Issue is related to topics touching the release notes. + color: 0052cc + - name: U0-drop_everything + description: Everyone should address the issue now. + color: 32024c + - name: U1-asap + description: "No need to stop dead in your tracks, however issue should be addressed as soon as possible." + color: 470c68 + - name: U2-some_time_soon + description: Issue is worth doing soon. + color: "673980" + - name: U3-nice_to_have + description: Issue is worth doing eventually. + color: 856d92 + - name: U4-some_day_maybe + description: Issue might be worth doing eventually. + color: d2d1d3 + +rules: + - name: Require a single Release (B) label + id: single_b + tags: [PR] + spec: + require: !one_of [B*] + + - name: Release mentions need criticality (C) + id: require_one_c_when_b1 + tags: [PR] + spec: + when: !one_of [B1] + require: !one_of [C*] + + - name: Release mentions need a topic "node" or "runtime" + id: require_t0_or_t1_when_b1 + tags: [PR] + spec: + when: !one_of [B1] + require: !one_of [T0, T1] + + - name: Release mentions can have several topics + id: allow_multiple_t_when_b1 + tags: [PR] + spec: + when: !one_of [B1] + require: !some_of [T*] + + - name: One single issue status (S) label allowed + id: single_s + tags: + spec: + when: !some_of [S*] + require: !one_of [S*] + + - name: One single urgency status (U) label allowed + id: single_u + tags: + spec: + when: !some_of [U*] + require: !one_of [U*] + + - name: One single criticality (C) label allowed + id: single_c + tags: [PR] + spec: + when: !some_of [C*] + require: !one_of [C*] + + - name: Require single audit (D) label allowed + id: single_d + tags: [audit] + spec: + require: !one_of [D*] diff --git a/ruled_labels/tests_polkadot.yaml b/ruled_labels/tests_polkadot.yaml new file mode 100644 index 0000000..716c0cb --- /dev/null +++ b/ruled_labels/tests_polkadot.yaml @@ -0,0 +1,69 @@ +name: Polkadot ruled-labels test cases +spec_file: specs.yaml + +specs: + - name: Pass - Pass all + filter: + id: [ single_b, single_d, single_u, single_s, single_c] + labels: [ B1, C1, D1, T1, S4 ] + expected: true + + - name: Fail - Require release label + filter: + id: [ single_b ] + labels: [ A1 ] + expected: false + + - name: Pass - Release label provided. + filter: + id: [ release_notes ] + labels: [ A1, B0 ] + expected: true + + - name: Fail - Only one audit label allowed + filter: + id: [ single_d ] + labels: [ D1, B1, D4 ] + expected: false + + - name: Fail - Release needs criticality + filter: + id: [ require_one_c_when_b1 ] + labels: [ B1, T1, D1 ] + expected: false + + - name: Fail - Release need a topic. + filter: + id: [ require_t0_or_t1_when_b1 ] + labels: [ B1, D1 ] + expected: false + + - name: Pass - Release has a topic. + filter: + id: [ require_t0_or_t1_when_b1 ] + labels: [ B1, D1, T0 ] + expected: true + + - name: Pass - PR has multiple topics + filter: + id: [ allow_multiple_t_when_b1 ] + labels: [ B1, T0, T7, D1 ] + expected: true + + - name: Fail - Only one criticality label allowed + filter: + id: [ single_c ] + labels: [ B1, C1, C3 ] + expected: false + + - name: Fail - Only one urgency label allowed + filter: + id: [ single_u ] + labels: [ B1, U1, U3 ] + expected: false + + - name: Fail - Only one status label allowed + filter: + id: [ single_s ] + labels: [ B1, S1, S3 ] + expected: false \ No newline at end of file