From 57618f746a40342016ecba381d12b6865b2018fb Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Tue, 15 Feb 2022 14:09:03 -0800 Subject: [PATCH] Add messages for config changes (#3803) * Automatically label Wasmtime `Config` object changes * Add the "Label Messager" github action This allows us to have custom messages left in comments on issues and pull requests when they get labeled with a specific label. * Add a message for `wasmtime:config`-labeled pull requests * CI: Consolidate issue/PR triage workflows --- .github/label-messager.json | 3 ++ .github/label-messager/wasmtime-config.md | 51 +++++++++++++++++++++++ .github/labeler.yml | 4 ++ .github/workflows/labeler.yml | 13 ------ .github/workflows/subscribe-to-label.yml | 17 -------- .github/workflows/triage.yml | 34 +++++++++++++++ 6 files changed, 92 insertions(+), 30 deletions(-) create mode 100644 .github/label-messager.json create mode 100644 .github/label-messager/wasmtime-config.md delete mode 100644 .github/workflows/labeler.yml delete mode 100644 .github/workflows/subscribe-to-label.yml create mode 100644 .github/workflows/triage.yml diff --git a/.github/label-messager.json b/.github/label-messager.json new file mode 100644 index 0000000000..09f47a00d5 --- /dev/null +++ b/.github/label-messager.json @@ -0,0 +1,3 @@ +{ + "wasmtime:config": ".github/label-messager/wasmtime-config.md" +} diff --git a/.github/label-messager/wasmtime-config.md b/.github/label-messager/wasmtime-config.md new file mode 100644 index 0000000000..d07593286b --- /dev/null +++ b/.github/label-messager/wasmtime-config.md @@ -0,0 +1,51 @@ +It looks like you are changing Wasmtime's configuration options. Make sure to +complete this check list: + +* [ ] If you added a new `Config` method, you wrote extensive documentation for + it. + +
+ + Our documentation should be of the following form: + + ```text + Short, simple summary sentence. + + More details. These details can be multiple paragraphs. There should be + information about not just the method, but its parameters and results as + well. + + Is this method fallible? If so, when can it return an error? + + Can this method panic? If so, when does it panic? + + # Example + + Optional example here. + ``` + +
+ +* [ ] If you added a new `Config` method, or modified an existing one, you + ensured that this configuration is exercised by the fuzz targets. + +
+ + For example, if you expose a new strategy for allocating the next instance + slot inside the pooling allocator, you should ensure that at least one of our + fuzz targets exercises that new strategy. + + Often, all that is required of you is to ensure that there is a knob for this + configuration option in [`wasmtime_fuzzing::Config`][fuzzing-config] (or one + of its nested `struct`s). + + Rarely, this may require authoring a new fuzz target to specifically test this + configuration. See [our docs on fuzzing][fuzzing-docs] for more details. + +
+ +* [ ] If you are enabling a configuration option by default, make sure that it + has been fuzzed for at least two weeks before turning it on by default. + +[fuzzing-config]: https://github.com/bytecodealliance/wasmtime/blob/ca0e8d0a1d8cefc0496dba2f77a670571d8fdcab/crates/fuzzing/src/generators.rs#L182-L194 +[fuzzing-docs]: https://docs.wasmtime.dev/contributing-fuzzing.html diff --git a/.github/labeler.yml b/.github/labeler.yml index 97ab0c605d..19599af1c2 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -66,6 +66,10 @@ "wasmtime:c-api": - "crates/c-api/**" +"wasmtime:config": + - "crates/wasmtime/src/config.rs" + - "crates/wasmtime/src/config/**" + "wasmtime:docs": - "*.md" - "docs/**" diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index ddf017c71a..0000000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: "Pull Request Labeler" -on: - schedule: - # Run every 5 minutes. - - cron: '*/5 * * * *' - -jobs: - triage: - runs-on: ubuntu-latest - steps: - - uses: bytecodealliance/labeler@schedule-fork - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/subscribe-to-label.yml b/.github/workflows/subscribe-to-label.yml deleted file mode 100644 index 4944047d78..0000000000 --- a/.github/workflows/subscribe-to-label.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: "Subscribe to Label" -on: - issues: - types: ["labeled"] - schedule: - # Run pull request triage every 5 minutes. Ideally, this would be on - # "labeled" types of pull request events, but that doesn't work if the pull - # request is from another fork. For example, see - # https://github.com/actions/labeler/issues/12 - - cron: '*/5 * * * *' -jobs: - triage: - runs-on: ubuntu-latest - steps: - - uses: bytecodealliance/subscribe-to-label-action@v1 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml new file mode 100644 index 0000000000..5d02d3de92 --- /dev/null +++ b/.github/workflows/triage.yml @@ -0,0 +1,34 @@ +name: "Issue / PR Triage" + +on: + issues: + types: ["labeled"] + schedule: + # Run pull request triage every 5 minutes. Ideally, this would be on + # "labeled" types of pull request events, but that doesn't work if the pull + # request is from another fork. For example, see + # https://github.com/actions/labeler/issues/12 + - cron: '*/5 * * * *' + +jobs: + triage: + runs-on: ubuntu-latest + steps: + + # Automatically label PRs that touch certain directories with certain + # labels. + - uses: bytecodealliance/labeler@schedule-fork + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + if: ${{ github.event_name == "schedule" }} + + # @-mention people who are subscribed to a label when an issue/PR is given + # that label. + - uses: bytecodealliance/subscribe-to-label-action@v1 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + + # Leave pre-determined comments on issues/PRs that are given a certain label. + - uses: bytecodealliance/label-messager-action@v1 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}"