v6.3.0
rust-lang/rustlingsv6.3.0Aug 29, 2024by mo8it
AI Summary
Rustlings 6.3.0 introduces exercise lints to enforce best practices and improve the learning experience, along with UI improvements for the exercise list.
Key Highlights
- Added exercise lints (forbid unsafe_code, unstable_features, todo, empty_loop, deny infinite_loop, mem_forget)
- Show links to exercise files in the list
- Enable mouse scrolling in the list
- Reduced compilation time when installing Rustlings
- dev check now uses strict Clippy (warnings to errors)
New Features
- Exercise lints: forbid(unsafe_code), forbid(unstable_features), forbid(todo), forbid(empty_loop), deny(infinite_loop), deny(mem_forget)
- Show a link to every exercise file in the list
- Add scroll padding in the list
- Break the help footer into two lines when terminal width is small
- Enable scrolling with the mouse in the list
- dev check: Show the progress of checks
- dev check: Check that exercise names are lower than 32 characters
- dev check: Check if exercise contains no tests and isn't marked with test = false
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.