Skip to content

Releases: rust-lang/rustlings

Rustlings 6.4.0

11 Nov 14:58
Compare
Choose a tag to compare

Added

  • The list of exercises is now searchable by pressing s or / 🔍️ (thanks to @frroossst)
  • New option c in the prompt to manually check all exercises ✅ (thanks to @Nahor)
  • New command check-all to manually check all exercises ✅ (thanks to @Nahor)
  • Addictive animation for showing the progress of checking all exercises. A nice showcase of parallelism in Rust ✨
  • New option x in the prompt to reset the file of the current exercise 🔄
  • Allow dead_code for all exercises and solutions ⚰️ (thanks to @huss4in)
  • Pause input while running an exercise to avoid unexpected prompt interactions ⏸️
  • Limit the maximum number of exercises to 999. Any third-party exercises willing to reach that limit? 🔝

Changed

  • enums3: Remove redundant enum definition task (thanks to @senekor)
  • if2: Make the exercise less confusing by avoiding "fizz", "fuzz", "foo", "bar" and "baz" (thanks to @senekor)
  • hashmap3: Use the method Entry::or_default.
  • Update the state of all exercises when checking all of them (thanks to @Nahor)
  • The main prompt doesn't need a confirmation with ENTER on Unix-like systems anymore.
  • No more jumping back to a previous exercise when its file is changed. Use the list to jump between exercises.
  • Dump the solution file after an exercise is done even if the solution's directory doesn't exist.
  • Rework the footer in the list.
  • Optimize the file watcher.

Fixed

  • Fix bad contrast in the list on terminals with a light theme.

out

Rustlings 6.3.0

29 Aug 15:24
Compare
Choose a tag to compare

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.

Rustlings 6.2.0

09 Aug 09:59
Compare
Choose a tag to compare

Added

  • Show a message before checking and running an exercise. This gives the user instant feedback and avoids confusion if the checks take too long.
  • Show a helpful error message when trying to install Rustlings with a Rust version lower than the minimum one that Rustlings supports.
  • Add a README.md file to the solutions/ directory.
  • Allow initializing Rustlings in a Cargo workspace.
  • dev check: Check that all solutions are formatted with rustfmt.

Changed

  • Remove the state file and the solutions directory from the generated .gitignore file.
  • Run the final check of all exercises in parallel.
  • Small exercise improvements.

Rustlings 6.1.0

10 Jul 14:55
Compare
Choose a tag to compare

Rustlings 6.0.1

04 Jul 18:04
Compare
Choose a tag to compare

Small exercise improvements and fixes.
Most importantly, fixed that the exercise clippy1 was already solved 😅

Rustlings 6.0.0

03 Jul 13:43
Compare
Choose a tag to compare

A rewrite with a ton of new features and changes ✨

See the CHANGELOG for the most important changes.

This version is not compatible with older versions. You need to start over with the exercises if you want to try it out. You could try copying some of your old solutions.

Follow the instructions in the README for getting started 🚀

Rustlings 5.6.1

18 Sep 08:18
Compare
Choose a tag to compare

Patch release to mainly fix a regression introduced in cow1.

See the changelog for what changed.

To upgrade:

git fetch
git checkout tags/5.6.1

Rustlings 5.6.0

04 Sep 13:24
Compare
Choose a tag to compare

See the changelog for what changed.

To upgrade:

git fetch
git checkout tags/5.6.0

Rustlings 5.5.1

17 May 19:07
Compare
Choose a tag to compare

Patch release to fix rust-analyzer usage on Windows (we circumvented it but upstream fixed the root issue).

To upgrade:

git fetch
git checkout tags/5.5.1

Rustlings 5.5.0

17 May 14:31
Compare
Choose a tag to compare

See the changelog for what changed.

To upgrade:

git fetch
git checkout tags/5.5.0