github: update bot labels (#3135)

* github: update labeler labels to match new

* github: fix stale bot labels

* github: use srvaroa/labeler@v0.8

* github: fix labeler credentials

* github: lint label yaml

* github: improve labeler readability

* github: use go regex for labeler

* github: update bulldozer to latest config

* github: update changelog exclude label

* github: update bulldozer conditions

* github: add dependabot config

* docs: describe labels for contributors
This commit is contained in:
Afr Schoe
2021-09-14 18:40:37 +02:00
committed by GitHub
parent 7beccf0128
commit 796e56dbdd
7 changed files with 337 additions and 53 deletions

View File

@@ -10,11 +10,69 @@ merge:
trigger:
# Pull requests with any of these labels (case-insensitive) are added to
# the trigger.
labels: ["bulldozer-merge-when-ready"]
labels: ["status5-mergeready", "status6-bulldozer"]
# Pull requests where the body or any comment contains any of these
# substrings are added to the trigger.
#comment_substrings: ["==MERGE_WHEN_READY=="]
# Pull requests where any comment matches one of these exact strings are
# added to the trigger.
#comments: ["Please merge this pull request!"]
# Pull requests where the body contains any of these substrings are added
# to the trigger.
#pr_body_substrings: ["==MERGE_WHEN_READY=="]
# Pull requests targeting any of these branches are added to the trigger.
#branches: ["develop"]
# Pull requests targeting branches matching any of these regular expressions are added to the trigger.
#branch_patterns: ["feature/.*"]
# "ignore" defines the set of pull request ignored by bulldozer. If the
# section is missing, bulldozer considers all pull requests. It takes the
# same keys as the "trigger" section.
ignore:
labels: ["status0-blocked", "status1-donotmerge", "status2-onice"]
# "method" defines the merge method. The available options are "merge",
# "rebase", "squash", and "ff-only".
method: merge
method: squash
# Allows the merge method that is used when auto-merging a PR to be different based on the
# target branch. The keys of the hash are the target branch name, and the values are the merge method that
# will be used for PRs targeting that branch. The valid values are the same as for the "method" key.
# Note: If the target branch does not match any of the specified keys, the "method" key is used instead.
branch_method:
develop: squash
master: squash
# "options" defines additional options for the individual merge methods.
#options:
# "squash" options are only used when the merge method is "squash"
#squash:
# "title" defines how the title of the commit message is created when
# generating a squash commit. The options are "pull_request_title",
# "first_commit_title", and "github_default_title". The default is
# "pull_request_title".
#title: "pull_request_title"
# "body" defines how the body of the commit message is created when
# generating a squash commit. The options are "pull_request_body",
# "summarize_commits", and "empty_body". The default is "empty_body".
#body: "empty_body"
# If "body" is "pull_request_body", then the commit message will be the
# part of the pull request body surrounded by "message_delimiter"
# strings. This is disabled (empty string) by default.
#message_delimiter: ==COMMIT_MSG==
# "required_statuses" is a list of additional status contexts that must pass
# before bulldozer can merge a pull request. This is useful if you want to
# require extra testing for automated merges, but not for manual merges.
#required_statuses:
#- "ci/circleci: ete-tests"
# If true, bulldozer will delete branches after their pull requests merge.
delete_after_merge: true
@@ -30,4 +88,13 @@ update:
# "trigger" defines the set of pull requests that should be updated by
# bulldozer. It accepts the same keys as the trigger in the "merge" block.
trigger:
labels: ["bulldozer-update"]
labels: ["status3-needsreview", "status4-needschanges", "status9-workinprogress"]
# "ignore" defines the set of pull requests that should not be updated by
# bulldozer. It accepts the same keys as the ignore in the "merge" block.
ignore:
labels: ["status5-mergeready", "status6-bulldozer"]
# If true, bulldozer will ignore updating draft pull requests, unless they
# explicitly match a configured trigger condition.
ignore_drafts: true

92
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,92 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/api"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/beacon-state-transition"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/cli"
schedule:
interval: "weekly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/config"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/db"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/fork-choice"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/light-client"
schedule:
interval: "weekly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/lodestar"
schedule:
interval: "weekly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/params"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/spec-test-runner"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/spec-test-util"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/types"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/utils"
schedule:
interval: "monthly"
labels:
- "meta9-dependencies"
- package-ecosystem: "npm"
directory: "/packages/validator"
schedule:
interval: "weekly"
labels:
- "meta9-dependencies"

93
.github/labeler.yml vendored
View File

@@ -1,33 +1,60 @@
StateTransition:
- packages/beacon-state-transition/**/*
- packages/spec-test-runner/**/*
- packages/spec-test-util/**/*
CLI:
- packages/cli/**/*
Types:
- packages/types/**/*
Config:
- packages/config/**/*
- packages/params/**/*
Validator:
- packages/validator/**/*
Api:
- packages/lodestar/src/api/**/*
Network:
- packages/lodestar/src/network/**/*
- packages/lodestar/src/sync/**/*
Eth1:
- packages/lodestar/src/eth1/**/*
Benchmarks:
- packages/lodestar/test/benchmarks/**/*
CI:
- .github/**/*
---
version: 1
labels:
- label: "mod1-beaconchain"
files:
- "packages/lodestar/.*"
- label: "mod2-validator"
files:
- "packages/validator/.*"
- label: "mod3-lightclient"
files:
- "packages/light-client/.*"
- label: "mod4-api"
files:
- "packages/lodestar/src/api/.*"
- "packages/api/.*"
- label: "mod5-cli"
files:
- "packages/cli/.*"
- label: "mod6-statetransition"
files:
- "packages/beacon-state-transition/.*"
- "packages/spec-test-runner/.*"
- "packages/spec-test-util/.*"
- label: "mod7-types"
files:
- "packages/types/.*"
- label: "mod8-params"
files:
- "packages/params/.*"
- label: "mod9-utils"
files:
- "packages/utils/.*"
- label: "moda-config"
files:
- "packages/config/.*"
- "packages/params/.*"
- label: "modb-database"
files:
- "packages/db/.*"
- label: "modc-forkchoice"
files:
- "packages/fork-choice/.*"
- label: "modd-spectests"
files:
- "packages/spec-test-runner/.*"
- "packages/spec-test-util/.*"
- label: "scope4-benchmarks"
files:
- "packages/lodestar/test/benchmarks/.*"
- label: "scope5-networking"
files:
- "packages/lodestar/src/network/.*"
- "packages/lodestar/src/sync/.*"
- label: "scopea-eth1"
files:
- "packages/lodestar/src/eth1/.*"
- label: "scopeb-ci"
files:
- ".github/.*"

27
.github/stale.yml vendored
View File

@@ -12,18 +12,19 @@ onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- "PR state: on-ice"
- "Good First Issue"
- "Status: On Ice"
- "Priority: 4 - Low"
- "Priority: 3 - Medium"
- "Priority: 2 - High"
- "Priority: 1 - Critical"
- "discussion"
- "Discussion"
- "Epic"
- "Good First Issue"
- "help wanted"
- "meta0-goodfirstissue"
- "meta1-helpwanted"
- "meta6-discussion"
- "prio0-critical"
- "prio2-high"
- "prio5-medium"
- "q5-substantial"
- "q7-involved"
- "q9-epic"
- "status0-blocked"
- "status1-donotmerge"
- "status2-onice"
- "status7-opendiscussion"
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
@@ -35,7 +36,7 @@ exemptMilestones: true
exemptAssignees: true
# Label to use when marking as stale
staleLabel: bot:stale
staleLabel: meta7-botstale
# Comment to post when marking as stale. Set to `false` to disable
markComment: >

View File

@@ -6,6 +6,6 @@ jobs:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
steps:
- uses: actions/labeler@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
- uses: srvaroa/labeler@v0.8
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -75,6 +75,7 @@ jobs:
sinceTag: "${{ needs.tag.outputs.previous_tag }}"
maxIssues: "0"
stripGeneratorNotice: "true"
excludeLabels: "meta8-excludefromchangelog"
- name: Create Release
id: create_release

View File

@@ -55,7 +55,7 @@ docker-compose -f docker/docker-compose.local.yml up -d
Unsure where to begin contributing to Lodestar? Here are some ideas!
- :pencil2: See any typos? See any verbiage that should be changed or updated? Go for it! Github makes it easy to make contributions right from the browser.
- :mag_right: Look through our [outstanding unassigned issues](https://github.com/ChainSafe/lodestar/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee). _(Hint: look for issues labeled "good first issue"!)_
- :mag_right: Look through our [outstanding unassigned issues](https://github.com/ChainSafe/lodestar/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee). _(Hint: look for issues labeled `meta0-goodfirstissue` or `meta1-helpwanted`!)_
- :speech_balloon: Join our [Discord chat](https://discord.gg/aMxzVcr)!
[![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr)
@@ -102,6 +102,102 @@ We're currently experimenting with hosting the majority of lodestar packages and
- Make sure that the tests are still passing:
- run `yarn test:unit` from the command line
## Label Guide
Issues and pull-requests are subject to the following labeling guidelines.
- Each PR **must have** a `status.*` label indicating the status.
- Each Issue or PR **must have** a `mod.*` or `scope.*` label indicating which parts of the code are relevant.
- All other labels allow for further evaluation, e.g., priority, amount of work required, etc.
Label descriptions can be found below.
###### `status.*` Pull Request Status
Status labels only apply to pull requests.
* `status0-blocked`: This is blocked by another issue that requires resolving first.
* `status1-donotmerge`: Merging this issue will break the build. Do not merge!
* `status2-onice`: This work is on ice as per the reasons described by the author.
* `status3-needsreview`: This pull-request needs a review.
* `status4-needschanges`: This pull-request has issues that needs to be addressed first.
* `status5-mergeready`: This pull-request has been reviewed well and can be merged.
* `status6-bulldozer`: Pull request is reviewed and can be merged (used by the bulldozer bot).
* `status7-opendiscussion`: This work is still being discussed.
* `status9-workinprogress`: This work is still in progress and not ready for review.
###### `mod.*` Relevant Modules and Components
The Module labels should be applied to all issues and pull requests if possible.
* `mod1-beaconchain`: The @chainsafe/lodestar beacon-chain module.
* `mod2-validator`: The @chainsafe/lodestar-validator module.
* `mod3-lightclient`: The @chainsafe/lodestar-light-client module.
* `mod4-api`: The @chainsafe/lodestar-api module.
* `mod5-cli`: The @chainsafe/lodestar-cli module.
* `mod6-statetransition`: The @chainsafe/lodestar-beacon-state-transition module.
* `mod7-types`: The @chainsafe/lodestar-types module.
* `mod8-params`: The @chainsafe/lodestar-params module.
* `mod9-utils`: The @chainsafe/lodestar-utils module.
* `moda-config`: The @chainsafe/lodestar-config module.
* `modb-database`: The @chainsafe/lodestar-db module.
* `modc-forkchoice`: The @chainsafe/lodestar-fork-choice module.
* `modd-spectests`: The @chainsafe/lodestar-spec-test-* modules.
###### `scope.*` Scope Indicator
Scope is comparable to Module labels but less strict with the definition of components. It applies to both, issues and pull requests.
* `scope1-audits`: Resolves issue identified in the first audit.
* `scope2-memory`: Issues to reduce and improve memory usage.
* `scope3-performance`: Performance issue and ideas to improve performance.
* `scope4-benchmarks`: All issues with regards to benchmarking.
* `scope5-networking`: All issues related to networking, gossip, and libp2p.
* `scope6-metrics`: All issues with regards to the exposed metrics.
* `scope7-ssz`: All issues related to SSZ serialization and deserialization.
* `scope8-bls`: All issues related to BLS and cryptography used.
* `scope9-testnetdebugging`: Issues uncovered through running a node on a public testnet.
* `scopea-eth1`: All issues related to the Eth1 provider.
* `scopeb-ci`: All issues related to the Continuous Integration and Github Workflows.
* `scopec-documentation`: All issues related to the Lodestar documentation.
###### `prio.*` Prioritization Indicator
A simple indicator of issue prioritization. It mainly applies to issues.
* `prio0-critical`: Drop everything to resolve this immediately.
* `prio2-high`: Resolve issues as soon as possible.
* `prio5-medium`: Resolve this some time soon (tm).
* `prio7-low`: This is nice to have.
* `prio9-none`: We might get back to this one day (maybe).
###### `q.*` Effort Quantization
Effort estimations can help planning to tackle issues that are particulary easy or difficult with regard of work force required. It mainly applies to issues (before work is started).
* `q0-trivial`: Can be fixed by anyone with access to a computer.
* `q2-easy`: Can be fixed by copy and pasting from StackOverflow.
* `q3-medium`: A fair chunk of work, not necessarily very hard but not trivial either
* `q5-substantial`: Can be fixed by a developer with decent experience.
* `q7-involved`: Can be fixed by a team of developers and probably takes some time.
* `q9-epic`: Can only be fixed by John Skeet. ;)
###### `spec.*` Eth2 Consensus Spec Version Target
Issues that target a specific version of the Eth2 consensus spec, shall be tagged accordingly.
* `spec0-phase0`: Issues targeting the initial Eth2 spec version.
* `spec1-altair`: Issues targeting the Altair Eth2 spec version.
* `spec3-merge`: Issues targeting the merge Eth2 spec version.
* `spec5-phase1`: Issues targeting the Phase1 Eth2 spec version.
* `spec7-phase2`: Issues targeting the Phase2 Eth2 spec version.
###### `meta.*` Meta Labels to organize Miscelaneous Issues
* `meta0-goodfirstissue`: Good first issues for newcomers and first-time contributors.
* `meta1-helpwanted`: The author indicates that additional help is wanted.
* `meta2-breakingchange`: Introduces breaking changes to DB, Validator, Beacon Node, or CLI interfaces. Handle with care!
* `meta4-cosmetic`: The changes introduces are barely touching any code.
* `meta5-technicaldebt`: Issues introducing or resolving technical debts.
* `meta6-discussion`: Indicates a topic that requires input from various developers.
* `meta7-botstale`: Label for stale issues (applied by the stale bot).
* `meta8-excludefromchangelog`: This work is not relevant for the changelog (used by Github actions). Use sparingly!
* `meta9-dependencies`: Pull requests that update a dependency (used by Dependabot).
## Community
Come chat with us on [Discord](https://discord.gg/aMxzVcr) and join our public weekly planning meetings!