Objective
During work on #3009 I've found that not all jobs use actions-rs, and therefore, an previous version of Rust is used for them. So while compilation and other stuff can pass, checking markup and Android build may fail with compilation errors.
Solution
This PR adds `action-rs` for any job running cargo, and updates the edition to 2021.
# Objective
- Fixes#2674
- Check that benches build
## Solution
- Adds a job that runs `cargo check --benches`
Co-authored-by: Carter Anderson <mcanders1@gmail.com>
# Objective
- There are a few random failures in CI, mostly due to contacting crates.io or checking for deadlinks
- CI can take some time, more than 20 minutes for a full status
- A clippy/format issue stops running tests on other platforms
## Solution
- Use GitHub cache for cargo artefacts
- This speeds up builds and reduce dependencies on outside world
- Reorder and add dependencies between short jobs. They are still setup to run even if one of the dependency failed
- This reduce the number of parallel jobs that are running for one PR. On GitHub free tier, we're limited to 20.
- Split CI checks (format & clippy) in its own job
- This speeds up test jobs, and allow us to not kill all platform tests for a format issue
- Retry in case of dead links check failure
- Internet is just that kind of place where things may seem dead at some point but back alive 5 seconds later
## Before
<img width="1062" alt="Screenshot 2021-07-27 at 01 18 52" src="https://user-images.githubusercontent.com/8672791/127071973-9a2c5ce8-c871-4f8d-9b17-08871824b6c4.png">
## After (with all cache live)
<img width="1063" alt="Screenshot 2021-07-27 at 01 18 28" src="https://user-images.githubusercontent.com/8672791/127071986-767a7e65-53ed-45fd-8d75-51a571f0b851.png">
# Objective
- Related to #2514 - not sure if it's a proper fix long term
- CI was complaining Error: Path `"/usr/local/lib/android/sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang"` was not found
- A lot of questions started popping up 10 days ago about ["android build tools 31 corrupted"](https://www.google.com/search?q=android+build+tools+31+corrupted)
- https://stackoverflow.com/questions/68387270/android-studio-error-installed-build-tools-revision-31-0-0-is-corrupted
- Uninstalling `"build-tools;31.0.0"` doesn't seem to work, as it removes other components even though `"build-tools;30.0.3"` are available
## Solution
- Uninstalling `"platforms;android-31"` seems to do the trick and `cargo-apk` stops trying to target `...31`
Android is not my thing, this solution was found with a lot of trials and errors. I am not sure how long term it is, I don't know the release schedule of android build tools, or if we need to target this 31 thing. I just wanted to stop all those failed ci everywhere...
Bumps [gaurav-nelson/github-action-markdown-link-check](https://github.com/gaurav-nelson/github-action-markdown-link-check) from 1.0.12 to 1.0.13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/releases">gaurav-nelson/github-action-markdown-link-check's releases</a>.</em></p>
<blockquote>
<h2>1.0.13</h2>
<p>Main changes:</p>
<ul>
<li>Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/111">#111</a> from gaurav-nelson/mlc@3.8.7 (9710f0f)</li>
<li>Update to markdown-link-check version 3.8.7 (7a77bd1)</li>
</ul>
<p>Other minor updates:</p>
<ul>
<li>Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/107">#107</a> from petethepig/patch-1 (95ffb9c)</li>
<li>Adds pyroscope to the list of happy users (2df45f2)</li>
<li>Fixed usage examples (cc3343e)</li>
<li>Buy me a coffee (24cd99c)</li>
<li>Remove treeware badge (f0656de)</li>
<li>Add netdata sample (2579500)</li>
<li>Update README, fixed LICENSE (4d5a901)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9710f0fec8"><code>9710f0f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/111">#111</a> from gaurav-nelson/mlc@3.8.7</li>
<li><a href="7a77bd14cc"><code>7a77bd1</code></a> Update to markdown-link-check version 3.8.7</li>
<li><a href="95ffb9cc0e"><code>95ffb9c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/107">#107</a> from petethepig/patch-1</li>
<li><a href="2df45f2890"><code>2df45f2</code></a> Adds pyroscope to the list of happy users</li>
<li><a href="cc3343e7a6"><code>cc3343e</code></a> Fixed usage examples</li>
<li><a href="24cd99c2f8"><code>24cd99c</code></a> Buy me a coffee</li>
<li><a href="f0656de48f"><code>f0656de</code></a> Remove treeware badge</li>
<li><a href="2579500287"><code>2579500</code></a> Add netdata sample</li>
<li><a href="4d5a901466"><code>4d5a901</code></a> Update README, fixed LICENSE</li>
<li>See full diff in <a href="0fe4911067...9710f0fec8">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gaurav-nelson/github-action-markdown-link-check&package-manager=github_actions&previous-version=1.0.12&new-version=1.0.13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Remove branch constraints from CI
This will let CI run on:
- fork branches before a PR is opened
- this repo branches if we start using them (😉 relations 😉 )
Bumps [github/super-linter](https://github.com/github/super-linter) from v3.16.2 to v3.17.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="28cfebb84f"><code>28cfebb</code></a> Updating action.yml with new release version</li>
<li><a href="5d2ea81f00"><code>5d2ea81</code></a> Cpp (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1492">#1492</a>)</li>
<li><a href="1a00fc3790"><code>1a00fc3</code></a> adding fixes (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1516">#1516</a>)</li>
<li><a href="d7894a51ec"><code>d7894a5</code></a> Bump <code>@coffeelint/cli</code> from 4.1.4 to 4.1.5 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1514">#1514</a>)</li>
<li><a href="e0b8b12556"><code>e0b8b12</code></a> Bump ansible-lint from 5.0.7 to 5.0.8 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1515">#1515</a>)</li>
<li><a href="ddd818393f"><code>ddd8183</code></a> Updating action.yml with new release version (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1512">#1512</a>)</li>
<li><a href="72cbbfc4e5"><code>72cbbfc</code></a> Inspec additional Tests (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1497">#1497</a>)</li>
<li><a href="1482ca9ffc"><code>1482ca9</code></a> Bump stylelint from 13.13.0 to 13.13.1 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1506">#1506</a>)</li>
<li><a href="d838a98736"><code>d838a98</code></a> Bump accurics/terrascan from 1.4.0 to 1.5.1 (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1505">#1505</a>)</li>
<li><a href="2607e40749"><code>2607e40</code></a> Bump typing-extensions from 3.7.4.3 to 3.10.0.0 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1507">#1507</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/github/super-linter/compare/v3.16.2...28cfebb84fd6dd9e8773b5efe5ac0f8f3714f228">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [github/super-linter](https://github.com/github/super-linter) from v3.15.5 to v3.16.2.
<details>
<summary>Commits</summary>
<ul>
<li><a href="9af8775d57"><code>9af8775</code></a> Updating action.yml with new release version</li>
<li><a href="903d730a21"><code>903d730</code></a> Bump Actions-R-Us/actions-tagger from v2.0.1 to v2.0.2 (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1419">#1419</a>)</li>
<li><a href="58bdaecbcc"><code>58bdaec</code></a> update Terrascan to version 1.4.0 (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1422">#1422</a>)</li>
<li><a href="e63d4fddae"><code>e63d4fd</code></a> Bump typescript from 4.2.3 to 4.2.4 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1435">#1435</a>)</li>
<li><a href="cb5739adde"><code>cb5739a</code></a> Bump <code>@typescript-eslint/eslint-plugin</code> in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1449">#1449</a>)</li>
<li><a href="d1e7a0c06b"><code>d1e7a0c</code></a> Bump koalaman/shellcheck from v0.7.1 to v0.7.2 (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1462">#1462</a>)</li>
<li><a href="6470e178cd"><code>6470e17</code></a> Bump alpine/terragrunt from 0.14.7 to 0.15.0 (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1501">#1501</a>)</li>
<li><a href="acc6e9a583"><code>acc6e9a</code></a> Bump <code>@typescript-eslint/parser</code> from 4.19.0 to 4.22.0 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1450">#1450</a>)</li>
<li><a href="09c5be9abe"><code>09c5be9</code></a> Bump cljkondo/clj-kondo from 2021.03.22-alpine to 2021.04.23-alpine (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1474">#1474</a>)</li>
<li><a href="8e6a4e4a59"><code>8e6a4e4</code></a> Bump immer from 9.0.1 to 9.0.2 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1498">#1498</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/github/super-linter/compare/v3.15.5...9af8775d57172a12690483045b6b261d3520b7f1">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Adds an GitHub Action to check all local (non http://, https:// ) links in all Markdown files of the repository for liveness.
Fails if a file is not found.
# Goal
This should help maintaining the quality of the documentation.
# Impact
Takes ~24 seconds currently and found 3 dead links (pull requests already created).
# Dependent PRs
* #2064
* #2065
* #2066
# Info
See [markdown-link-check](https://github.com/marketplace/actions/markdown-link-check).
# Example output
```
FILE: ./docs/profiling.md
1 links checked.
FILE: ./docs/plugins_guidelines.md
37 links checked.
FILE: ./docs/linters.md
[✖] ../.github/linters/markdown-lint.yml → Status: 400 [Error: ENOENT: no such file or directory, access '/github/workspace/.github/linters/markdown-lint.yml'] {
errno: -2,
code: 'ENOENT',
syscall: 'access',
path: '/github/workspace/.github/linters/markdown-lint.yml'
}
```
# Improvements
* Can also be used to check external links, but fails because of:
* Too many requests (429) responses:
```
FILE: ./CHANGELOG.md
[✖] https://github.com/bevyengine/bevy/pull/1762 → Status: 429
```
* crates.io links respond 404
```
FILE: ./README.md
[✖] https://crates.io/crates/bevy → Status: 404
```
* makes CI fails on cargo doc warnings
* adds this check in bors
doc warnings are listed here: https://doc.rust-lang.org/rustdoc/lints.html
Currently the warnings emitted are:
* broken_intra_doc_links
* private_intra_doc_links
* invalid_codeblock_attributes
Closes https://github.com/bevyengine/bevy/issues/1579
This is my first contribution to this repository, feel free to correct anything that I'm missing and I'll address feedback as soon as possible!
From suggestion from Godot workflows: https://github.com/bevyengine/bevy/issues/1730#issuecomment-810321110
* Add a feature `bevy_debug` that will make Bevy read a debug config file to setup some debug systems
* Currently, only one that will exit after x frames
* Could add option to dump screen to image file once that's possible
* Add a job in CI workflow that will run a few examples using [`swiftshader`](https://github.com/google/swiftshader)
* This job takes around 13 minutes, so doesn't add to global CI duration
|example|number of frames|duration|
|-|-|-|
|`alien_cake_addict`|300|1:50|
|`breakout`|1800|0:44|
|`contributors`|1800|0:43|
|`load_gltf`|300|2:37|
|`scene`|1800|0:44|
Bumps [github/super-linter](https://github.com/github/super-linter) from v3.15.2 to v3.15.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/github/super-linter/releases">github/super-linter's releases</a>.</em></p>
<blockquote>
<h2>Release v3.15.5</h2>
<p>No release notes provided.</p>
<h2>Release v3.15.3</h2>
<h2>Changelog</h2>
<ul>
<li>Updated Deployment scripts</li>
<li>Updated Security Scripts</li>
<li>Support <code>.env.*</code> for various <code>.env</code> files</li>
</ul>
<h2>Bugs</h2>
<ul>
<li>Various security bumps</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="286abe2b03"><code>286abe2</code></a> Updating action.yml with new release version</li>
<li><a href="1d0751b749"><code>1d0751b</code></a> cleanup (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1378">#1378</a>)</li>
<li><a href="be0e288e1e"><code>be0e288</code></a> Bump cljkondo/clj-kondo from 2021.03.03-alpine to 2021.03.22-alpine (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1379">#1379</a>)</li>
<li><a href="8ff48a47d3"><code>8ff48a4</code></a> Bump isort from 5.7.0 to 5.8.0 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1382">#1382</a>)</li>
<li><a href="55cc19dbbc"><code>55cc19d</code></a> Bump immer from 8.0.3 to 9.0.1 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1381">#1381</a>)</li>
<li><a href="a68b522bc1"><code>a68b522</code></a> Bump sql-lint from 0.0.15 to 0.0.16 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1380">#1380</a>)</li>
<li><a href="701fd3b339"><code>701fd3b</code></a> Adding a11y eslint to npm dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1375">#1375</a>)</li>
<li><a href="4016de6222"><code>4016de6</code></a> Bump immer from 8.0.2 to 8.0.3 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1376">#1376</a>)</li>
<li><a href="43e054faf7"><code>43e054f</code></a> Bump immer from 8.0.1 to 8.0.2 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1374">#1374</a>)</li>
<li><a href="46d76783c7"><code>46d7678</code></a> Bump eslint-plugin-jest from 24.3.1 to 24.3.2 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1372">#1372</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/github/super-linter/compare/v3.15.2...286abe2b0349da9c074c0fed8e8ec0a86cd13279">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [github/super-linter](https://github.com/github/super-linter) from v3.15.1 to v3.15.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/github/super-linter/releases">github/super-linter's releases</a>.</em></p>
<blockquote>
<h2>Release v3.15.2</h2>
<h2>Changelog</h2>
<ul>
<li>Fix issue with grabbing history</li>
</ul>
<h2>Bugs</h2>
<p>we found a bad one...</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="16f5c4067d"><code>16f5c40</code></a> Updating action.yml with new release version</li>
<li><a href="68c8bf9f11"><code>68c8bf9</code></a> fix, checkout DEFAULT_BRANCH for diff base (<a href="https://github.com/github/super-linter/issues/1308">#1308</a>)</li>
<li><a href="11720172cb"><code>1172017</code></a> Fix get file diff on pr event (<a href="https://github.com/github/super-linter/issues/1305">#1305</a>)</li>
<li><a href="5294082063"><code>5294082</code></a> Bump golangci/golangci-lint from v1.37.1 to v1.38.0 (<a href="https://github.com/github/super-linter/issues/1301">#1301</a>)</li>
<li><a href="4f51c7dd03"><code>4f51c7d</code></a> Bump cljkondo/clj-kondo from 2021.02.28-alpine to 2021.03.03-alpine (<a href="https://github.com/github/super-linter/issues/1300">#1300</a>)</li>
<li><a href="505a708ba3"><code>505a708</code></a> Bump snakemake from 6.0.0 to 6.0.2 in /dependencies (<a href="https://github.com/github/super-linter/issues/1302">#1302</a>)</li>
<li><a href="bbb3b6c4cd"><code>bbb3b6c</code></a> Bump markdownlint-cli from 0.26.0 to 0.27.1 in /dependencies (<a href="https://github.com/github/super-linter/issues/1293">#1293</a>)</li>
<li><a href="779c472cfa"><code>779c472</code></a> Bump @typescript-eslint/parser from 4.15.2 to 4.16.1 in /dependencies (<a href="https://github.com/github/super-linter/issues/1290">#1290</a>)</li>
<li><a href="a648a4e067"><code>a648a4e</code></a> Bump @typescript-eslint/eslint-plugin in /dependencies (<a href="https://github.com/github/super-linter/issues/1291">#1291</a>)</li>
<li><a href="46df94844c"><code>46df948</code></a> Add debug info for multi status api calls (<a href="https://github.com/github/super-linter/issues/1287">#1287</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/github/super-linter/compare/v3.15.1...16f5c4067d70b7e90445a32524a96d02f973ca4b">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Silence those [annoying rustfmt config warnings](https://github.com/bevyengine/bevy/pull/1499/checks?check_run_id=1950282111#step:5:66) that happen because we have unstable rustfmt options in `rustfmt.toml`, but we run it in stable on CI. Thanks to @Ratysz for [calling it out](https://github.com/bevyengine/bevy/pull/1499#issuecomment-783190586). 😄
The final approach we settled on was to comment out the unstable options in `rustfmt.toml`. Those who are using `nightly` may uncomment the unstable options locally if they wish. Once the options stabilize, we can uncomment them again.
We also decided that instead of fixing the alias, we would remove the alias entirely so that we do not introduce a custom `.cargo/config.toml` that would conflict with users' custom version of the same file. This means that instead of using a `cargo ci` alias you should use `cargo run -p ci` or `cargo run --package ci` instead.
<details><summary>Original Approach (abandoned)</summary>
<p>
_We decided **not** to go this way..._
In my quest to find a portable way to filter out the warnings I switched the library used to execute commands from `xshell` to `duct` (as advised by the `xshell` project itself when you want to do less simple things). This still uses the "xtask" pattern of using a cargo command alias and a rust project for what would have usually been done with a bash script (on posix), just a different helper library is being used internally.
NOTE 1: Also, thanks to some sleuthing by @DJMcNab we were able to fix the broken cargo alias. The issue turned out to be that `.cargo/config.toml` was being ignored because of `.gitignore`.
NOTE 2: This is a [known breaking change](https://github.com/bevyengine/bevy/pull/1309#discussion_r564023753) for anyone working on bevy who has their own local `.cargo/config.toml`.
</p>
</details>
Bumps [github/super-linter](https://github.com/github/super-linter) from v3 to v3.15.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/github/super-linter/releases">github/super-linter's releases</a>.</em></p>
<blockquote>
<h2>Release v3.15.1</h2>
<h2>Changelog</h2>
<ul>
<li>Fixed Deployment process</li>
<li>Updated Branch protections</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a4de8540a1"><code>a4de854</code></a> Updating action.yml with new release version</li>
<li><a href="0031981b46"><code>0031981</code></a> fixed deploy (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1269">#1269</a>)</li>
<li><a href="7ea2fd764e"><code>7ea2fd7</code></a> Updating action.yml with new release version (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1268">#1268</a>)</li>
<li><a href="0b756c57e8"><code>0b756c5</code></a> only error on rstats lintr errors, not all lints (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1233">#1233</a>)</li>
<li><a href="a91f07d277"><code>a91f07d</code></a> Bump bobheadxi/deployments from v0.4.3 to v0.5.1 (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1266">#1266</a>)</li>
<li><a href="f47b363f71"><code>f47b363</code></a> Add rustfmt for Rust (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1250">#1250</a>)</li>
<li><a href="141a09cdbf"><code>141a09c</code></a> Bump yoheimuta/protolint from v0.28.2 to v0.29.0 (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1261">#1261</a>)</li>
<li><a href="71d36c41c2"><code>71d36c4</code></a> Add logic to check command output before maping the files (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1259">#1259</a>)</li>
<li><a href="7a9c11b753"><code>7a9c11b</code></a> Bump eslint-config-prettier from 8.0.0 to 8.1.0 in /dependencies (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1262">#1262</a>)</li>
<li><a href="acf858ae79"><code>acf858a</code></a> Adding release process (<a href="https://github-redirect.dependabot.com/github/super-linter/issues/1260">#1260</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/github/super-linter/compare/v3...a4de8540a1162d917a5c0918467143c98c2176b2">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
This PR is easiest to review commit by commit.
Followup on https://github.com/bevyengine/bevy/pull/1309#issuecomment-767310084
- [x] Switch from a bash script to an xtask rust workspace member.
- Results in ~30s longer CI due to compilation of the xtask itself
- Enables Bevy contributors on any platform to run `cargo ci` to run linting -- if the default available Rust is the same version as on CI, then the command should give an identical result.
- [x] Use the xtask from official CI so there's only one place to update.
- [x] Bonus: Run clippy on the _entire_ workspace (existing CI setup was missing the `--workspace` flag
- [x] Clean up newly-exposed clippy errors
~#1388 builds on this to clean up newly discovered clippy errors -- I thought it might be nicer as a separate PR.~ Nope, merged it into this one so CI would pass.
Co-authored-by: Carter Anderson <mcanders1@gmail.com>
I have run the VSCode Extension [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) on all Markdown Files in the Repo.
The provided Rules are documented here: https://github.com/DavidAnson/markdownlint/blob/v0.23.1/doc/Rules.md
Rules I didn't follow/fix:
* MD024/no-duplicate-heading
* Changelog: Here Heading will always repeat.
* Examples Readme: Platform-specific documentation should be symmetrical.
* MD025/single-title
* MD026/no-trailing-punctuation
* Caused by the ! in "Hello, World!".
* MD033/no-inline-html
* The plugins_guidlines file does need HTML, so the shown badges aren't downscaled too much.
* ~~MD036/no-emphasis-as-heading:~~
* ~~This Warning only Appears in the Github Issue Templates and can be ignored.~~
* ~~MD041/first-line-heading~~
* ~~Only appears in the Readme for the AlienCake example Assets, which is unimportant.~~
---
I also sorted the Examples in the Readme and Cargo.toml in this order/Priority:
* Topic/Folder
* Introductionary Examples
* Alphabetical Order
The explanation for each case, where it isn't Alphabetical :
* Diagnostics
* log_diagnostics: The usage of inbuild Diagnostics is more important than creating your own.
* ECS (Entity Component System)
* ecs_guide: The guide should be read, before diving into other Features.
* Reflection
* reflection: Basic Explanation should be read, before more advanced Topics.
* WASM Examples
* hello_wasm: It's "Hello, World!".
* Simplify syntax & lint. Combine apt installations into a single step. Future-proof OS selections.
* Remove caching
* Run clippy within the linux stable build. Parallelize all the builds. Cargo check is unneeded.
* build and run tests on windows and macos
* Add force touches, fix ui focus system and touch screen system
* Fix examples README. Update rodio with Android support. Add Android build CI
* Alter android metadata in root Cargo.toml