collin/anvil · ef6faf54
Align the = column in every Cargo.toml table
Collin Richards · 2026-08-25 04:35 UTC · ef6faf54bd5ff32b7b205125e8544b2994a00ec7 · parent 215b6942 · browse files
modifiedCargo.toml+58 −57
| 1 | 1 | [workspace] | |
| 2 | 2 | resolver = "2" | |
| 3 | - | members = [ | |
| 3 | + | members = [ | |
| 4 | 4 | "crates/*", | |
| 5 | 5 | "vendor/gitserver-core", | |
| 6 | 6 | ] | |
| 7 | 7 | ||
| 8 | 8 | [workspace.package] | |
| 9 | - | version = "0.0.0" | |
| 10 | - | edition = "2024" | |
| 11 | - | license = "MIT OR Apache-2.0" | |
| 12 | - | repository = "https://github.com/richardscollin/anvil" | |
| 13 | - | rust-version = "1.95" | |
| 9 | + | version = "0.0.0" | |
| 10 | + | edition = "2024" | |
| 11 | + | license = "MIT OR Apache-2.0" | |
| 12 | + | repository = "https://github.com/richardscollin/anvil" | |
| 13 | + | rust-version = "1.98.0" | |
| 14 | 14 | ||
| 15 | 15 | [workspace.dependencies] | |
| 16 | 16 | # Internal crates | |
| 17 | - | anvil-core = { path = "crates/anvil-core" } | |
| 18 | - | anvil-ci = { path = "crates/anvil-ci" } | |
| 19 | - | anvil-docker = { path = "crates/anvil-docker" } | |
| 20 | - | anvil-job = { path = "crates/anvil-job" } | |
| 21 | - | anvil-agent = { path = "crates/anvil-agent" } | |
| 22 | - | anvil-git = { path = "crates/anvil-git" } | |
| 23 | - | anvil-web = { path = "crates/anvil-web" } | |
| 24 | - | anvil-ssh = { path = "crates/anvil-ssh" } | |
| 17 | + | anvil-core = { path = "crates/anvil-core" } | |
| 18 | + | anvil-ci = { path = "crates/anvil-ci" } | |
| 19 | + | anvil-docker = { path = "crates/anvil-docker" } | |
| 20 | + | anvil-job = { path = "crates/anvil-job" } | |
| 21 | + | anvil-agent = { path = "crates/anvil-agent" } | |
| 22 | + | anvil-git = { path = "crates/anvil-git" } | |
| 23 | + | anvil-web = { path = "crates/anvil-web" } | |
| 24 | + | anvil-ssh = { path = "crates/anvil-ssh" } | |
| 25 | 25 | ||
| 26 | - | anyhow = "1" | |
| 27 | - | argon2 = { version = "0.5", features = ["std"] } | |
| 28 | 26 | # Repo secrets (docs/secrets.md): sealed to users' ssh-ed25519 keys with | |
| 29 | 27 | # X25519 + HKDF-SHA256 + AES-256-GCM. AES-GCM rather than ChaCha20-Poly1305 | |
| 30 | 28 | # because the *browser* is the encryptor and WebCrypto has no ChaCha. | |
| ⋯ 3 unchanged lines | |||
| 34 | 32 | # that does not compile. X25519 comes from `MontgomeryPoint::mul_clamped` | |
| 35 | 33 | # rather than the x25519-dalek wrapper, which would want its own | |
| 36 | 34 | # curve25519-dalek. | |
| 37 | - | aes-gcm = "=0.11.0-rc.4" | |
| 38 | - | curve25519-dalek = "=5.0.0-rc.0" | |
| 39 | - | async-trait = "0.1" | |
| 40 | - | axum = { version = "0.8", features = ["ws"] } | |
| 41 | - | axum-extra = { version = "0.10", features = ["cookie"] } | |
| 42 | - | base64 = "0.22" | |
| 43 | - | bollard = "0.18" | |
| 44 | - | clap = { version = "4", features = ["derive"] } | |
| 45 | - | futures-util = "0.3" | |
| 46 | - | hmac = "0.12" | |
| 47 | - | lru = "0.12" | |
| 48 | - | gitserver-core = { path = "vendor/gitserver-core" } | |
| 49 | - | gix = { version = "0.84", default-features = false, features = ["sha1", "max-performance-safe", "blob-diff", "revision"] } | |
| 50 | - | gix-pack = { version = "0.71", features = ["sha1"] } | |
| 51 | - | maud = { version = "0.27", features = ["axum"] } | |
| 52 | - | pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] } | |
| 53 | - | flate2 = "1" | |
| 54 | - | rand = "0.10" | |
| 35 | + | ||
| 36 | + | anyhow = { version = "1" } | |
| 37 | + | argon2 = { version = "0.5", features = ["std"] } | |
| 38 | + | aes-gcm = { version = "=0.11.0-rc.4" } | |
| 39 | + | curve25519-dalek = { version = "=5.0.0-rc.0" } | |
| 40 | + | async-trait = { version = "0.1" } | |
| 41 | + | axum = { version = "0.8", features = ["ws"] } | |
| 42 | + | axum-extra = { version = "0.10", features = ["cookie"] } | |
| 43 | + | base64 = { version = "0.22" } | |
| 44 | + | bollard = { version = "0.18" } | |
| 45 | + | clap = { version = "4", features = ["derive"] } | |
| 46 | + | futures-util = { version = "0.3" } | |
| 47 | + | hmac = { version = "0.12" } | |
| 48 | + | lru = { version = "0.12" } | |
| 49 | + | gitserver-core = { path = "vendor/gitserver-core" } | |
| 50 | + | gix = { version = "0.84", default-features = false, features = ["sha1", "max-performance-safe", "blob-diff", "revision"] } | |
| 51 | + | gix-pack = { version = "0.71", features = ["sha1"] } | |
| 52 | + | maud = { version = "0.27", features = ["axum"] } | |
| 53 | + | pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] } | |
| 54 | + | flate2 = { version = "1" } | |
| 55 | + | rand = { version = "0.10" } | |
| 55 | 56 | # HTTP client for the CD deploy webhook. No TLS feature on purpose: the deploy | |
| 56 | 57 | # receiver is host-local plaintext HTTP, and enabling rustls would drag in | |
| 57 | 58 | # aws-lc-rs and break the musl cross-compile (see the russh note below). | |
| ⋯ 6 unchanged lines | |||
| 64 | 65 | # talks to whatever anvil you self-host, including one behind a private or | |
| 65 | 66 | # local CA — portless's `.localhost` certificates being the everyday case. The | |
| 66 | 67 | # deploy image installs ca-certificates, so the server side is unaffected. | |
| 67 | - | reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-native-roots-no-provider"] } | |
| 68 | - | rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } | |
| 68 | + | reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-native-roots-no-provider"] } | |
| 69 | + | rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } | |
| 69 | 70 | # Used directly only for idempotent schema shims on existing databases; the | |
| 70 | 71 | # version tracks what toasty-driver-sqlite already pulls in. | |
| 71 | - | rusqlite = "0.39" | |
| 72 | + | rusqlite = { version = "0.39" } | |
| 72 | 73 | # `anvild secret` prompts for an ssh key passphrase / an account password. | |
| 73 | - | rpassword = "7" | |
| 74 | + | rpassword = { version = "7" } | |
| 74 | 75 | # RS256 verification of OIDC id tokens (docs/oidc.md). ring rather than a JWT | |
| 75 | 76 | # crate: it is already in the tree under rustls, cross-compiles to static musl | |
| 76 | 77 | # (aws-lc-rs, which the maintained JWT crates default to, needs cmake and does | |
| 77 | 78 | # not), and one signature check over `header.payload` is all we need. | |
| 78 | - | ring = "0.17" | |
| 79 | - | serde = { version = "1", features = ["derive"] } | |
| 80 | - | serde_json = "1" | |
| 81 | - | serde_yaml = "0.9" | |
| 82 | - | sha2 = "0.10" | |
| 83 | - | similar = "2" | |
| 79 | + | ring = { version = "0.17" } | |
| 80 | + | serde = { version = "1", features = ["derive"] } | |
| 81 | + | serde_json = { version = "1" } | |
| 82 | + | serde_yaml = { version = "0.9" } | |
| 83 | + | sha2 = { version = "0.10" } | |
| 84 | + | similar = { version = "2" } | |
| 84 | 85 | # `default-onig` (C Oniguruma regex engine) over the pure-Rust `default-fancy`: | |
| 85 | 86 | # several times faster on large files, and zig's cc cross-compiles the C just | |
| 86 | 87 | # fine for the static musl build (verified via deploy/build.sh's toolchain). | |
| 87 | - | syntect = { version = "5", default-features = false, features = ["default-onig"] } | |
| 88 | - | tar = "0.4" | |
| 89 | - | thiserror = "2" | |
| 90 | - | time = { version = "0.3", features = ["serde", "formatting"] } | |
| 91 | - | toasty = { version = "0.7", features = ["sqlite"] } | |
| 92 | - | tokio = { version = "1", features = ["full"] } | |
| 93 | - | tokio-util = { version = "0.7", features = ["io"] } | |
| 94 | - | toml = "0.8" | |
| 95 | - | tower = "0.5" | |
| 96 | - | tower-http = { version = "0.6", features = ["trace", "fs"] } | |
| 97 | - | tracing = "0.1" | |
| 88 | + | syntect = { version = "5", default-features = false, features = ["default-onig"] } | |
| 89 | + | tar = { version = "0.4" } | |
| 90 | + | thiserror = { version = "2" } | |
| 91 | + | time = { version = "0.3", features = ["serde", "formatting"] } | |
| 92 | + | toasty = { version = "0.7", features = ["sqlite"] } | |
| 93 | + | tokio = { version = "1", features = ["full"] } | |
| 94 | + | tokio-util = { version = "0.7", features = ["io"] } | |
| 95 | + | toml = { version = "0.8" } | |
| 96 | + | tower = { version = "0.5" } | |
| 97 | + | tower-http = { version = "0.6", features = ["trace", "fs"] } | |
| 98 | + | tracing = { version = "0.1" } | |
| 98 | 99 | tracing-subscriber = { version = "0.3", features = ["env-filter"] } | |
| 99 | 100 | ||
| 100 | 101 | # ssh — use the `ring` crypto backend instead of the default `aws-lc-rs`: | |
| 101 | 102 | # ring is far cheaper to compile (no cmake/perl) and cross-compiles cleanly | |
| 102 | 103 | # (zigbuild/musl), which matters for building images for the low-RAM VPS. | |
| 103 | - | russh = { version = "0.61", default-features = false, features = ["flate2", "ring", "rsa"] } | |
| 104 | + | russh = { version = "0.61", default-features = false, features = ["flate2", "ring", "rsa"] } | |
| 104 | 105 | # ssh-key parsing/fingerprinting, shared by anvil-core (storage) and anvil-ssh | |
| 105 | 106 | # (auth). Pinned to match russh's transitive ssh-key so fingerprints agree. | |
| 106 | - | ssh-key = "0.7.0-rc.10" | |
| 107 | + | ssh-key = { version = "0.7.0-rc.10" } | |
modifiedcrates/anvil-agent/Cargo.toml+13 −13
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-agent" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-agent" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "Agent sessions for anvil: a tmux-hosted agent CLI per repository, in a container, attachable from the browser." | |
| 8 | + | description = "Agent sessions for anvil: a tmux-hosted agent CLI per repository, in a container, attachable from the browser." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | 11 | # The Docker connect/pull plumbing is shared with the job runner rather than | |
| 12 | 12 | # duplicated — both start containers from the same runner image. | |
| 13 | 13 | anvil-docker.workspace = true | |
| 14 | - | anvil-core.workspace = true | |
| 15 | - | async-trait.workspace = true | |
| 16 | - | anvil-git.workspace = true | |
| 17 | - | bollard.workspace = true | |
| 14 | + | anvil-core.workspace = true | |
| 15 | + | async-trait.workspace = true | |
| 16 | + | anvil-git.workspace = true | |
| 17 | + | bollard.workspace = true | |
| 18 | 18 | futures-util.workspace = true | |
| 19 | - | tar.workspace = true | |
| 20 | - | tokio.workspace = true | |
| 21 | - | tracing.workspace = true | |
| 19 | + | tar.workspace = true | |
| 20 | + | tokio.workspace = true | |
| 21 | + | tracing.workspace = true |
modifiedcrates/anvil-ci/Cargo.toml+16 −16
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-ci" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-ci" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "CI runner for anvil: executes .anvil/ci.yml pipelines in Docker containers via the socket." | |
| 8 | + | description = "CI runner for anvil: executes .anvil/ci.yml pipelines in Docker containers via the socket." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | - | anvil-core.workspace = true | |
| 11 | + | anvil-core.workspace = true | |
| 12 | 12 | anvil-docker.workspace = true | |
| 13 | - | anvil-job.workspace = true | |
| 14 | - | anvil-git.workspace = true | |
| 15 | - | flate2.workspace = true | |
| 16 | - | reqwest.workspace = true | |
| 17 | - | serde_json.workspace = true | |
| 18 | - | tar.workspace = true | |
| 19 | - | tokio.workspace = true | |
| 20 | - | tracing.workspace = true | |
| 13 | + | anvil-job.workspace = true | |
| 14 | + | anvil-git.workspace = true | |
| 15 | + | flate2.workspace = true | |
| 16 | + | reqwest.workspace = true | |
| 17 | + | serde_json.workspace = true | |
| 18 | + | tar.workspace = true | |
| 19 | + | tokio.workspace = true | |
| 20 | + | tracing.workspace = true | |
| 21 | 21 | ||
| 22 | 22 | [dev-dependencies] | |
| 23 | - | tempfile = "3" | |
| 23 | + | tempfile = { version = "3" } |
modifiedcrates/anvil-cli/Cargo.toml+23 −23
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-cli" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-cli" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "anvil git forge daemon and admin CLI." | |
| 9 | - | default-run = "anvild" | |
| 8 | + | description = "anvil git forge daemon and admin CLI." | |
| 9 | + | default-run = "anvild" | |
| 10 | 10 | ||
| 11 | 11 | [[bin]] | |
| 12 | 12 | name = "anvild" | |
| 13 | 13 | path = "src/main.rs" | |
| 14 | 14 | ||
| 15 | 15 | [dependencies] | |
| 16 | - | anvil-core.workspace = true | |
| 17 | - | anvil-web.workspace = true | |
| 18 | - | anvil-ssh.workspace = true | |
| 19 | - | anvil-agent.workspace = true | |
| 20 | - | anvil-ci.workspace = true | |
| 21 | - | tokio.workspace = true | |
| 22 | - | clap.workspace = true | |
| 23 | - | anyhow.workspace = true | |
| 24 | - | reqwest.workspace = true | |
| 25 | - | rustls.workspace = true | |
| 26 | - | rpassword.workspace = true | |
| 27 | - | serde.workspace = true | |
| 28 | - | serde_json.workspace = true | |
| 29 | - | time.workspace = true | |
| 16 | + | anvil-core.workspace = true | |
| 17 | + | anvil-web.workspace = true | |
| 18 | + | anvil-ssh.workspace = true | |
| 19 | + | anvil-agent.workspace = true | |
| 20 | + | anvil-ci.workspace = true | |
| 21 | + | tokio.workspace = true | |
| 22 | + | clap.workspace = true | |
| 23 | + | anyhow.workspace = true | |
| 24 | + | reqwest.workspace = true | |
| 25 | + | rustls.workspace = true | |
| 26 | + | rpassword.workspace = true | |
| 27 | + | serde.workspace = true | |
| 28 | + | serde_json.workspace = true | |
| 29 | + | time.workspace = true | |
| 30 | 30 | # `encryption` so a passphrase-protected private key can be opened locally — | |
| 31 | 31 | # the CLI is the only half of anvil that ever holds a private key. | |
| 32 | - | ssh-key = { workspace = true, features = ["encryption"] } | |
| 33 | - | tracing.workspace = true | |
| 32 | + | ssh-key = { workspace = true, features = ["encryption"] } | |
| 33 | + | tracing.workspace = true | |
| 34 | 34 | tracing-subscriber.workspace = true |
modifiedcrates/anvil-core/Cargo.toml+31 −31
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-core" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-core" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "Domain model, persistence, and on-disk repository storage for the anvil git forge." | |
| 8 | + | description = "Domain model, persistence, and on-disk repository storage for the anvil git forge." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | - | anvil-job.workspace = true | |
| 12 | - | async-trait.workspace = true | |
| 13 | - | gix.workspace = true | |
| 14 | - | toasty.workspace = true | |
| 15 | - | rusqlite.workspace = true | |
| 16 | - | argon2.workspace = true | |
| 17 | - | aes-gcm.workspace = true | |
| 11 | + | anvil-job.workspace = true | |
| 12 | + | async-trait.workspace = true | |
| 13 | + | gix.workspace = true | |
| 14 | + | toasty.workspace = true | |
| 15 | + | rusqlite.workspace = true | |
| 16 | + | argon2.workspace = true | |
| 17 | + | aes-gcm.workspace = true | |
| 18 | 18 | curve25519-dalek.workspace = true | |
| 19 | - | base64.workspace = true | |
| 20 | - | hmac.workspace = true | |
| 21 | - | sha2.workspace = true | |
| 22 | - | ssh-key.workspace = true | |
| 23 | - | serde.workspace = true | |
| 24 | - | serde_json.workspace = true | |
| 25 | - | serde_yaml.workspace = true | |
| 26 | - | toml.workspace = true | |
| 27 | - | thiserror.workspace = true | |
| 28 | - | tracing.workspace = true | |
| 29 | - | tokio.workspace = true | |
| 30 | - | pulldown-cmark.workspace = true | |
| 31 | - | jaq-core = "3.1.0" | |
| 32 | - | jaq-json = "2.0.2" | |
| 33 | - | jaq-std = { version = "3.0.2", default-features = false, features = ["std"] } | |
| 19 | + | base64.workspace = true | |
| 20 | + | hmac.workspace = true | |
| 21 | + | sha2.workspace = true | |
| 22 | + | ssh-key.workspace = true | |
| 23 | + | serde.workspace = true | |
| 24 | + | serde_json.workspace = true | |
| 25 | + | serde_yaml.workspace = true | |
| 26 | + | toml.workspace = true | |
| 27 | + | thiserror.workspace = true | |
| 28 | + | tracing.workspace = true | |
| 29 | + | tokio.workspace = true | |
| 30 | + | pulldown-cmark.workspace = true | |
| 31 | + | jaq-core = { version = "3.1.0" } | |
| 32 | + | jaq-json = { version = "2.0.2" } | |
| 33 | + | jaq-std = { version = "3.0.2", default-features = false, features = ["std"] } | |
| 34 | 34 | ||
| 35 | 35 | [dev-dependencies] | |
| 36 | - | tokio = { workspace = true } | |
| 37 | - | tempfile = "3" | |
| 36 | + | tokio = { workspace = true } | |
| 37 | + | tempfile = { version = "3" } | |
| 38 | 38 | # Tests mint throwaway ssh keys; the `ed25519` feature is what derives a public | |
| 39 | 39 | # key from a seed. The library itself only ever parses keys, so it does not | |
| 40 | 40 | # need it. | |
| 41 | - | ssh-key = { workspace = true, features = ["ed25519"] } | |
| 41 | + | ssh-key = { workspace = true, features = ["ed25519"] } |
modifiedcrates/anvil-docker/Cargo.toml+8 −8
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-docker" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-docker" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "Docker connect/pull plumbing shared by anvil's job runner and agent-session supervisor." | |
| 8 | + | description = "Docker connect/pull plumbing shared by anvil's job runner and agent-session supervisor." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | - | bollard.workspace = true | |
| 11 | + | bollard.workspace = true | |
| 12 | 12 | futures-util.workspace = true | |
| 13 | - | tracing.workspace = true | |
| 13 | + | tracing.workspace = true |
modifiedcrates/anvil-git/Cargo.toml+15 −15
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-git" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-git" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "Server-side git wire protocol (smart-HTTP / SSH) on top of gix. Transport-agnostic; upstream-candidate." | |
| 8 | + | description = "Server-side git wire protocol (smart-HTTP / SSH) on top of gix. Transport-agnostic; upstream-candidate." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | - | anvil-core.workspace = true | |
| 12 | - | gix.workspace = true | |
| 11 | + | anvil-core.workspace = true | |
| 12 | + | gix.workspace = true | |
| 13 | 13 | gitserver-core.workspace = true | |
| 14 | - | reqwest.workspace = true | |
| 15 | - | rustls.workspace = true | |
| 16 | - | toasty.workspace = true | |
| 17 | - | tokio.workspace = true | |
| 18 | - | thiserror.workspace = true | |
| 19 | - | tracing.workspace = true | |
| 14 | + | reqwest.workspace = true | |
| 15 | + | rustls.workspace = true | |
| 16 | + | toasty.workspace = true | |
| 17 | + | tokio.workspace = true | |
| 18 | + | thiserror.workspace = true | |
| 19 | + | tracing.workspace = true | |
| 20 | 20 | ||
| 21 | 21 | [dev-dependencies] | |
| 22 | - | tempfile = "3" | |
| 22 | + | tempfile = { version = "3" } |
modifiedcrates/anvil-job/Cargo.toml+6 −6
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-job" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-job" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "The wire format between anvil and a job runner: what a claimed job is, and what its result looks like." | |
| 8 | + | description = "The wire format between anvil and a job runner: what a claimed job is, and what its result looks like." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | 11 | serde.workspace = true |
modifiedcrates/anvil-ssh/Cargo.toml+11 −11
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-ssh" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-ssh" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "git-over-SSH transport for anvil (russh), delegating to anvil-git. Added in milestone 6." | |
| 8 | + | description = "git-over-SSH transport for anvil (russh), delegating to anvil-git. Added in milestone 6." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | 11 | anvil-core.workspace = true | |
| 12 | - | anvil-git.workspace = true | |
| 13 | - | russh.workspace = true | |
| 14 | - | tokio.workspace = true | |
| 15 | - | tracing.workspace = true | |
| 16 | - | rand.workspace = true | |
| 12 | + | anvil-git.workspace = true | |
| 13 | + | russh.workspace = true | |
| 14 | + | tokio.workspace = true | |
| 15 | + | tracing.workspace = true | |
| 16 | + | rand.workspace = true |
modifiedcrates/anvil-web/Cargo.toml+36 −36
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-web" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-web" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "HTTP server for anvil: web UI and smart-HTTP git endpoints (axum)." | |
| 8 | + | description = "HTTP server for anvil: web UI and smart-HTTP git endpoints (axum)." | |
| 9 | 9 | ||
| 10 | 10 | [dependencies] | |
| 11 | - | anvil-agent.workspace = true | |
| 12 | - | anvil-ci.workspace = true | |
| 13 | - | anvil-core.workspace = true | |
| 14 | - | anvil-job.workspace = true | |
| 15 | - | anvil-git.workspace = true | |
| 16 | - | axum.workspace = true | |
| 17 | - | axum-extra.workspace = true | |
| 18 | - | futures-util.workspace = true | |
| 19 | - | tokio.workspace = true | |
| 20 | - | tokio-util.workspace = true | |
| 21 | - | tower-http.workspace = true | |
| 22 | - | tracing.workspace = true | |
| 23 | - | serde.workspace = true | |
| 24 | - | serde_json.workspace = true | |
| 25 | - | base64.workspace = true | |
| 26 | - | reqwest.workspace = true | |
| 27 | - | ring.workspace = true | |
| 28 | - | rustls.workspace = true | |
| 29 | - | lru.workspace = true | |
| 30 | - | maud.workspace = true | |
| 11 | + | anvil-agent.workspace = true | |
| 12 | + | anvil-ci.workspace = true | |
| 13 | + | anvil-core.workspace = true | |
| 14 | + | anvil-job.workspace = true | |
| 15 | + | anvil-git.workspace = true | |
| 16 | + | axum.workspace = true | |
| 17 | + | axum-extra.workspace = true | |
| 18 | + | futures-util.workspace = true | |
| 19 | + | tokio.workspace = true | |
| 20 | + | tokio-util.workspace = true | |
| 21 | + | tower-http.workspace = true | |
| 22 | + | tracing.workspace = true | |
| 23 | + | serde.workspace = true | |
| 24 | + | serde_json.workspace = true | |
| 25 | + | base64.workspace = true | |
| 26 | + | reqwest.workspace = true | |
| 27 | + | ring.workspace = true | |
| 28 | + | rustls.workspace = true | |
| 29 | + | lru.workspace = true | |
| 30 | + | maud.workspace = true | |
| 31 | 31 | pulldown-cmark.workspace = true | |
| 32 | - | similar.workspace = true | |
| 33 | - | syntect.workspace = true | |
| 34 | - | time.workspace = true | |
| 32 | + | similar.workspace = true | |
| 33 | + | syntect.workspace = true | |
| 34 | + | time.workspace = true | |
| 35 | 35 | ||
| 36 | 36 | [dev-dependencies] | |
| 37 | - | tempfile = "3" | |
| 37 | + | tempfile = { version = "3" } | |
| 38 | 38 | serde_json.workspace = true | |
| 39 | - | argon2.workspace = true | |
| 40 | - | ssh-key = { workspace = true, features = ["ed25519"] } | |
| 41 | - | tokio = { workspace = true } | |
| 42 | - | tower = { workspace = true, features = ["util"] } | |
| 39 | + | argon2.workspace = true | |
| 40 | + | ssh-key = { workspace = true, features = ["ed25519"] } | |
| 41 | + | tokio = { workspace = true } | |
| 42 | + | tower = { workspace = true, features = ["util"] } | |
| 43 | 43 | # The stand-in identity provider in tests/oidc_flow.rs generates a key and | |
| 44 | 44 | # signs its own id tokens. ring, which verifies them on anvil's side, can only | |
| 45 | 45 | # verify with an RSA key, not make one. | |
| 46 | - | rsa = "0.9" | |
| 46 | + | rsa = { version = "0.9" } | |
| 47 | 47 | # `oid` for the DigestInfo prefix PKCS#1 v1.5 (and so RS256) signs over. | |
| 48 | - | sha2 = { workspace = true, features = ["oid"] } | |
| 48 | + | sha2 = { workspace = true, features = ["oid"] } |
modifiedcrates/anvil-worker/Cargo.toml+18 −18
| 1 | 1 | [package] | |
| 2 | - | name = "anvil-worker" | |
| 3 | - | version.workspace = true | |
| 4 | - | edition.workspace = true | |
| 5 | - | license.workspace = true | |
| 6 | - | repository.workspace = true | |
| 2 | + | name = "anvil-worker" | |
| 3 | + | version.workspace = true | |
| 4 | + | edition.workspace = true | |
| 5 | + | license.workspace = true | |
| 6 | + | repository.workspace = true | |
| 7 | 7 | rust-version.workspace = true | |
| 8 | - | description = "anvil's job runner: dials out to a forge, claims CI jobs, and runs them in sandboxed containers on its own Docker daemon." | |
| 8 | + | description = "anvil's job runner: dials out to a forge, claims CI jobs, and runs them in sandboxed containers on its own Docker daemon." | |
| 9 | 9 | ||
| 10 | 10 | # Named `anvil-worker` rather than `anvil-runner` because `anvil-runner:latest` | |
| 11 | 11 | # is already the *image* CI jobs and agent sessions run inside. | |
| ⋯ 2 unchanged lines | |||
| 14 | 14 | path = "src/main.rs" | |
| 15 | 15 | ||
| 16 | 16 | [dependencies] | |
| 17 | - | anvil-docker.workspace = true | |
| 18 | - | anvil-job.workspace = true | |
| 19 | - | async-trait.workspace = true | |
| 20 | - | bollard.workspace = true | |
| 21 | - | clap = { workspace = true, features = ["env"] } | |
| 22 | - | tar.workspace = true | |
| 23 | - | futures-util.workspace = true | |
| 24 | - | reqwest.workspace = true | |
| 25 | - | rustls.workspace = true | |
| 26 | - | serde_json.workspace = true | |
| 27 | - | tokio.workspace = true | |
| 28 | - | tracing.workspace = true | |
| 17 | + | anvil-docker.workspace = true | |
| 18 | + | anvil-job.workspace = true | |
| 19 | + | async-trait.workspace = true | |
| 20 | + | bollard.workspace = true | |
| 21 | + | clap = { workspace = true, features = ["env"] } | |
| 22 | + | tar.workspace = true | |
| 23 | + | futures-util.workspace = true | |
| 24 | + | reqwest.workspace = true | |
| 25 | + | rustls.workspace = true | |
| 26 | + | serde_json.workspace = true | |
| 27 | + | tokio.workspace = true | |
| 28 | + | tracing.workspace = true | |
| 29 | 29 | tracing-subscriber.workspace = true | |
modifiedvendor/gitserver-core/Cargo.toml+18 −18
| 1 | 1 | [package] | |
| 2 | - | name = "gitserver-core" | |
| 2 | + | name = "gitserver-core" | |
| 3 | 3 | description = "Core Git protocol operations (vendored into anvil from WJQSERVER/gitserver, bumped to gix 0.84)." | |
| 4 | - | version = "0.0.3" | |
| 5 | - | edition = "2024" | |
| 6 | - | license = "MPL-2.0" | |
| 7 | - | repository = "https://github.com/WJQSERVER/gitserver" | |
| 4 | + | version = "0.0.3" | |
| 5 | + | edition = "2024" | |
| 6 | + | license = "MPL-2.0" | |
| 7 | + | repository = "https://github.com/WJQSERVER/gitserver" | |
| 8 | 8 | ||
| 9 | 9 | [dependencies] | |
| 10 | 10 | # gix / gix-pack come from the anvil workspace (bumped to 0.84 / 0.71 here). | |
| 11 | - | gix = { workspace = true } | |
| 12 | - | gix-pack = { workspace = true } | |
| 13 | - | tokio = { workspace = true } | |
| 14 | - | tracing = { workspace = true } | |
| 15 | - | serde = { workspace = true } | |
| 16 | - | thiserror = { workspace = true } | |
| 17 | - | miniz_oxide = "0.8" | |
| 18 | - | sha1 = "0.10" | |
| 19 | - | tokio-stream = "0.1" | |
| 20 | - | tokio-util = { version = "0.7", features = ["io", "io-util"] } | |
| 21 | - | bytes = "1" | |
| 11 | + | gix = { workspace = true } | |
| 12 | + | gix-pack = { workspace = true } | |
| 13 | + | tokio = { workspace = true } | |
| 14 | + | tracing = { workspace = true } | |
| 15 | + | serde = { workspace = true } | |
| 16 | + | thiserror = { workspace = true } | |
| 17 | + | miniz_oxide = { version = "0.8" } | |
| 18 | + | sha1 = { version = "0.10" } | |
| 19 | + | tokio-stream = { version = "0.1" } | |
| 20 | + | tokio-util = { version = "0.7", features = ["io", "io-util"] } | |
| 21 | + | bytes = { version = "1" } | |
| 22 | 22 | ||
| 23 | 23 | [dev-dependencies] | |
| 24 | - | tempfile = "3" | |
| 25 | - | tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } | |
| 24 | + | tempfile = { version = "3" } | |
| 25 | + | tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } |