You've already forked comprehensive-rust
mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-08-25 20:29:09 +02:00
Add note clarifying xtask not a package to be installed. (#2847)
As mentioned in #2803 , if someone has the `cargo-xtask` crate installed in their system, they will get a deprecation warning every time they run one of the `cargo xtask ...` commands. The only way to encounter the deprecation warning is by someone intentionally running `cargo install cargo-xtask`. To mitigate this we are adding a note in the README to explain the usage of xtask in the project and that it is not a package to be installed. A previous PR #2804 addressed this by adding aliases for each xtask subcommand and deprecating the use of `cargo xtask` as a prefix for these commands. While this fixes the warning, the disadvantage is that it doesn't allow one to run `cargo xtask` to view all available subcommands in the project with help instructions. Also the help message that appears if one does e.g. `cargo install-tools --help` still refers to `xtask` which might be confusing for the user. So overall it's a better user experience to keep the usage as `cargo xtask <subcommand>`. Also the use of `cargo xtask` is a pattern used in other large rust projects (see some examples [here](https://github.com/matklad/cargo-xtask?tab=readme-ov-file#external-examples)). Co-authored-by: Eric Githinji <egithinji@google.com>
This commit is contained in:
@@ -1,12 +1,5 @@
|
||||
[alias]
|
||||
# WARNING: Using the `xtask` alias is deprecated and will be unsupported in a
|
||||
# future version of Cargo. See https://github.com/rust-lang/cargo/issues/10049.
|
||||
xtask = "run --package xtask --"
|
||||
install-tools = "run --package xtask -- install-tools"
|
||||
web-tests = "run --package xtask -- web-tests"
|
||||
rust-tests = "run --package xtask -- rust-tests"
|
||||
serve = "run --package xtask -- serve"
|
||||
build-book = "run --package xtask -- build"
|
||||
|
||||
[env]
|
||||
# To provide an anchor to the root of the workspace when working with paths.
|
||||
|
35
README.md
35
README.md
@@ -71,35 +71,26 @@ Then install these tools with:
|
||||
cargo xtask install-tools
|
||||
```
|
||||
|
||||
> **Note** We use `xtask` for task automation within the project (e.g.
|
||||
> installing required tools). Xtask is not a package that you should install.
|
||||
> Visit https://github.com/matklad/cargo-xtask for more information.
|
||||
|
||||
## Commands
|
||||
|
||||
Here is a summary of the various commands you can run in the project.
|
||||
Here are some of the commonly used commands you can run in the project. Run
|
||||
`cargo xtask` to view all available commands.
|
||||
|
||||
| Command | Description |
|
||||
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `cargo install-tools` | Install all the tools the project depends on. |
|
||||
| `cargo serve` | Start a web server with the course. You'll find the content on http://localhost:3000. To serve any of the translated versions of the course, add the language flag (`--language` or `-l`) followed by xx, where xx is the ISO 639 language code (e.g. `cargo xtask serve -l da` for the Danish translation). |
|
||||
| `cargo rust-tests` | Test the included Rust snippets. |
|
||||
| `cargo web-tests` | Run the web driver tests in the tests directory. |
|
||||
| `cargo build-book` | Create a static version of the course in the `book/` directory. Note that you have to separately build and zip exercises and add them to book/html. To build any of the translated versions of the course, add the language flag (`--language` or `-l`) followed by xx, where xx is the ISO 639 language code (e.g. `cargo xtask build -l da` for the Danish translation). [TRANSLATIONS.md](TRANSLATIONS.md) contains further instructions. |
|
||||
| Command | Description |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `cargo xtask install-tools` | Install all the tools the project depends on. |
|
||||
| `cargo xtask serve` | Start a web server with the course. You'll find the content on http://localhost:3000. To serve any of the translated versions of the course, add the language flag (--language or -l) followed by xx, where xx is the ISO 639 language code (e.g. cargo xtask serve -l da for the Danish translation). |
|
||||
| `cargo xtask rust-tests` | Test the included Rust snippets. |
|
||||
| `cargo xtask web-tests` | Run the web driver tests in the tests directory. |
|
||||
| `cargo xtask build` | Create a static version of the course in the `book/` directory. Note that you have to separately build and zip exercises and add them to book/html. To build any of the translated versions of the course, add the language flag (--language or -l) followed by xx, where xx is the ISO 639 language code (e.g. cargo xtask build -l da for the Danish translation). [TRANSLATIONS.md](TRANSLATIONS.md) contains further instructions. |
|
||||
|
||||
> **Note** On Windows, you need to enable symlinks
|
||||
> (`git config --global core.symlinks true`) and Developer Mode.
|
||||
|
||||
> **Note** Previous versions this README recommended that you use
|
||||
> `cargo xtool <tool>`, i.e. `cargo xtool install-tools`. This causes issues
|
||||
> with pre-existing installations of `cargo-xtool` and is now deprecated.
|
||||
>
|
||||
> The new syntax is almost a 1:1 mapping, although `cargo xtool build` has
|
||||
> become `cargo build-book` to avoid conflicting with the built-in Cargo
|
||||
> subcommand.
|
||||
>
|
||||
> - `cargo xtool build` -> `cargo build-book`
|
||||
> - `cargo xtool install-tools` -> `cargo install-tools`
|
||||
> - `cargo xtool serve` -> `cargo serve`
|
||||
> - `cargo xtool run-tests` -> `cargo run-tests`
|
||||
> - `cargo xtool web-tests` -> `cargo web-tests`
|
||||
|
||||
## Contributing
|
||||
|
||||
We would like to receive your contributions. Please see
|
||||
|
Reference in New Issue
Block a user