The previous slide-size.test.ts was refactored and a slide class was
implemented for convenience.
The test now checks the playground size (if available on that slide) by
checking if scrollbars are visible.
To make this test more efficient, the mocha before() hook is used to
load the slide once and check with all relevant tests before loading the
next slide.
When teaching I generally remove these. I emphasize that a reference can
generally be used as if you have the referenced value directly, since in
most cases you don't have to explicitly dereference a reference. On the
next slide we show mutable references, and we need to use a deref when
writing through a mutable reference, so I think that's the better place
to point out the deref operator.
- write() attempts to write the entire buffer does not guarantee this.
Not writing all bytes is not considered an error.
It just returns the number of bytes.
- write_all() ensures that everything is written or throws an error
Currently, to run the tests that are located in the `tests` directory
(the js tests), one has to navigate to the directory and run `npm test`
or `npm start`. We now have a way of automating such task execution
using the binary in the `xtask` directory. This pr makes use of this by
introducing a new command `cargo xtask web-tests` that can be run from
anywhere in the repo to run the tests in the `tests` directory.
---------
Co-authored-by: Eric Githinji <egithinji@google.com>
`println!` adds references (&) to its arguments, to avoid moving them.
This is undesirable here, because it is extremely error-prone to take
references to `static mut`s. We could `println!("{}", {counter})`, but
this is somewhat exotic syntax and just sticking with `dbg!` also avoids
this problem as it does not add references.
This fixes#2708 by creating a CARGO_WORKSPACE_DIR env variable to act
as an anchor path, allowing the installation of mdbook-exerciser and
mdbook-course to succeed from any directory within the repository. Based
on the approach mentioned here:
https://github.com/rust-lang/cargo/issues/3946#issuecomment-973132993
---------
Co-authored-by: Eric Githinji <egithinji@google.com>
2025-05-06 09:55:55 +03:00
Curly-Howard-Chungus Correspondence | Lamport-Cabot-Codd-Backus-Naur Form
I tried to translate the table of contents into Vietnamese.
- Some keywords are hard to translate, or to clarify my translation, I
used parentheses "( )".
- I don't know if I should keep some keywords in English or not. In this
pr I chose to translate them into Vietnamese and keep their original
English counterparts in parentheses.
- I could mention some of them like: build, type inference, trait, move
semantics, iterator, panic, unsafe...
- Some parts overlap with this pr:
https://github.com/google/comprehensive-rust/pull/1947
---------
Co-authored-by: Martin Geisler <martin@geisler.net>
node version 18 is EOL https://nodejs.org/en/about/previous-releases
node version 22 is the new LTS release
The caching is done to make the tests less brittle in addition to only
setup for the english translation
There have been failed tests because npm install encountered network
issues while downloading packages.
Bumps the minor group in /src/exercises/bare-metal/rtc with 1 update:
[arm-gic](https://github.com/google/arm-gic).
Updates `arm-gic` from 0.2.2 to 0.4.0
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andrew Walbran <qwandor@google.com>
Bumps the patch group in /src/bare-metal/aps/examples with 1 update:
[cc](https://github.com/rust-lang/cc-rs).
Updates `cc` from 1.2.17 to 1.2.20
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the patch group in /src/exercises/bare-metal/rtc with 2 updates:
[chrono](https://github.com/chronotope/chrono) and
[cc](https://github.com/rust-lang/cc-rs).
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Using the `vec!` macro to create an empty `Vec` is a bit weird imo,
generally I only see the macro used when you actually want to initialize
the `Vec` with some values (like is done in the examples for this
exercise). Students are more likely to use `Vec::new`, and I think
that's the more idiomatic approach, so I think using `Vec::new` here
would be better.
At this point I don't think we need the type annotation, and I think the
example is a bit clearer without them, so I usually delete these as I'm
explaining in class.
Bumps the cargo group with 1 update:
[tokio](https://github.com/tokio-rs/tokio).
Updates `tokio` from 1.44.1 to 1.44.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.44.2</h2>
<p>This release fixes a soundness issue in the broadcast channel. The
channel
accepts values that are <code>Send</code> but <code>!Sync</code>.
Previously, the channel called
<code>clone()</code> on these values without synchronizing. This release
fixes the channel
by synchronizing calls to <code>.clone()</code> (Thanks Austin Bonander
for finding and
reporting the issue).</p>
<h3>Fixed</h3>
<ul>
<li>sync: synchronize <code>clone()</code> call in broadcast channel (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7232">#7232</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/7232">#7232</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7232">tokio-rs/tokio#7232</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec4b1d7215"><code>ec4b1d7</code></a>
chore: forward port 1.43.x</li>
<li><a
href="e3c3a56718"><code>e3c3a56</code></a>
Merge branch 'tokio-1.43.x' into forward-port-1.43.x</li>
<li><a
href="a7b658c35b"><code>a7b658c</code></a>
chore: prepare Tokio v1.43.1 release</li>
<li><a
href="c1c8d1033d"><code>c1c8d10</code></a>
Merge remote-tracking branch 'origin/tokio-1.38.x' into
forward-port-1.38.x</li>
<li><a
href="aa303bc205"><code>aa303bc</code></a>
chore: prepare Tokio v1.38.2 release</li>
<li><a
href="7b6ccb515f"><code>7b6ccb5</code></a>
chore: backport CI fixes</li>
<li><a
href="4b174ce2c9"><code>4b174ce</code></a>
sync: fix cloning value when receiving from broadcast channel</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.44.1...tokio-1.44.2">compare
view</a></li>
</ul>
</details>
<br />
[](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/google/comprehensive-rust/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Some minor improvements to an already-merged PR (#2688) on the task
automation via xtask. Main ones being:
- Adding more explanatory comments about what the xtask package is and
what it does
- Using Clap for CLI arg parsing
- Using Anyhow for error handling
---------
Co-authored-by: Eric Githinji <egithinji@google.com>
Bumps the minor group in /src/exercises/bare-metal/rtc with 2 updates:
[smccc](https://github.com/google/smccc) and
[spin](https://github.com/mvdnes/spin-rs).
Updates `smccc` from 0.1.1 to 0.2.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/google/smccc/blob/main/CHANGELOG.md">smccc's
changelog</a>.</em></p>
<blockquote>
<h2>0.2.0</h2>
<h3>Breaking changes</h3>
<ul>
<li>Added <code>psci::Version</code> type, which is used for the return
value of <code>psci::version</code>.</li>
</ul>
<h3>New features</h3>
<ul>
<li>Error types now implement <code>core::error::Error</code>.</li>
<li>Added 32-bit versions of 64-bit PSCI calls.</li>
<li>Added support for aarch32.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6f90908b69"><code>6f90908</code></a>
Prepare for 0.2.0 release.</li>
<li><a
href="de93b5b6ce"><code>de93b5b</code></a>
Merge pull request <a
href="https://redirect.github.com/google/smccc/issues/10">#10</a> from
google/arm32</li>
<li><a
href="dc0d606d67"><code>dc0d606</code></a>
Fix typo and mention unit.</li>
<li><a
href="d12f420c1c"><code>d12f420</code></a>
Mention SMCCC 1.4 rather than 1.3 in Rustdoc comments.</li>
<li><a
href="2262f6f061"><code>2262f6f</code></a>
Add support for aarch32.</li>
<li><a
href="3aa617b774"><code>3aa617b</code></a>
Added 32-bit versions of 64-bit PSCI calls.</li>
<li><a
href="9bf9d346bd"><code>9bf9d34</code></a>
Add permisisons to fix clippy lint check in CI.</li>
<li><a
href="d973061b95"><code>d973061</code></a>
Merge pull request <a
href="https://redirect.github.com/google/smccc/issues/20">#20</a> from
google/psci</li>
<li><a
href="ecb5769aeb"><code>ecb5769</code></a>
Add type for PSCI version.</li>
<li><a
href="be2efbff29"><code>be2efbf</code></a>
Bump thiserror from 2.0.11 to 2.0.12 (<a
href="https://redirect.github.com/google/smccc/issues/19">#19</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/google/smccc/compare/0.1.1...0.2.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `spin` from 0.9.8 to 0.10.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zesterer/spin-rs/blob/master/CHANGELOG.md">spin's
changelog</a>.</em></p>
<blockquote>
<h1>[0.10.0] - 2025-03-26</h1>
<h3>Added</h3>
<ul>
<li><code>Mutex::try_lock_weak</code></li>
<li><code>RwLock::try_write_weak</code></li>
<li><code>RwLock::try_upgrade_weak</code></li>
</ul>
<h3>Changed</h3>
<ul>
<li>Updated MSRV to 1.60</li>
<li>Use <code>dep:</code> syntax in Cargo.toml</li>
<li><code>portable_atomic</code> feature has been renamed to
<code>portable-atomic</code>, for consistency.</li>
</ul>
<h3>Fixed</h3>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/mvdnes/spin-rs/commits">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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the minor group in /src/bare-metal/aps/examples with 3 updates:
[bitflags](https://github.com/bitflags/bitflags),
[smccc](https://github.com/google/smccc) and
[spin](https://github.com/mvdnes/spin-rs).
Updates `bitflags` from 2.8.0 to 2.9.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/releases">bitflags's
releases</a>.</em></p>
<blockquote>
<h2>2.9.0</h2>
<h2>What's Changed</h2>
<ul>
<li><code>Flags</code> trait: add <code>clear(&mut self)</code>
method by <a
href="https://github.com/wysiwys"><code>@wysiwys</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/437">bitflags/bitflags#437</a></li>
<li>Fix up UI tests by <a
href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/438">bitflags/bitflags#438</a></li>
<li>Prepare for 2.9.0 release by <a
href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/439">bitflags/bitflags#439</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0">https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md">bitflags's
changelog</a>.</em></p>
<blockquote>
<h1>2.9.0</h1>
<h2>What's Changed</h2>
<ul>
<li><code>Flags</code> trait: add <code>clear(&mut self)</code>
method by <a
href="https://github.com/wysiwys"><code>@wysiwys</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/437">bitflags/bitflags#437</a></li>
<li>Fix up UI tests by <a
href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/438">bitflags/bitflags#438</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0">https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e197bf5039"><code>e197bf5</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/439">#439</a>
from KodrAus/cargo/2.9.0</li>
<li><a
href="8df6e80770"><code>8df6e80</code></a>
prepare for 2.9.0 release</li>
<li><a
href="e92f0ae4b6"><code>e92f0ae</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/438">#438</a>
from KodrAus/fix/ui-tests</li>
<li><a
href="226ff75b99"><code>226ff75</code></a>
fix up UI tests</li>
<li><a
href="2170a26558"><code>2170a26</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/437">#437</a>
from wysiwys/wysiwys/add-clear-method</li>
<li><a
href="76dde58498"><code>76dde58</code></a>
add tests for <code>clear()</code> trait method</li>
<li><a
href="ce5d4207bb"><code>ce5d420</code></a>
add <code>clear()</code> method to trait</li>
<li><a
href="9e45d36e0a"><code>9e45d36</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/434">#434</a>
from bitflags/KodrAus-patch-1</li>
<li><a
href="617645aa45"><code>617645a</code></a>
pin checkout action for miri job</li>
<li><a
href="2c836f230d"><code>2c836f2</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/433">#433</a>
from bitflags/ci/remove-scorecard</li>
<li>Additional commits viewable in <a
href="https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `smccc` from 0.1.1 to 0.2.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/google/smccc/blob/main/CHANGELOG.md">smccc's
changelog</a>.</em></p>
<blockquote>
<h2>0.2.0</h2>
<h3>Breaking changes</h3>
<ul>
<li>Added <code>psci::Version</code> type, which is used for the return
value of <code>psci::version</code>.</li>
</ul>
<h3>New features</h3>
<ul>
<li>Error types now implement <code>core::error::Error</code>.</li>
<li>Added 32-bit versions of 64-bit PSCI calls.</li>
<li>Added support for aarch32.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6f90908b69"><code>6f90908</code></a>
Prepare for 0.2.0 release.</li>
<li><a
href="de93b5b6ce"><code>de93b5b</code></a>
Merge pull request <a
href="https://redirect.github.com/google/smccc/issues/10">#10</a> from
google/arm32</li>
<li><a
href="dc0d606d67"><code>dc0d606</code></a>
Fix typo and mention unit.</li>
<li><a
href="d12f420c1c"><code>d12f420</code></a>
Mention SMCCC 1.4 rather than 1.3 in Rustdoc comments.</li>
<li><a
href="2262f6f061"><code>2262f6f</code></a>
Add support for aarch32.</li>
<li><a
href="3aa617b774"><code>3aa617b</code></a>
Added 32-bit versions of 64-bit PSCI calls.</li>
<li><a
href="9bf9d346bd"><code>9bf9d34</code></a>
Add permisisons to fix clippy lint check in CI.</li>
<li><a
href="d973061b95"><code>d973061</code></a>
Merge pull request <a
href="https://redirect.github.com/google/smccc/issues/20">#20</a> from
google/psci</li>
<li><a
href="ecb5769aeb"><code>ecb5769</code></a>
Add type for PSCI version.</li>
<li><a
href="be2efbff29"><code>be2efbf</code></a>
Bump thiserror from 2.0.11 to 2.0.12 (<a
href="https://redirect.github.com/google/smccc/issues/19">#19</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/google/smccc/compare/0.1.1...0.2.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `spin` from 0.9.8 to 0.10.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zesterer/spin-rs/blob/master/CHANGELOG.md">spin's
changelog</a>.</em></p>
<blockquote>
<h1>[0.10.0] - 2025-03-26</h1>
<h3>Added</h3>
<ul>
<li><code>Mutex::try_lock_weak</code></li>
<li><code>RwLock::try_write_weak</code></li>
<li><code>RwLock::try_upgrade_weak</code></li>
</ul>
<h3>Changed</h3>
<ul>
<li>Updated MSRV to 1.60</li>
<li>Use <code>dep:</code> syntax in Cargo.toml</li>
<li><code>portable_atomic</code> feature has been renamed to
<code>portable-atomic</code>, for consistency.</li>
</ul>
<h3>Fixed</h3>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/mvdnes/spin-rs/commits">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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.29.10
to 1.31.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.31.1</h2>
<h2>[1.31.1] - 2025-03-31</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Also correct <code>typ</code> to
<code>type</code></li>
</ul>
<h2>v1.31.0</h2>
<h2>[1.31.0] - 2025-03-28</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1266">March
2025</a> changes</li>
</ul>
<h2>v1.30.3</h2>
<h2>[1.30.3] - 2025-03-24</h2>
<h3>Features</h3>
<ul>
<li>Support detecting <code>go.work</code> and <code>go.work.sum</code>
files</li>
</ul>
<h2>v1.30.2</h2>
<h2>[1.30.2] - 2025-03-10</h2>
<h3>Features</h3>
<ul>
<li>Add <code>--highlight-words</code> and
<code>--highlight-identifiers</code> for easier debugging of config</li>
</ul>
<h2>v1.30.1</h2>
<h2>[1.30.1] - 2025-03-04</h2>
<h3>Features</h3>
<ul>
<li><em>(action)</em> Create <code>v1</code> tag</li>
</ul>
<h2>v1.30.0</h2>
<h2>[1.30.0] - 2025-03-01</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1221">February
2025</a> changes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h2>[1.31.1] - 2025-03-31</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Also correct <code>typ</code> to
<code>type</code></li>
</ul>
<h2>[1.31.0] - 2025-03-28</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1266">March
2025</a> changes</li>
</ul>
<h2>[1.30.3] - 2025-03-24</h2>
<h3>Features</h3>
<ul>
<li>Support detecting <code>go.work</code> and <code>go.work.sum</code>
files</li>
</ul>
<h2>[1.30.2] - 2025-03-10</h2>
<h3>Features</h3>
<ul>
<li>Add <code>--highlight-words</code> and
<code>--highlight-identifiers</code> for easier debugging of config</li>
</ul>
<h2>[1.30.1] - 2025-03-04</h2>
<h3>Features</h3>
<ul>
<li><em>(action)</em> Create <code>v1</code> tag</li>
</ul>
<h2>[1.30.0] - 2025-03-01</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1221">February
2025</a> changes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b1a1ef3893"><code>b1a1ef3</code></a>
chore: Release</li>
<li><a
href="9c8a2c384f"><code>9c8a2c3</code></a>
docs: Update changelog</li>
<li><a
href="12195d75fe"><code>12195d7</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1267">#1267</a>
from epage/type</li>
<li><a
href="d4dbe5f77b"><code>d4dbe5f</code></a>
fix(dict): Also correct typ to type</li>
<li><a
href="718c4ff697"><code>718c4ff</code></a>
chore: Release</li>
<li><a
href="bfbf137ed6"><code>bfbf137</code></a>
chore: Release</li>
<li><a
href="d47e90e4ff"><code>d47e90e</code></a>
docs: Update changelog</li>
<li><a
href="0694c2a982"><code>0694c2a</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1266">#1266</a>
from epage/march</li>
<li><a
href="f715ca8b08"><code>f715ca8</code></a>
feat(dict): March 2025 updates</li>
<li><a
href="d08e4083f1"><code>d08e408</code></a>
chore: Release</li>
<li>Additional commits viewable in <a
href="https://github.com/crate-ci/typos/compare/v1.29.10...v1.31.1">compare
view</a></li>
</ul>
</details>
<br />
[](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the npm_and_yarn group with 1 update in the /tests directory:
[tar-fs](https://github.com/mafintosh/tar-fs).
Updates `tar-fs` from 3.0.6 to 3.0.8
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e4a7a401e8"><code>e4a7a40</code></a>
3.0.8</li>
<li><a
href="504ca0fc57"><code>504ca0f</code></a>
upgrade bare packages</li>
<li><a
href="1e4cc042b7"><code>1e4cc04</code></a>
3.0.7</li>
<li><a
href="a1dd7e7c7f"><code>a1dd7e7</code></a>
refactor and throw on bad symlink</li>
<li><a
href="7ce355d649"><code>7ce355d</code></a>
Create SECURITY.md</li>
<li>See full diff in <a
href="https://github.com/mafintosh/tar-fs/compare/v3.0.6...v3.0.8">compare
view</a></li>
</ul>
</details>
<br />
[](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/google/comprehensive-rust/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Current tests still pass if `len` is implemented to calculate the height
of the tree (i.e. max(left.len(), right.len()) + 1 for each node). It
seems this is quite a common misunderstanding when doing this course.
With the new assert height implementation will fail, which hints towards
implementing `len` as a total number of nodes.
This enables a test for the width and height of slides (excluding some
special cases completely).
The mechanism has an exemption mechanism to temporarily exempt slides
from the rules.
Even exempted slides are checked for the rule violation and once the
slides are compliant they must be removed from the exemption list to
avoid future regression (the check fails in the CI if compliant slides
are exempted!)
This also provides a good opportunity to always have an up-to-date list
of overlong slides in
[slide-exemptions.list.ts](tests/src/slides/slide-exemptions.list.ts)
that can be worked on.
The slide list is always autogenerated in the CI environment. If you want to
enable this for your local dev environment it has to be created manually.
This avoids a time consuming local test if it is not necessary.
On the CLI it can be locally used with `npm run test --
--spec=src/slide-size.test.ts` (after creating the list with
`./src/slides/create-slide.list.sh ../book/html/`).
The CI environment specifies the env var `TEST_BOOK_DIR` that is used to
specifiy the html directory so it can create the list of slides
on-the-fly, check against hardcoded exemptions and evaluate.
This is a new solution for #1464 within the new test framework. This is
related to #2234 and makes the mdbook-slide-evaluator from #2258
obsolete and should be removed as this is a not so powerful nor flexible
framework.
### Background
Comprehensive Rust requires a number of tools to be installed (e.g.
mdbook and mdbook-course). As mentioned in #2509 (and discussed in
#2469) it would be nice to have a cross platform command for installing
these dependencies. Currently these are installed using a shell script
(`install-mdbook.sh`) but this isn't truly cross platform e.g. for
Windows users.
### Xtask
[xtask](https://github.com/matklad/cargo-xtask) outlines an approach for
automating tasks in a Rust project. It involves using cargo's aliasing
feature to allow us to run commands like `cargo xtask <some task>` to
perform adhoc tasks via a Rust binary that we might otherwise need a
shell script for.
In this PR we add support for a `cargo xtask install-tools` command that
will replace the `install-mdbook.sh` script and install the dependent
tools. We can potentially extend it to support for other tasks e.g.
`cargo xtask fmt`.
---------
Co-authored-by: Eric Githinji <egithinji@google.com>
Bumps the cargo group with 1 update:
[ring](https://github.com/briansmith/ring).
Updates `ring` from 0.17.8 to 0.17.13
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Part of #2478 to clean up code blocks when all that is needed is a
trivial debug print statement. The deep dive sessions didn't have that
many occurrences of trivial println! statements.
I believe this can close#2478.
Co-authored-by: Eric Githinji <egithinji@google.com>
Bumps the minor group with 2 updates in the
/src/exercises/bare-metal/rtc directory:
[arm-gic](https://github.com/google/arm-gic) and
[bitflags](https://github.com/bitflags/bitflags).
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andrew Walbran <qwandor@google.com>