From 33dc8541069ba15517913b616b2994e480fc83ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:21:54 +0100 Subject: [PATCH 01/11] remove that cron --- .github/workflows/dependencies.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index a0a171e523b3c..b9fb49f7b7f0a 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -12,8 +12,6 @@ on: branches-ignore: - 'dependabot/**' - staging-squash-merge.tmp - schedule: - - cron: "0 0 * * 0" env: CARGO_TERM_COLOR: always From 2e0929d1c43f615338752e727648066a9585d0a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:22:09 +0100 Subject: [PATCH 02/11] remove bors --- .github/bors.toml | 25 ------------------------- .github/workflows/ci.yml | 5 ++--- .github/workflows/dependencies.yml | 5 ++--- .github/workflows/validation-jobs.yml | 2 -- 4 files changed, 4 insertions(+), 33 deletions(-) delete mode 100644 .github/bors.toml diff --git a/.github/bors.toml b/.github/bors.toml deleted file mode 100644 index 983d58c68b0a7..0000000000000 --- a/.github/bors.toml +++ /dev/null @@ -1,25 +0,0 @@ -status = [ - "build (windows-latest)", - "build (ubuntu-latest)", - "build (macos-latest)", - "build-wasm", - "build-android", - "markdownlint", - "run-examples", - "run-examples-on-wasm", - "check-doc", - "check-missing-examples-in-docs", - "check-missing-features-in-docs", - # "check-unused-dependencies", - "ci", - "check-compiles", - "build-and-install-on-iOS", - "run-examples-on-windows-dx12", - "build-without-default-features (bevy)", - "build-without-default-features (bevy_ecs)", - "build-without-default-features (bevy_reflect)", - "msrv", -] - -use_squash_merge = true -block_labels = ["S-Pre-Relicense"] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bfd96418e635..5ccb1205e5574 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,9 +4,8 @@ on: merge_group: pull_request: push: - branches-ignore: - - 'dependabot/**' - - staging-squash-merge.tmp + branches: + - main env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index b9fb49f7b7f0a..e2d868e7235ef 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -9,9 +9,8 @@ on: paths: - '**/Cargo.toml' - 'deny.toml' - branches-ignore: - - 'dependabot/**' - - staging-squash-merge.tmp + branches: + - main env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index ae79eb9838fda..b610d8bc87ffd 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -5,8 +5,6 @@ on: pull_request: push: branches: - - staging - - trying - main env: From 2f3d6ddb3eaa96ec86d28b650d47610a1e07b452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:22:24 +0100 Subject: [PATCH 03/11] reorder markdown jobs --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5ccb1205e5574..ed6fc503329e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -146,7 +146,7 @@ jobs: markdownlint: runs-on: ubuntu-latest timeout-minutes: 30 - needs: check-missing-examples-in-docs + needs: check-missing-features-in-docs if: always() steps: - uses: actions/checkout@v3 @@ -286,6 +286,7 @@ jobs: check-missing-features-in-docs: runs-on: ubuntu-latest timeout-minutes: 30 + needs: check-missing-examples-in-docs steps: - uses: actions/checkout@v3 - name: check for missing features From 907490c4d4fcca719232206298b7a47f48c41ca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:23:30 +0100 Subject: [PATCH 04/11] move dependency check from CI to validation --- .github/workflows/ci.yml | 24 ------------------------ .github/workflows/validation-jobs.yml | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed6fc503329e6..9140b4ec4fd65 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -317,30 +317,6 @@ jobs: name: missing-features path: missing-features/ - check-unused-dependencies: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v3 - - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-check-unused-dependencies-${{ hashFiles('**/Cargo.toml') }} - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ env.NIGHTLY_TOOLCHAIN }} - - name: Installs cargo-udeps - run: cargo install --force cargo-udeps - - name: Install alsa and udev - run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev - - name: Run cargo udeps - run: cargo udeps - msrv: runs-on: ubuntu-latest timeout-minutes: 30 diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index b610d8bc87ffd..7c726034b85f5 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -169,3 +169,28 @@ jobs: env: CARGO_INCREMENTAL: 0 RUSTFLAGS: "-C debuginfo=0 -D warnings" + + check-unused-dependencies: + if: ${{ github.event_name == 'merge_group' }} + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-check-unused-dependencies-${{ hashFiles('**/Cargo.toml') }} + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ env.NIGHTLY_TOOLCHAIN }} + - name: Installs cargo-udeps + run: cargo install --force cargo-udeps + - name: Install alsa and udev + run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + - name: Run cargo udeps + run: cargo udeps From 5ad5d2d7ef2413b8513d1983cae34fdc7a9193a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:23:46 +0100 Subject: [PATCH 05/11] add unique status job for matrix --- .github/workflows/validation-jobs.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index 7c726034b85f5..729775696d01b 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -170,6 +170,17 @@ jobs: CARGO_INCREMENTAL: 0 RUSTFLAGS: "-C debuginfo=0 -D warnings" + build-without-default-features-status: + if: ${{ github.event_name == 'merge_group' }} + needs: build-without-default-features + steps: + - name: Successful + if: ${{ !(contains(needs.*.result, 'failure')) }} + run: exit 0 + - name: Failing + if: ${{ contains(needs.*.result, 'failure') }} + run: exit 1 + check-unused-dependencies: if: ${{ github.event_name == 'merge_group' }} runs-on: ubuntu-latest From 28fba4360f611fa8889a883d898b08891b76e63b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:23:53 +0100 Subject: [PATCH 06/11] reduce parallelism --- .github/workflows/validation-jobs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index 729775696d01b..3306ae36d4826 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -156,6 +156,7 @@ jobs: if: ${{ github.event_name == 'merge_group' }} timeout-minutes: 30 strategy: + max-parallel: 1 matrix: crate: [bevy_ecs, bevy_reflect, bevy] runs-on: ubuntu-latest From ec8b78c1985ea7a47206628e0aaa4c58f190a089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:34:11 +0100 Subject: [PATCH 07/11] missed a `runs-on` --- .github/workflows/validation-jobs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index 3306ae36d4826..5cbd23cd1463a 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -174,6 +174,7 @@ jobs: build-without-default-features-status: if: ${{ github.event_name == 'merge_group' }} needs: build-without-default-features + runs-on: ubuntu-latest steps: - name: Successful if: ${{ !(contains(needs.*.result, 'failure')) }} From 5ec2b5cd56ff9b30c80de75bfe2f1632d2006d8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:37:33 +0100 Subject: [PATCH 08/11] use always to also run when needed job fails --- .github/workflows/validation-jobs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index 5cbd23cd1463a..320d40041efa4 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -172,7 +172,7 @@ jobs: RUSTFLAGS: "-C debuginfo=0 -D warnings" build-without-default-features-status: - if: ${{ github.event_name == 'merge_group' }} + if: ${{ always() }} needs: build-without-default-features runs-on: ubuntu-latest steps: From 44845a37afc9bde0ee7338eec67a5799124df683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:39:03 +0100 Subject: [PATCH 09/11] mix of always and check on event --- .github/workflows/validation-jobs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index 320d40041efa4..4f4e16377a72f 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -172,7 +172,9 @@ jobs: RUSTFLAGS: "-C debuginfo=0 -D warnings" build-without-default-features-status: - if: ${{ always() }} + if: | + always() && + github.event_name == 'merge_group' needs: build-without-default-features runs-on: ubuntu-latest steps: From 5d29696b22f8203ea9b6910023f9da81597a378f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 15:44:19 +0100 Subject: [PATCH 10/11] remove mentions of bors --- CONTRIBUTING.md | 7 +++---- docs/the_bevy_organization.md | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec8e8cf772f8b..057280cc60b35 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -166,7 +166,7 @@ Most changes don't require much "process". If your change is relatively straight 2. Other community members review and comment in an ad-hoc fashion. Active subject matter experts may be pulled into a thread using `@mentions`. If your PR has been quiet for a while and is ready for review, feel free to leave a message to "bump" the thread, or bring it up on [Discord](https://discord.gg/bevy) in an appropriate engine development channel. 3. Once they're content with the pull request (design, code quality, documentation, tests), individual reviewers leave "Approved" reviews. 4. After consensus has been reached (typically two approvals from the community or one for extremely simple changes) and CI passes, the [S-Ready-For-Final-Review](https://github.com/bevyengine/bevy/issues?q=is%3Aopen+is%3Aissue+label%3AS-Ready-For-Final-Review) label is added. -5. When they find time, someone with merge rights performs a final code review and merges the PR using [Bors](https://bors.tech/) by typing `bors r+`. +5. When they find time, someone with merge rights performs a final code review and queue the PR for merging. ### Complex changes @@ -340,9 +340,8 @@ To locally lint your files using the same workflow as our CI: 1. Install [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli). 2. Run `markdownlint -f -c .github/linters/.markdown-lint.yml .` in the root directory of the Bevy project. 5. Push your changes to your fork on Github and open a Pull Request. -6. If your account is new on github, one of the Bevy org members [will need to manually trigger CI for your PR](https://github.blog/changelog/2021-04-22-github-actions-maintainers-must-approve-first-time-contributor-workflow-runs/) using the `bors try` command. -7. Respond to any CI failures or review feedback. While CI failures must be fixed before we can merge your PR, you do not need to *agree* with all feedback from your reviews, merely acknowledge that it was given. If you cannot come to an agreement, leave the thread open and defer to @cart's final judgement. -8. When your PR is ready to merge, @cart will review it and suggest final changes. If those changes are minimal he may even apply them directly to speed up merging. +6. Respond to any CI failures or review feedback. While CI failures must be fixed before we can merge your PR, you do not need to *agree* with all feedback from your reviews, merely acknowledge that it was given. If you cannot come to an agreement, leave the thread open and defer to @cart's final judgement. +7. When your PR is ready to merge, @cart will review it and suggest final changes. If those changes are minimal he may even apply them directly to speed up merging. If you end up adding a new official Bevy crate to the `bevy` repo: diff --git a/docs/the_bevy_organization.md b/docs/the_bevy_organization.md index 0e9d8a787a5d6..5694febf88ba5 100644 --- a/docs/the_bevy_organization.md +++ b/docs/the_bevy_organization.md @@ -64,7 +64,6 @@ Check out the [Bevy People](https://bevyengine.org/community/people/#the-bevy-or 3. Have asked to join the Bevy Org. Reach out to @cart on [Discord](https://discord.gg/bevy) or email us at bevyengine@gmail.com if you are interested. Everyone is welcome to do this. We generally accept membership requests, so don't hesitate if you are interested! All Bevy Org members are also Triage Team members. The Triage Team can label and close issues and PRs but do not have merge rights or any special authority within the community. -Org members also have the ability to use `bors try`, causing our build system to evaluate the PR again and run additional (more computationally expensive) CI steps to verify that the PR is ready to merge. ## Role Rotation From f3a6539e37525379cbdbf4779aca7fba15e95b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 7 Mar 2023 22:30:36 +0100 Subject: [PATCH 11/11] add missing environment variable --- .github/workflows/validation-jobs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index 4f4e16377a72f..4e4b8ab9c0c71 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -9,6 +9,7 @@ on: env: CARGO_TERM_COLOR: always + NIGHTLY_TOOLCHAIN: nightly jobs: build-and-install-on-iOS: