argotorg / argotorg/solidity

Project board / issue / PR automation

Open
#13,615 3 comments 0 reactions 0 assignees View on GitHub
high impact medium effort selected for development
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
21

Description

Replaces #8969 as the catch-all issue for board automation.

There have been a lot of ideas flying around related to boards so I thought I'd gather them in a single issue. Ultimately we may want to split it into smaller issues if some parts turn out to require significantly more effort but I think most of these will be fairly easy and the biggest bottleneck here is making decisions about what exactly we want and how to achieve it. For this a single list is easier to manage and update.

1. **Welcome note for external contributors**
- [x] Automatically posting a short message welcoming the contributor in new external PRs (https://github.com/ethereum/solidity/blob/develop/.github/workflows/welcome-external-pr.yml).
- Should link to the [Contributing](https://docs.soliditylang.org/en/latest/contributing.html) page.
- Should link to the [review checklist](https://github.com/ethereum/solidity/blob/develop/ReviewChecklist.md).
- Should invite the contributor to ask questions on #solidity-dev.
- [ ] Needs decision: what about solc-js?
2. **Handling stale issues**
- Initial implementation: #13499.
- [x] Needs decision: specific rules what and when to warn/close.
- [ ] Needs decision: what about solc-js?
- [x] Do dry-run and evaluate results.
- [x] Enable.
3. **Handling stale PRs**
- Initial implementation: #13522.
- [ ] Needs decision: specific rules what and when to warn/close.
- [ ] Needs decision: what about solc-js?
- [x] Do dry-run and evaluate results.
- [x] Enable.
4. **Board automation**
- [x] Adding new issues in the solidity repo to the `Triage` column on the board (https://github.com/ethereum/solidity/blob/develop/.github/workflows/triage.yml). Note: It only works for project boards at repository level (i.e. GH Project Classic).
- [ ] Blocker: permissions for the bot (https://github.com/ethereum/devops/issues/1128).
- [ ] Moving triaged issues to the right column
- An issue is considered triaged when it has at least the effort and impact labels.
- An triaged issue without a desirability label goes to a column for issues that need a decision.
- An triaged issue with a desirability label but with `needs design` goes to design backlog.
- An triaged issue with a desirability label and without `needs design` goes to implementation backlog.
- [ ] Moving PRs with `takeover` label to the `Takeover` column on the focus board. Add removing them when the label is removed.
- [ ] Handling issues from solc-js as well in all of the above.
- [ ] Automatically archive issues after a release has been posted on GitHub
5. **Automatic PR labeling**
- [x] `external contribution` label for PRs submitted from people not in the [Solidity team](https://github.com/orgs/ethereum/teams/solidity).
- [ ] Adding `has-dependencies` label for PRs or issues that have "Depends on #".
- [ ] Labels for simple cases where PRs touch only selected files (we'll have to still apply then manually in mixed cases):
- `documentation` label for PRs touching only files inside `docs/`, `README`s and maybe a few other docs files we have.
- `testing` if the PR only touches tests.
- `optimizer` if the PR only touches optimizer source.
- [ ] Handling PRs from solc-js as well in all of the above (when it makes sense).
6. **Random assignments**
- [ ] Needs decision: do we want this?
- [ ] Randomly assigning team members to issues that need triage.
- [ ] Randomly assigning team members as reviewers for external PRs.

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing workflows at .github/workflows/welcome-external-pr.yml and .github/workflows/triage.yml, then review the initial implementations in #13499 and #13522. Inventory the unchecked board, labeling, and assignment items and the decisions they require; this issue is complete only when the remaining scope is split into concrete, agreed tasks or implemented workflows.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, github-actions
Domain
devops, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.