mirror of
https://github.com/ratatui-org/ratatui
synced 2024-11-24 05:33:25 +00:00
docs(contributing): use cargo-xtask for intructions (#1509)
- Updates `CONTRIBUTING.md` about the usage of `xtask` - Removes `Makefile.toml`
This commit is contained in:
parent
ec30390446
commit
3ae6bf1d6f
2 changed files with 7 additions and 166 deletions
|
@ -31,7 +31,7 @@ guarantee that the behavior is unchanged.
|
||||||
|
|
||||||
### Code formatting
|
### Code formatting
|
||||||
|
|
||||||
Run `cargo make format` before committing to ensure that code is consistently formatted with
|
Run `cargo xtask format` before committing to ensure that code is consistently formatted with
|
||||||
rustfmt. Configuration is in [`rustfmt.toml`](./rustfmt.toml).
|
rustfmt. Configuration is in [`rustfmt.toml`](./rustfmt.toml).
|
||||||
|
|
||||||
### Search `tui-rs` for similar work
|
### Search `tui-rs` for similar work
|
||||||
|
@ -56,7 +56,7 @@ documented.
|
||||||
|
|
||||||
### Run CI tests before pushing a PR
|
### Run CI tests before pushing a PR
|
||||||
|
|
||||||
Running `cargo make ci` before pushing will perform the same checks that we do in the CI process.
|
Running `cargo xtask ci` before pushing will perform the same checks that we do in the CI process.
|
||||||
It's not mandatory to do this before pushing, however it may save you time to do so instead of
|
It's not mandatory to do this before pushing, however it may save you time to do so instead of
|
||||||
waiting for GitHub to run the checks.
|
waiting for GitHub to run the checks.
|
||||||
|
|
||||||
|
@ -71,17 +71,17 @@ in GitHub docs.
|
||||||
|
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
Clone the repo and build it using [cargo-make](https://sagiegurari.github.io/cargo-make/)
|
TL;DR: Clone the repo and build it using `cargo xtask`.
|
||||||
|
|
||||||
Ratatui is an ordinary Rust project where common tasks are managed with
|
Ratatui is an ordinary Rust project where common tasks are managed with
|
||||||
[cargo-make](https://github.com/sagiegurari/cargo-make/). It wraps common `cargo` commands with sane
|
[cargo-xtask](https://github.com/matklad/cargo-xtask). It wraps common `cargo` commands with sane
|
||||||
defaults depending on your platform of choice. Building the project should be as easy as running
|
defaults depending on your platform of choice. Building the project should be as easy as running
|
||||||
`cargo make build`.
|
`cargo xtask build`.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/ratatui/ratatui.git
|
git clone https://github.com/ratatui/ratatui.git
|
||||||
cd ratatui
|
cd ratatui
|
||||||
cargo make build
|
cargo xtask build
|
||||||
```
|
```
|
||||||
|
|
||||||
### Tests
|
### Tests
|
||||||
|
@ -182,7 +182,7 @@ We use GitHub Actions for the CI where we perform the following checks:
|
||||||
- The code should conform to the default format enforced by `rustfmt`.
|
- The code should conform to the default format enforced by `rustfmt`.
|
||||||
- The code should not contain common style issues `clippy`.
|
- The code should not contain common style issues `clippy`.
|
||||||
|
|
||||||
You can also check most of those things yourself locally using `cargo make ci` which will offer you
|
You can also check most of those things yourself locally using `cargo xtask ci` which will offer you
|
||||||
a shorter feedback loop than pushing to github.
|
a shorter feedback loop than pushing to github.
|
||||||
|
|
||||||
## Relationship with `tui-rs`
|
## Relationship with `tui-rs`
|
||||||
|
|
159
Makefile.toml
159
Makefile.toml
|
@ -1,159 +0,0 @@
|
||||||
# configuration for https://github.com/sagiegurari/cargo-make
|
|
||||||
|
|
||||||
[config]
|
|
||||||
skip_core_tasks = true
|
|
||||||
|
|
||||||
[env]
|
|
||||||
# all features except the backend ones
|
|
||||||
NON_BACKEND_FEATURES = "all-widgets,macros,serde"
|
|
||||||
# allow to run tasks from the workspace root
|
|
||||||
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
|
|
||||||
|
|
||||||
[tasks.default]
|
|
||||||
alias = "ci"
|
|
||||||
|
|
||||||
[tasks.ci]
|
|
||||||
description = "Run continuous integration tasks"
|
|
||||||
dependencies = ["lint", "clippy", "check", "test"]
|
|
||||||
|
|
||||||
[tasks.lint]
|
|
||||||
description = "Lint code style (formatting, typos, docs, markdown)"
|
|
||||||
dependencies = ["lint-format", "lint-typos", "lint-docs"]
|
|
||||||
|
|
||||||
[tasks.lint-format]
|
|
||||||
description = "Lint code formatting"
|
|
||||||
toolchain = "nightly"
|
|
||||||
command = "cargo"
|
|
||||||
args = ["fmt", "--all", "--check"]
|
|
||||||
|
|
||||||
[tasks.format]
|
|
||||||
description = "Fix code formatting"
|
|
||||||
toolchain = "nightly"
|
|
||||||
command = "cargo"
|
|
||||||
args = ["fmt", "--all"]
|
|
||||||
|
|
||||||
[tasks.lint-typos]
|
|
||||||
description = "Run typo checks"
|
|
||||||
install_crate = { crate_name = "typos-cli", binary = "typos", test_arg = "--version" }
|
|
||||||
command = "typos"
|
|
||||||
|
|
||||||
[tasks.lint-docs]
|
|
||||||
description = "Check documentation for errors and warnings"
|
|
||||||
toolchain = "nightly"
|
|
||||||
command = "cargo"
|
|
||||||
args = [
|
|
||||||
"rustdoc",
|
|
||||||
"-p",
|
|
||||||
"ratatui",
|
|
||||||
"--all-features",
|
|
||||||
"--",
|
|
||||||
"-Zunstable-options",
|
|
||||||
"--check",
|
|
||||||
"-Dwarnings",
|
|
||||||
]
|
|
||||||
|
|
||||||
[tasks.lint-markdown]
|
|
||||||
description = "Check markdown files for errors and warnings"
|
|
||||||
command = "markdownlint-cli2"
|
|
||||||
args = ["**/*.md", "!target"]
|
|
||||||
|
|
||||||
[tasks.check]
|
|
||||||
description = "Check code for errors and warnings"
|
|
||||||
command = "cargo"
|
|
||||||
args = ["check", "--all-targets", "--all-features"]
|
|
||||||
|
|
||||||
[tasks.build]
|
|
||||||
description = "Compile the project"
|
|
||||||
command = "cargo"
|
|
||||||
args = ["build", "--all-targets", "--all-features"]
|
|
||||||
|
|
||||||
[tasks.clippy]
|
|
||||||
description = "Run Clippy for linting"
|
|
||||||
command = "cargo"
|
|
||||||
args = [
|
|
||||||
"clippy",
|
|
||||||
"--all-targets",
|
|
||||||
"--all-features",
|
|
||||||
"--tests",
|
|
||||||
"--benches",
|
|
||||||
"--",
|
|
||||||
"-D",
|
|
||||||
"warnings",
|
|
||||||
]
|
|
||||||
|
|
||||||
[tasks.install-nextest]
|
|
||||||
description = "Install cargo-nextest"
|
|
||||||
install_crate = { crate_name = "cargo-nextest", binary = "cargo-nextest", test_arg = "--help" }
|
|
||||||
|
|
||||||
[tasks.test]
|
|
||||||
description = "Run tests"
|
|
||||||
run_task = { name = ["test-lib", "test-doc"] }
|
|
||||||
|
|
||||||
[tasks.test-lib]
|
|
||||||
description = "Run default tests"
|
|
||||||
dependencies = ["install-nextest"]
|
|
||||||
command = "cargo"
|
|
||||||
args = ["nextest", "run", "--all-targets", "--all-features"]
|
|
||||||
|
|
||||||
[tasks.test-doc]
|
|
||||||
description = "Run documentation tests"
|
|
||||||
command = "cargo"
|
|
||||||
args = ["test", "--doc", "--all-features"]
|
|
||||||
|
|
||||||
[tasks.test-backend]
|
|
||||||
# takes a command line parameter to specify the backend to test (e.g. "crossterm")
|
|
||||||
description = "Run backend-specific tests"
|
|
||||||
dependencies = ["install-nextest"]
|
|
||||||
command = "cargo"
|
|
||||||
args = [
|
|
||||||
"nextest",
|
|
||||||
"run",
|
|
||||||
"--all-targets",
|
|
||||||
"--no-default-features",
|
|
||||||
"--features",
|
|
||||||
"${NON_BACKEND_FEATURES},${@}",
|
|
||||||
]
|
|
||||||
|
|
||||||
[tasks.coverage]
|
|
||||||
description = "Generate code coverage report"
|
|
||||||
command = "cargo"
|
|
||||||
args = [
|
|
||||||
"llvm-cov",
|
|
||||||
"--workspace",
|
|
||||||
"--lcov",
|
|
||||||
"--output-path",
|
|
||||||
"../target/lcov.info",
|
|
||||||
"--all-features",
|
|
||||||
]
|
|
||||||
|
|
||||||
[tasks.run-example]
|
|
||||||
private = true
|
|
||||||
condition = { env_set = ["TUI_EXAMPLE_NAME"] }
|
|
||||||
command = "cargo"
|
|
||||||
args = [
|
|
||||||
"run",
|
|
||||||
"--release",
|
|
||||||
"--example",
|
|
||||||
"${TUI_EXAMPLE_NAME}",
|
|
||||||
"--features",
|
|
||||||
"all-widgets",
|
|
||||||
]
|
|
||||||
|
|
||||||
[tasks.build-examples]
|
|
||||||
description = "Compile project examples"
|
|
||||||
command = "cargo"
|
|
||||||
args = ["build", "--examples", "--release", "--features", "all-widgets"]
|
|
||||||
|
|
||||||
[tasks.run-examples]
|
|
||||||
description = "Run project examples"
|
|
||||||
dependencies = ["build-examples"]
|
|
||||||
script = '''
|
|
||||||
#!@duckscript
|
|
||||||
files = glob_array ./examples/*.rs
|
|
||||||
for file in ${files}
|
|
||||||
name = basename ${file}
|
|
||||||
name = substring ${name} -3
|
|
||||||
set_env TUI_EXAMPLE_NAME ${name}
|
|
||||||
cm_run_task run-example
|
|
||||||
end
|
|
||||||
'''
|
|
Loading…
Reference in a new issue