Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
69 lines (66 loc) · 2.69 KB
/
Copy pathCargo.toml
File metadata and controls
69 lines (66 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[workspace]
resolver = "3"
members = [
"crates/htl-core",
"crates/htl-macros",
"crates/htl",
"crates/htl-cli",
"crates/htl-mq",
"crates/htl-std",
"examples/embed",
"examples/resolver",
"e2e",
]
# Everything above except `e2e`, which is a member so that `--workspace` compiles and lints
# it and it cannot rot, and not a default member so that `cargo test` does not run it. Its
# three tests scaffold a Cargo project each and build it from nothing, which is minutes —
# the wrong price for the command run before every commit, and the right one for `just e2e`,
# which asks for it by name.
#
# The cost of this line is that `cargo test` and `cargo test --workspace` now differ by
# minutes and nothing in either one's output says so.
default-members = [
"crates/htl-core",
"crates/htl-macros",
"crates/htl",
"crates/htl-cli",
"crates/htl-mq",
"crates/htl-std",
"examples/embed",
"examples/resolver",
]
[workspace.package]
version = "0.19.0"
edition = "2024"
authors = ["Yutaka Nishimura"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ynishi/htl"
# The project's page is its repository. `documentation` is per crate (docs.rs is keyed on
# the crate name), so it is set in each of the four rather than inherited from here.
homepage = "https://github.com/ynishi/htl"
rust-version = "1.88"
[workspace.dependencies]
# default-features off at the workspace level so members opt in (`features = [...]`).
htl-core = { path = "crates/htl-core", version = "0.19.0", default-features = false }
htl-macros = { path = "crates/htl-macros", version = "0.19.0" }
htl = { path = "crates/htl", version = "0.19.0", default-features = false }
# `std.fs` / `std.proc`: the asynchronous I/O slice of `std.*`, which the CLI registers
# with `htl_core::registry::register_installer` so every state it builds for itself
# (the checker, a test file) carries it beside the synchronous `std.*` `htl` installs.
htl-std = { path = "crates/htl-std", version = "0.19.0" }
mlua = { version = "0.12.2", features = ["lua54", "vendored", "error-send"] }
mlua-pkg = "0.11.0"
anyhow = "1.0.104"
# `[toolchain] htl` in htl.toml: cargo's own requirement syntax and matching rule, so a
# pin on the command reads and behaves as the `htl = "0.6"` beside it in Cargo.toml.
# Already in the graph (mlua-pkg resolves versions with it) and it has no dependencies.
semver = "1.0.28"
clap = { version = "4.6.6", features = ["derive"] }
walkdir = "2.5.0"
# `htl_core::run::CallError`: a domain error with a source chain, which is what a derive
# is for. Already in the graph (mlua-isle and others use it).
thiserror = "2"
# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"