diff --git a/.github/bors.toml b/.github/bors.toml deleted file mode 100644 index 983d58c68b..0000000000 --- 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 6bfd96418e..9140b4ec4f 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 @@ -147,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 @@ -287,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 @@ -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/dependencies.yml b/.github/workflows/dependencies.yml index a0a171e523..e2d868e723 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -9,11 +9,8 @@ on: paths: - '**/Cargo.toml' - 'deny.toml' - branches-ignore: - - 'dependabot/**' - - staging-squash-merge.tmp - schedule: - - cron: "0 0 * * 0" + branches: + - main env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/validation-jobs.yml b/.github/workflows/validation-jobs.yml index ae79eb9838..4e4b8ab9c0 100644 --- a/.github/workflows/validation-jobs.yml +++ b/.github/workflows/validation-jobs.yml @@ -5,12 +5,11 @@ on: pull_request: push: branches: - - staging - - trying - main env: CARGO_TERM_COLOR: always + NIGHTLY_TOOLCHAIN: nightly jobs: build-and-install-on-iOS: @@ -158,6 +157,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 @@ -171,3 +171,42 @@ jobs: env: CARGO_INCREMENTAL: 0 RUSTFLAGS: "-C debuginfo=0 -D warnings" + + build-without-default-features-status: + if: | + always() && + github.event_name == 'merge_group' + needs: build-without-default-features + runs-on: ubuntu-latest + 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 + 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 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec8e8cf772..057280cc60 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 0e9d8a787a..5694febf88 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