v6.3.0

dyad-sh/dyadv6.3.0Aug 29, 2024by mo8it

AI Summary

Introduces strict lints to prevent unsafe code and unstable features, enhances the exercise list interface with mouse support and file links, and improves the `dev check` command with strict formatting and Clippy checks.

Key Highlights

  • Added strict lints (forbid unsafe_code, todo, etc.) to enforce best practices
  • Enhanced exercise list with mouse scrolling and links to exercise files
  • Improved `dev check` with strict Clippy and formatting checks
  • Reduced installation compilation time
  • Changed test output to pretty formatting instead of standard stdout

New Features

  • Added lints for unsafe_code, unstable_features, todo, empty_loop, infinite_loop, and mem_forget
  • Show a link to every exercise file in the list
  • Enable scrolling with the mouse in the list
  • Show progress of checks in `dev check`
  • Check that exercise names are lower than 32 characters
  • Check if exercise contains no tests and isn't marked with `test = false`
  • Pressing `c` in the list now quits after setting the selected exercise as the current one

Full Release Notes

### Added

- Add the following exercise lints:
  - `forbid(unsafe_code)`: You shouldn't write unsafe code in Rustlings.
  - `forbid(unstable_features)`: You don't need unstable features in Rustlings and shouldn't rely on them while learning Rust.
  - `forbid(todo)`: You forgot a `todo!()`.
  - `forbid(empty_loop)`: This can only happen by mistake in Rustlings.
  - `deny(infinite_loop)`: No infinite loops are needed in Rustlings.
  - `deny(mem_forget)`: You shouldn't leak memory while still learning Rust.
- Show a link to every exercise file in the list.
- Add scroll padding in the list.
- Break the help footer of the list into two lines when the terminal width isn't big enough.
- Enable scrolling with the mouse in the list.
- `dev check`: Show the progress of checks.
- `dev check`: Check that the length of all exercise names is lower than 32.
- `dev check`: Check if exercise contains no tests and isn't marked with `test = false`.

### Changed

- The compilation time when installing Rustlings is reduced.
- Pressing `c` in the list for "continue on" now quits the list after setting the selected exercise as the current one.
- Better highlighting of the solution file after an exercise is done.
- Don't show the output of successful tests anymore. Instead, show the pretty output for tests.
- Be explicit about `q` only quitting the list and not the whole program in the list.
- Be explicit about `r` only resetting one exercise (the selected one) in the list.
- Ignore the standard output of `git init`.
- `threads3`: Remove the queue length and improve tests.
- `errors4`: Use match instead of a comparison chain in the solution.
- `functions3`: Only take `u8` to avoid using a too high number of iterations by mistake.
- `dev check`: Always check with strict Clippy (warnings to errors) when checking the solutions.

### Fixed

- Fix the error on some systems about too many open files during the final check of all exercises.
- Fix the list when the terminal height is too low.
- Restore the terminal after an error in the list.