From 40e1520acb05f9acf22eaa2800540840108d9a52 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Fri, 23 Jun 2023 13:02:23 +1000 Subject: [PATCH] Drop workspace-hack in favor of workspace deps Workspace deps were introduced in Rust 1.64. They don't cover all the cases that Hakari did unfortunately, but they are simpler to maintain, and they avoid a couple of issues that Hakari had: - It sometimes made updating dependencies harder due to the locked versions, so you had to disable Hakari, do the updates, and then re-generate ( e.g. 943dddf28f9a5bfbf49fd9b8501feb3d15fd2b81) - The current Hakari config was breaking AnkiDroid's build, as it was stopping a cross-compile from functioning correctly. --- .config/hakari.toml | 8 - Cargo.lock | 190 +++------------------- Cargo.toml | 108 ++++++++++++- build/archives/Cargo.toml | 27 ++-- build/configure/Cargo.toml | 10 +- build/ninja_gen/Cargo.toml | 24 ++- build/ninja_gen/src/configure.rs | 7 +- build/runner/Cargo.toml | 20 ++- cargo/licenses.json | 239 +--------------------------- ftl/Cargo.toml | 8 +- pylib/rsbridge/Cargo.toml | 18 +-- qt/bundle/mac/Cargo.toml | 26 ++- qt/bundle/win/Cargo.toml | 16 +- rslib/Cargo.toml | 163 +++++++++---------- rslib/i18n/Cargo.toml | 40 +++-- rslib/i18n_helpers/Cargo.toml | 18 +-- rslib/io/Cargo.toml | 9 +- rslib/linkchecker/Cargo.toml | 31 ++-- rslib/process/Cargo.toml | 9 +- rslib/proto/Cargo.toml | 31 ++-- rslib/proto_gen/Cargo.toml | 8 +- tools/minilints/Cargo.toml | 17 +- tools/minilints/src/main.rs | 7 - tools/workspace-hack/.gitattributes | 4 - tools/workspace-hack/Cargo.toml | 102 ------------ tools/workspace-hack/build.rs | 2 - tools/workspace-hack/src/lib.rs | 1 - 27 files changed, 345 insertions(+), 798 deletions(-) delete mode 100644 .config/hakari.toml delete mode 100644 tools/workspace-hack/.gitattributes delete mode 100644 tools/workspace-hack/Cargo.toml delete mode 100644 tools/workspace-hack/build.rs delete mode 100644 tools/workspace-hack/src/lib.rs diff --git a/.config/hakari.toml b/.config/hakari.toml deleted file mode 100644 index 0dcb980b6..000000000 --- a/.config/hakari.toml +++ /dev/null @@ -1,8 +0,0 @@ -hakari-package = "workspace-hack" -dep-format-version = "4" -resolver = "2" - -[traversal-excludes] -third-party = [ - { name = "reqwest" }, -] diff --git a/Cargo.lock b/Cargo.lock index a66f632ea..0581147b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,18 +17,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "opaque-debug", -] - [[package]] name = "ahash" version = "0.7.6" @@ -156,7 +144,6 @@ dependencies = [ "utime", "windows", "wiremock", - "workspace-hack", "zip", "zstd 0.12.3+zstd.1.5.2", ] @@ -177,7 +164,6 @@ dependencies = [ "serde", "serde_json", "unic-langid", - "workspace-hack", ] [[package]] @@ -189,7 +175,6 @@ dependencies = [ "regex", "serde_json", "walkdir", - "workspace-hack", ] [[package]] @@ -306,7 +291,6 @@ dependencies = [ "sha2", "tar", "tokio", - "workspace-hack", "xz2", "zip", "zstd 0.12.3+zstd.1.5.2", @@ -361,9 +345,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad445822218ce64be7a341abfb0b1ea43b5c23aa83902542a4542e78309d8e5e" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", @@ -372,13 +356,13 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4655ae1a7b0cdf149156f780c5bf3f1352bc53cbd9e0a361a7ef7b22947e965" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.18", ] [[package]] @@ -510,12 +494,6 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - [[package]] name = "bitflags" version = "1.3.2" @@ -538,7 +516,7 @@ dependencies = [ "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.2.5", + "constant_time_eq", "digest", ] @@ -602,27 +580,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "camino" version = "1.1.4" @@ -641,7 +598,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -698,15 +655,6 @@ dependencies = [ "half", ] -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - [[package]] name = "cipher" version = "0.4.4" @@ -841,9 +789,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" dependencies = [ "crossbeam-utils", ] @@ -855,15 +803,8 @@ dependencies = [ "anyhow", "itertools", "ninja_gen", - "workspace-hack", ] -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - [[package]] name = "constant_time_eq" version = "0.2.5" @@ -1091,7 +1032,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -1382,7 +1323,6 @@ version = "0.0.0" dependencies = [ "camino", "snafu", - "workspace-hack", ] [[package]] @@ -1445,9 +1385,9 @@ checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ "fastrand", "futures-core", @@ -2143,7 +2083,6 @@ dependencies = [ "reqwest", "strum", "tokio", - "workspace-hack", ] [[package]] @@ -2212,7 +2151,6 @@ dependencies = [ "serde_json", "simple-file-manifest", "walkdir", - "workspace-hack", ] [[package]] @@ -2225,7 +2163,6 @@ dependencies = [ "glob", "tugger-windows-codesign", "walkdir", - "workspace-hack", ] [[package]] @@ -2448,7 +2385,6 @@ dependencies = [ "num_cpus", "walkdir", "which", - "workspace-hack", ] [[package]] @@ -2576,12 +2512,6 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - [[package]] name = "opener" version = "0.5.2" @@ -2665,7 +2595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4873306de53fe82e7e484df31e1e947d61514b6ea2ed6cd7b45d63006fd9224" dependencies = [ "cbc", - "cipher 0.4.4", + "cipher", "des", "getrandom 0.2.8", "hmac", @@ -2677,9 +2607,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" [[package]] name = "parking_lot" @@ -2704,29 +2634,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest", - "hmac", - "password-hash", - "sha2", -] - [[package]] name = "pem" version = "1.1.1" @@ -3284,7 +3191,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62c64daa8e9438b84aaae55010a93f396f8e60e3911590fcba770d04643fc1dd" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -3417,7 +3324,6 @@ version = "0.0.0" dependencies = [ "anki", "pyo3", - "workspace-hack", ] [[package]] @@ -3432,7 +3338,6 @@ dependencies = [ "junction", "termcolor", "which", - "workspace-hack", ] [[package]] @@ -4104,7 +4009,6 @@ dependencies = [ "libc", "mio", "num_cpus", - "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -5039,13 +4943,13 @@ dependencies = [ [[package]] name = "wiremock" -version = "0.5.17" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12316b50eb725e22b2f6b9c4cbede5b7b89984274d113a7440c86e5c3fc6f99b" +checksum = "c6f71803d3a1c80377a06221e0530be02035d5b3e854af56c6ece7ac20ac441d" dependencies = [ "assert-json-diff", "async-trait", - "base64 0.13.1", + "base64 0.21.0", "deadpool", "futures", "futures-timer", @@ -5059,55 +4963,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "workspace-hack" -version = "0.1.0" -dependencies = [ - "bytes", - "cc", - "clap 4.2.1", - "clap_builder", - "crossbeam-utils", - "either", - "flate2", - "futures-channel", - "futures-io", - "futures-util", - "getrandom 0.2.8", - "hashbrown", - "hmac", - "hyper", - "indexmap", - "itertools", - "log", - "num-traits", - "phf_shared 0.11.1", - "rand 0.8.5", - "rand_core 0.6.4", - "regex", - "regex-syntax", - "scopeguard", - "serde", - "serde_json", - "sha2", - "snafu", - "snafu-derive", - "syn 1.0.109", - "syn 2.0.18", - "time", - "tokio", - "tokio-util", - "tracing", - "tracing-core", - "url", - "zip", - "zstd 0.11.2+zstd.1.5.2", - "zstd 0.12.3+zstd.1.5.2", - "zstd-safe 5.0.2+zstd.1.5.2", - "zstd-safe 6.0.4+zstd.1.5.4", - "zstd-sys", -] - [[package]] name = "xattr" version = "0.2.3" @@ -5152,18 +5007,11 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" dependencies = [ - "aes", "byteorder", - "bzip2", - "constant_time_eq 0.1.5", "crc32fast", "crossbeam-utils", "flate2", - "hmac", - "pbkdf2", - "sha1", "time", - "zstd 0.11.2+zstd.1.5.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 19ed4b630..cbb2adf05 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,6 @@ members = [ "build/archives", "build/runner", "ftl", - "tools/workspace-hack", "tools/minilints", "qt/bundle/win", "qt/bundle/mac", @@ -28,6 +27,113 @@ members = [ exclude = ["qt/bundle"] resolver = "2" +[workspace.dependencies] +# local +anki = { path = "rslib" } +anki_i18n = { path = "rslib/i18n" } +anki_io = { path = "rslib/io" } +anki_proto = { path = "rslib/proto" } +anki_process = { path = "rslib/process" } +anki_proto_gen = { path = "rslib/proto_gen" } +ninja_gen = { "path" = "build/ninja_gen" } + +# forked +csv = { git = "https://github.com/ankitects/rust-csv.git", rev = "1c9d3aab6f79a7d815c69f925a46a4590c115f90" } +percent-encoding-iri = { git = "https://github.com/ankitects/rust-url.git", rev = "bb930b8d089f4d30d7d19c12e54e66191de47b88" } +linkcheck = { git = "https://github.com/ankitects/linkcheck.git", rev = "184b2ca50ed39ca43da13f0b830a463861adb9ca" } + +# pinned +unicase = "=2.6.0" # any changes could invalidate sqlite indexes + +# normal +ammonia = "3.3.0" +anyhow = "1.0.71" +apple-bundles = "0.17.0" +async-compression = { version = "0.3.15", features = ["zstd", "tokio"] } +async-stream = "0.3.4" +async-trait = "0.1.68" +axum = { version = "0.6.12", features = ["multipart", "macros", "headers"] } +axum-client-ip = "0.3.1" +blake3 = "1.3.3" +bytes = "1.4.0" +camino = "1.1.4" +chrono = { version = "0.4.26", default-features = false, features = ["std", "clock"] } +clap = { version = "4.2.1", features = ["derive"] } +coarsetime = "0.1.23" +convert_case = "0.6.0" +criterion = { version = "0.4.0" } +difflib = "0.4.0" +env_logger = "0.10.0" +flate2 = "1.0.25" +fluent = "0.16.0" +fluent-bundle = "0.15.2" +fluent-syntax = "0.11.0" +fnv = "1.0.7" +futures = "0.3.28" +glob = "0.3.1" +globset = "0.4.10" +hex = "0.4.3" +htmlescape = "0.3.1" +hyper = "0.14.25" +id_tree = "1.8.0" +inflections = "1.1.1" +intl-memoizer = "0.5.1" +itertools = "0.10.5" +junction = "1.0.0" +lazy_static = "1.4.0" +maplit = "1.0.2" +nom = "7.1.3" +num-format = "0.4.4" +num_cpus = "1.15.0" +num_enum = "0.6.1" +once_cell = "1.17.1" +phf = { version = "0.11.1", features = ["macros"] } +pin-project = "1.0.12" +plist = "1.4.3" +prettyplease = "0.2.7" +prost = "0.11.8" +prost-build = "0.11.9" +prost-reflect = "0.11.4" +prost-types = "0.11.9" +pulldown-cmark = "0.9.2" +pyo3 = { version = "0.18.2", features = ["extension-module", "abi3", "abi3-py39"] } +rand = "0.8.5" +regex = "1.7.3" +reqwest = { version = "0.11.16", default-features = false, features = ["json", "socks", "stream", "multipart"] } +rusqlite = { version = "0.29.0", features = ["trace", "functions", "collation", "bundled"] } +scopeguard = "1.1.0" +serde = { version = "1.0.159", features = ["derive"] } +serde-aux = "4.1.2" +serde_json = "1.0.95" +serde_repr = "0.1.12" +serde_tuple = "0.5.0" +sha1 = "0.10.5" +sha2 = { version = "0.10.6" } +simple-file-manifest = "0.11.0" +snafu = { version = "0.7.4", features = ["backtraces", "rust_1_61"] } +strum = { version = "0.24.1", features = ["derive"] } +syn = { version = "2.0.18", features = ["parsing", "printing"] } +tar = "0.4.38" +tempfile = "3.5.0" +termcolor = "1.2.0" +tokio = { version = "1.27", features = ["fs", "rt-multi-thread", "macros", "signal"] } +tokio-util = { version = "0.7.7", features = ["io"] } +tower-http = { version = "0.4.0", features = ["trace"] } +tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_debug"] } +tracing-appender = "0.2.2" +tracing-subscriber = { version = "0.3.16", features = ["fmt", "env-filter"] } +tugger-windows-codesign = "0.10.0" +unic-langid = { version = "0.9.1", features = ["macros"] } +unic-ucd-category = "0.9.0" +unicode-normalization = "0.1.22" +utime = "0.3.1" +walkdir = "2.3.3" +which = "4.4.0" +wiremock = "0.5.17" +xz2 = "0.1.7" +zip = { version = "0.6.4", default-features = false, features = ["deflate", "time"] } +zstd = { version = "0.12.3", features = ["zstdmt"] } + # Apply mild optimizations to our dependencies in dev mode, which among other things # improves sha2 performance by about 21x. Opt 1 chosen due to # https://doc.rust-lang.org/cargo/reference/profiles.html#overrides-and-generics. This diff --git a/build/archives/Cargo.toml b/build/archives/Cargo.toml index 05e6a1dce..36eb12a3b 100644 --- a/build/archives/Cargo.toml +++ b/build/archives/Cargo.toml @@ -1,29 +1,24 @@ [package] name = "archives" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [dependencies] -anki_io = { version = "0.0.0", path = "../../rslib/io" } -camino = "1.1.4" -flate2 = "1.0.25" -sha2 = { version = "0.10.6" } -tar = "0.4.38" -tokio = { version = "1.27.0", features = ["macros", "rt-multi-thread"] } -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } -xz2 = "0.1.7" -zip = "0.6.4" -zstd = "0.12.3" +anki_io.workspace = true +camino.workspace = true +flate2.workspace = true +reqwest.workspace = true +sha2.workspace = true +tar.workspace = true +tokio.workspace = true +xz2.workspace = true +zip.workspace = true +zstd.workspace = true [features] rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"] native-tls = ["reqwest/native-tls"] - -[dependencies.reqwest] -version = "0.11.16" -default-features = false diff --git a/build/configure/Cargo.toml b/build/configure/Cargo.toml index ed362a738..a41df4eea 100644 --- a/build/configure/Cargo.toml +++ b/build/configure/Cargo.toml @@ -1,15 +1,13 @@ [package] name = "configure" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [dependencies] -anyhow = "1.0.71" -itertools = "0.10.5" -ninja_gen = { "path" = "../ninja_gen" } -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } +anyhow.workspace = true +itertools.workspace = true +ninja_gen.workspace = true diff --git a/build/ninja_gen/Cargo.toml b/build/ninja_gen/Cargo.toml index 7f7079334..6beef54bd 100644 --- a/build/ninja_gen/Cargo.toml +++ b/build/ninja_gen/Cargo.toml @@ -1,22 +1,20 @@ [package] name = "ninja_gen" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [dependencies] -anki_io = { version = "0.0.0", path = "../../rslib/io" } -anyhow = "1.0.71" -camino = "1.1.4" -globset = "0.4.10" -itertools = "0.10.5" -lazy_static = "1.4.0" -maplit = "1.0.2" -num_cpus = "1.15.0" -walkdir = "2.3.3" -which = "4.4.0" -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } +anki_io.workspace = true +anyhow.workspace = true +camino.workspace = true +globset.workspace = true +itertools.workspace = true +lazy_static.workspace = true +maplit.workspace = true +num_cpus.workspace = true +walkdir.workspace = true +which.workspace = true diff --git a/build/ninja_gen/src/configure.rs b/build/ninja_gen/src/configure.rs index 211ed1500..368591cf5 100644 --- a/build/ninja_gen/src/configure.rs +++ b/build/ninja_gen/src/configure.rs @@ -31,12 +31,7 @@ impl BuildAction for ConfigureBuild { inputs: inputs![glob!["build/**/*"]], outputs: &[RustOutput::Binary("configure")], target: None, - // we ensure runner is up to date, but don't declare it as output, - // as ninja will try to clean up stale outputs, and that fails on - // Windows. The ninja wrapper script should ensure the runner is up to - // date anyway, but advanced users can invoke ninja directly to save - // the ~80+ms it takes cargo to check that the runner is up to date. - extra_args: "-p configure -p runner", + extra_args: "-p configure", release_override: Some(false), }, )?; diff --git a/build/runner/Cargo.toml b/build/runner/Cargo.toml index 65dcd975a..8d908170f 100644 --- a/build/runner/Cargo.toml +++ b/build/runner/Cargo.toml @@ -1,20 +1,18 @@ [package] name = "runner" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [dependencies] -anki_io = { version = "0.0.0", path = "../../rslib/io" } -anyhow = "1.0.71" -camino = "1.1.4" -clap = { version = "4.2.1", features = ["derive"] } -itertools = "0.10.5" -junction = "1.0.0" -termcolor = "1.2.0" -which = "4.4.0" -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } +anki_io.workspace = true +anyhow.workspace = true +camino.workspace = true +clap.workspace = true +itertools.workspace = true +junction.workspace = true +termcolor.workspace = true +which.workspace = true diff --git a/cargo/licenses.json b/cargo/licenses.json index d409f97e0..b738c5478 100644 --- a/cargo/licenses.json +++ b/cargo/licenses.json @@ -17,15 +17,6 @@ "license_file": null, "description": "A simple clean-room implementation of the Adler-32 checksum" }, - { - "name": "aes", - "version": "0.7.5", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/block-ciphers", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Pure Rust implementation of the Advanced Encryption Standard (a.k.a. Rijndael) including support for AES in counter mode (a.k.a. AES-CTR)" - }, { "name": "ahash", "version": "0.7.6", @@ -116,42 +107,6 @@ "license_file": null, "description": "Helpers for interface code generation" }, - { - "name": "anstream", - "version": "0.2.6", - "authors": null, - "repository": "https://github.com/rust-cli/anstyle.git", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "A simple cross platform library for writing colored text to a terminal." - }, - { - "name": "anstyle", - "version": "0.3.5", - "authors": null, - "repository": "https://github.com/rust-cli/anstyle.git", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "ANSI text styling" - }, - { - "name": "anstyle-parse", - "version": "0.1.1", - "authors": null, - "repository": "https://github.com/rust-cli/anstyle.git", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Parse ANSI Style Escapes" - }, - { - "name": "anstyle-wincon", - "version": "0.2.0", - "authors": null, - "repository": "https://github.com/rust-cli/anstyle.git", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Styling legacy Windows terminals" - }, { "name": "anyhow", "version": "1.0.71", @@ -208,7 +163,7 @@ }, { "name": "async-stream", - "version": "0.3.4", + "version": "0.3.5", "authors": "Carl Lerche ", "repository": "https://github.com/tokio-rs/async-stream", "license": "MIT", @@ -217,7 +172,7 @@ }, { "name": "async-stream-impl", - "version": "0.3.4", + "version": "0.3.5", "authors": "Carl Lerche ", "repository": "https://github.com/tokio-rs/async-stream", "license": "MIT", @@ -305,15 +260,6 @@ "license_file": null, "description": "encodes and decodes base64 as bytes or utf8" }, - { - "name": "base64ct", - "version": "1.6.0", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/formats/tree/master/base64ct", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Pure Rust implementation of Base64 (RFC 4648) which avoids any usages of data-dependent branches/LUTs and thereby provides portable \"best effort\" constant-time operation and embedded-friendly no_std support" - }, { "name": "bitflags", "version": "1.3.2", @@ -386,24 +332,6 @@ "license_file": null, "description": "Types and traits for working with bytes" }, - { - "name": "bzip2", - "version": "0.4.4", - "authors": "Alex Crichton ", - "repository": "https://github.com/alexcrichton/bzip2-rs", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Bindings to libbzip2 for bzip2 compression and decompression exposed as Reader/Writer streams." - }, - { - "name": "bzip2-sys", - "version": "0.1.11+1.0.8", - "authors": "Alex Crichton ", - "repository": "https://github.com/alexcrichton/bzip2-rs", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Bindings to libbzip2 for bzip2 compression and decompression exposed as Reader/Writer streams." - }, { "name": "cc", "version": "1.0.79", @@ -431,51 +359,6 @@ "license_file": null, "description": "Date and time library for Rust" }, - { - "name": "cipher", - "version": "0.3.0", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/traits", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Traits for describing block ciphers and stream ciphers" - }, - { - "name": "clap", - "version": "4.2.1", - "authors": null, - "repository": "https://github.com/clap-rs/clap", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "A simple to use, efficient, and full-featured Command Line Argument Parser" - }, - { - "name": "clap_builder", - "version": "4.2.1", - "authors": null, - "repository": "https://github.com/clap-rs/clap", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "A simple to use, efficient, and full-featured Command Line Argument Parser" - }, - { - "name": "clap_derive", - "version": "4.2.0", - "authors": null, - "repository": "https://github.com/clap-rs/clap/tree/master/clap_derive", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Parse command line argument by defining a struct, derive crate." - }, - { - "name": "clap_lex", - "version": "0.4.1", - "authors": null, - "repository": "https://github.com/clap-rs/clap/tree/master/clap_lex", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Minimal, flexible command line parser" - }, { "name": "coarsetime", "version": "0.1.23", @@ -494,42 +377,15 @@ "license_file": null, "description": "Beautiful diagnostic reporting for text-based programming languages" }, - { - "name": "concolor-override", - "version": "1.0.0", - "authors": null, - "repository": "https://github.com/rust-cli/concolor", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Global override of color control" - }, - { - "name": "concolor-query", - "version": "0.3.3", - "authors": null, - "repository": "https://github.com/rust-cli/concolor", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Look up colored console capabilities" - }, { "name": "concurrent-queue", - "version": "2.1.0", + "version": "2.2.0", "authors": "Stjepan Glavina |Taiki Endo |John Nunley ", "repository": "https://github.com/smol-rs/concurrent-queue", "license": "Apache-2.0 OR MIT", "license_file": null, "description": "Concurrent multi-producer multi-consumer queue" }, - { - "name": "constant_time_eq", - "version": "0.1.5", - "authors": "Cesar Eduardo Barros ", - "repository": "https://github.com/cesarb/constant_time_eq", - "license": "CC0-1.0", - "license_file": null, - "description": "Compares two equal-sized byte strings in constant time." - }, { "name": "constant_time_eq", "version": "0.2.5", @@ -955,7 +811,7 @@ }, { "name": "futures-lite", - "version": "1.12.0", + "version": "1.13.0", "authors": "Stjepan Glavina |Contributors to futures-rs", "repository": "https://github.com/smol-rs/futures-lite", "license": "Apache-2.0 OR MIT", @@ -1133,15 +989,6 @@ "license_file": null, "description": "Encoding and decoding data into/from hexadecimal representation." }, - { - "name": "hmac", - "version": "0.12.1", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/MACs", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Generic implementation of Hash-based Message Authentication Code (HMAC)" - }, { "name": "html5ever", "version": "0.26.0", @@ -1700,15 +1547,6 @@ "license_file": null, "description": "Single assignment cells and lazy values." }, - { - "name": "opaque-debug", - "version": "0.3.0", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/utils", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Macro for opaque Debug trait implementation" - }, { "name": "openssl", "version": "0.10.55", @@ -1756,9 +1594,9 @@ }, { "name": "parking", - "version": "2.0.0", + "version": "2.1.0", "authors": "Stjepan Glavina |The Rust Project Developers", - "repository": "https://github.com/stjepang/parking", + "repository": "https://github.com/smol-rs/parking", "license": "Apache-2.0 OR MIT", "license_file": null, "description": "Thread parking and unparking" @@ -1781,24 +1619,6 @@ "license_file": null, "description": "An advanced API for creating custom synchronization primitives." }, - { - "name": "password-hash", - "version": "0.4.2", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/traits/tree/master/password-hash", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Traits which describe the functionality of password hashing algorithms, as well as a `no_std`-friendly implementation of the PHC string format (a well-defined subset of the Modular Crypt Format a.k.a. MCF)" - }, - { - "name": "pbkdf2", - "version": "0.11.0", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/password-hashes/tree/master/pbkdf2", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Generic implementation of PBKDF2" - }, { "name": "percent-encoding", "version": "2.2.0", @@ -2447,15 +2267,6 @@ "license_file": null, "description": "SHA-1 hash function" }, - { - "name": "sha2", - "version": "0.10.6", - "authors": "RustCrypto Developers", - "repository": "https://github.com/RustCrypto/hashes", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512." - }, { "name": "sharded-slab", "version": "0.1.4", @@ -2573,15 +2384,6 @@ "license_file": null, "description": "A codegen library for string-cache, developed as part of the Servo project." }, - { - "name": "strsim", - "version": "0.10.0", - "authors": "Danny Guo ", - "repository": "https://github.com/dguo/strsim-rs", - "license": "MIT", - "license_file": null, - "description": "Implementations of string similarity metrics. Includes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice." - }, { "name": "strum", "version": "0.24.1", @@ -2663,15 +2465,6 @@ "license_file": null, "description": "A simple cross platform library for writing colored text to a terminal." }, - { - "name": "terminal_size", - "version": "0.2.6", - "authors": "Andrew Chin ", - "repository": "https://github.com/eminence/terminal-size", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Gets the size of your Linux or Windows terminal" - }, { "name": "thiserror", "version": "1.0.40", @@ -3104,15 +2897,6 @@ "license_file": null, "description": "Incremental, zero-copy UTF-8 decoding with error handling" }, - { - "name": "utf8parse", - "version": "0.2.1", - "authors": "Joe Wilm |Christian Duerr ", - "repository": "https://github.com/alacritty/vte", - "license": "Apache-2.0 OR MIT", - "license_file": null, - "description": "Table-driven UTF-8 parser" - }, { "name": "utime", "version": "0.3.1", @@ -3520,22 +3304,13 @@ }, { "name": "wiremock", - "version": "0.5.17", + "version": "0.5.19", "authors": "Luca Palmieri ", "repository": "https://github.com/LukeMathWalker/wiremock-rs", "license": "Apache-2.0 OR MIT", "license_file": null, "description": "HTTP mocking to test Rust applications." }, - { - "name": "workspace-hack", - "version": "0.1.0", - "authors": null, - "repository": null, - "license": null, - "license_file": null, - "description": "workspace-hack package, managed by hakari" - }, { "name": "zip", "version": "0.6.4", diff --git a/ftl/Cargo.toml b/ftl/Cargo.toml index 9adce3525..598e343bc 100644 --- a/ftl/Cargo.toml +++ b/ftl/Cargo.toml @@ -1,11 +1,10 @@ [package] name = "ftl" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [[bin]] @@ -13,6 +12,5 @@ name = "ftl-sync" path = "sync.rs" [dependencies] -camino = "1.1.4" -snafu = { version = "0.7.4" } -workspace-hack = { version = "0.1", path = "../tools/workspace-hack" } +camino.workspace = true +snafu.workspace = true diff --git a/pylib/rsbridge/Cargo.toml b/pylib/rsbridge/Cargo.toml index 6d5d1a4b8..fbe76c8a5 100644 --- a/pylib/rsbridge/Cargo.toml +++ b/pylib/rsbridge/Cargo.toml @@ -1,28 +1,22 @@ [package] name = "rsbridge" -publish = false -description = "Anki's Rust library code Python bindings" - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true - -[dependencies] -anki = { path = "../../rslib" } -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } - -# /cargo/update.py needs to be run if updating the version below -[dependencies.pyo3] -version = "0.18.2" -features = ["extension-module", "abi3", "abi3-py39"] +description = "Anki's Rust library code Python bindings" [lib] name = "rsbridge" crate-type = ["cdylib"] path = "lib.rs" +[dependencies] +anki.workspace = true +pyo3.workspace = true + [features] rustls = ["anki/rustls"] native-tls = ["anki/native-tls"] diff --git a/qt/bundle/mac/Cargo.toml b/qt/bundle/mac/Cargo.toml index ded7c6885..372b7eb0b 100644 --- a/qt/bundle/mac/Cargo.toml +++ b/qt/bundle/mac/Cargo.toml @@ -1,23 +1,21 @@ [package] name = "makeapp" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [dependencies] -anyhow = "1.0.70" -apple-bundles = "0.17.0" -camino = "1.1.4" -clap = { version = "4.2.1", features = ["derive"] } -glob = "0.3.1" -lazy_static = "1.4.0" -plist = "1.4.3" -serde = { version = "1.0.159", features = ["derive"] } -serde_json = "1.0.95" -simple-file-manifest = "0.11.0" -walkdir = "2.3.3" -workspace-hack = { version = "0.1", path = "../../../tools/workspace-hack" } +anyhow.workspace = true +apple-bundles.workspace = true +camino.workspace = true +clap.workspace = true +glob.workspace = true +lazy_static.workspace = true +plist.workspace = true +serde.workspace = true +serde_json.workspace = true +simple-file-manifest.workspace = true +walkdir.workspace = true diff --git a/qt/bundle/win/Cargo.toml b/qt/bundle/win/Cargo.toml index b6ba0acfc..ccf7cf32a 100644 --- a/qt/bundle/win/Cargo.toml +++ b/qt/bundle/win/Cargo.toml @@ -1,18 +1,16 @@ [package] name = "makeinstall" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [dependencies] -anyhow = "1.0.70" -camino = "1.1.4" -clap = { version = "4.2.1", features = ["derive"] } -glob = "0.3.1" -tugger-windows-codesign = "0.10.0" -walkdir = "2.3.3" -workspace-hack = { version = "0.1", path = "../../../tools/workspace-hack" } +anyhow.workspace = true +camino.workspace = true +clap.workspace = true +glob.workspace = true +tugger-windows-codesign.workspace = true +walkdir.workspace = true diff --git a/rslib/Cargo.toml b/rslib/Cargo.toml index 8242007dc..61e6404cf 100644 --- a/rslib/Cargo.toml +++ b/rslib/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "anki" -publish = false -description = "Anki's Rust library code" - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true +workspace = ".." +description = "Anki's Rust library code" [features] bench = ["criterion"] @@ -20,94 +20,85 @@ harness = false required-features = ["bench"] [build-dependencies] -anki_io = { version = "0.0.0", path = "io" } -anki_proto = { version = "0.0.0", path = "proto" } -anki_proto_gen = { version = "0.0.0", path = "proto_gen" } -anyhow = "1.0.71" -inflections = "1.1.1" -itertools = "0.10.5" -prettyplease = "0.2.7" -prost = "0.11.8" -prost-reflect = "0.11.4" -syn = { version = "2.0.18", features = ["parsing", "printing"] } +anki_io.workspace = true +anki_proto.workspace = true +anki_proto_gen.workspace = true +anyhow.workspace = true +inflections.workspace = true +itertools.workspace = true +prettyplease.workspace = true +prost.workspace = true +prost-reflect.workspace = true +syn.workspace = true [dev-dependencies] -async-stream = "0.3.4" -env_logger = "0.10.0" -wiremock = "0.5.17" - -[dependencies.reqwest] -version = "0.11.16" -default-features = false -features = ["json", "socks", "stream", "multipart"] +async-stream.workspace = true +env_logger.workspace = true +wiremock.workspace = true [dependencies] -anki_i18n = { path = "i18n" } -anki_io = { path = "io" } -anki_proto = { path = "proto" } -workspace-hack = { version = "0.1", path = "../tools/workspace-hack" } +criterion = { workspace = true, optional = true } -csv = { git = "https://github.com/ankitects/rust-csv.git", rev = "1c9d3aab6f79a7d815c69f925a46a4590c115f90" } -percent-encoding-iri = { git = "https://github.com/ankitects/rust-url.git", rev = "bb930b8d089f4d30d7d19c12e54e66191de47b88" } - -# pinned as any changes could invalidate sqlite indexes -unicase = "=2.6.0" - -criterion = { version = "0.4.0", optional = true } - -ammonia = "3.3.0" -async-compression = { version = "0.3.15", features = ["zstd", "tokio"] } -async-trait = "0.1.68" -axum = { version = "0.6.12", features = ["multipart", "macros", "headers"] } -axum-client-ip = "0.3.1" -blake3 = "1.3.3" -bytes = "1.4.0" -chrono = { version = "0.4.26", default-features = false, features = ["std", "clock"] } -coarsetime = "0.1.23" -convert_case = "0.6.0" -difflib = "0.4.0" -flate2 = "1.0.25" -fluent = "0.16.0" -fluent-bundle = "0.15.2" -fnv = "1.0.7" -futures = "0.3.28" -hex = "0.4.3" -htmlescape = "0.3.1" -hyper = "0.14.25" -id_tree = "1.8.0" -itertools = "0.10.5" -lazy_static = "1.4.0" -nom = "7.1.3" -num_cpus = "1.15.0" -num_enum = "0.6.1" -once_cell = "1.17.1" -pin-project = "1.0.12" -prost = "0.11.8" -pulldown-cmark = "0.9.2" -rand = "0.8.5" -regex = "1.7.3" -rusqlite = { version = "0.29.0", features = ["trace", "functions", "collation", "bundled"] } -scopeguard = "1.1.0" -serde = { version = "1.0.159", features = ["derive"] } -serde-aux = "4.1.2" -serde_json = "1.0.95" -serde_repr = "0.1.12" -serde_tuple = "0.5.0" -sha1 = "0.10.5" -snafu = { version = "0.7.4", features = ["backtraces", "rust_1_61"] } -strum = { version = "0.24.1", features = ["derive"] } -tempfile = "3.5.0" -tokio = { version = "1.27", features = ["fs", "rt-multi-thread", "macros", "signal"] } -tokio-util = { version = "0.7.7", features = ["io"] } -tower-http = { version = "0.4.0", features = ["trace"] } -tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_debug"] } -tracing-appender = "0.2.2" -tracing-subscriber = { version = "0.3.16", features = ["fmt", "env-filter"] } -unic-ucd-category = "0.9.0" -unicode-normalization = "0.1.22" -utime = "0.3.1" -zip = { version = "0.6.4", default-features = false, features = ["deflate", "time"] } -zstd = { version = "0.12.3", features = ["zstdmt"] } +ammonia.workspace = true +anki_i18n.workspace = true +anki_io.workspace = true +anki_proto.workspace = true +async-compression.workspace = true +async-trait.workspace = true +axum.workspace = true +axum-client-ip.workspace = true +blake3.workspace = true +bytes.workspace = true +chrono.workspace = true +coarsetime.workspace = true +convert_case.workspace = true +csv.workspace = true +difflib.workspace = true +flate2.workspace = true +fluent.workspace = true +fluent-bundle.workspace = true +fnv.workspace = true +futures.workspace = true +hex.workspace = true +htmlescape.workspace = true +hyper.workspace = true +id_tree.workspace = true +itertools.workspace = true +lazy_static.workspace = true +nom.workspace = true +num_cpus.workspace = true +num_enum.workspace = true +once_cell.workspace = true +percent-encoding-iri.workspace = true +pin-project.workspace = true +prost.workspace = true +pulldown-cmark.workspace = true +rand.workspace = true +regex.workspace = true +reqwest.workspace = true +rusqlite.workspace = true +scopeguard.workspace = true +serde.workspace = true +serde-aux.workspace = true +serde_json.workspace = true +serde_repr.workspace = true +serde_tuple.workspace = true +sha1.workspace = true +snafu.workspace = true +strum.workspace = true +tempfile.workspace = true +tokio.workspace = true +tokio-util.workspace = true +tower-http.workspace = true +tracing.workspace = true +tracing-appender.workspace = true +tracing-subscriber.workspace = true +unic-ucd-category.workspace = true +unicase.workspace = true +unicode-normalization.workspace = true +utime.workspace = true +zip.workspace = true +zstd.workspace = true [target.'cfg(windows)'.dependencies.windows] version = "0.48.0" diff --git a/rslib/i18n/Cargo.toml b/rslib/i18n/Cargo.toml index dacb7713a..c6105f9c5 100644 --- a/rslib/i18n/Cargo.toml +++ b/rslib/i18n/Cargo.toml @@ -1,36 +1,34 @@ [package] name = "anki_i18n" -build = "build/main.rs" -publish = false -description = "Anki's Rust library i18n code" - version.workspace = true authors.workspace = true +build = "build/main.rs" edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true +description = "Anki's Rust library i18n code" [lib] name = "anki_i18n" path = "src/lib.rs" [build-dependencies] -fluent-syntax = "0.11.0" -fluent = "0.16.0" -unic-langid = { version = "0.9.1", features = ["macros"] } -serde = { version = "1.0.159", features = ["derive"] } -serde_json = "1.0.95" -inflections = "1.1.1" -anki_io = { version = "0.0.0", path = "../io" } -anyhow = "1.0.71" +fluent-syntax.workspace = true +fluent.workspace = true +unic-langid.workspace = true +serde.workspace = true +serde_json.workspace = true +inflections.workspace = true +anki_io.workspace = true +anyhow.workspace = true [dependencies] -fluent = "0.16.0" -fluent-bundle = "0.15.2" -intl-memoizer = "0.5.1" -num-format = "0.4.4" -phf = { version = "0.11.1", features = ["macros"] } -serde = { version = "1.0.159", features = ["derive"] } -serde_json = "1.0.95" -unic-langid = { version = "0.9.1", features = ["macros"] } -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } +fluent.workspace = true +fluent-bundle.workspace = true +intl-memoizer.workspace = true +num-format.workspace = true +phf.workspace = true +serde.workspace = true +serde_json.workspace = true +unic-langid.workspace = true diff --git a/rslib/i18n_helpers/Cargo.toml b/rslib/i18n_helpers/Cargo.toml index 220949651..b7d51cd4d 100644 --- a/rslib/i18n_helpers/Cargo.toml +++ b/rslib/i18n_helpers/Cargo.toml @@ -1,24 +1,20 @@ [package] name = "anki_i18n_helpers" -publish = false -description = "Helpers for Anki's i18n system" - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true +description = "Helpers for Anki's i18n system" [lib] name = "anki_i18n_helpers" path = "src/lib.rs" -# After updating anything below, run ../cargo/update.py - [dependencies] -fluent-syntax = "0.11.0" -lazy_static = "1.4.0" -regex = "1.7.3" -serde_json = "1.0.95" -walkdir = "2" -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } +fluent-syntax.workspace = true +lazy_static.workspace = true +regex.workspace = true +serde_json.workspace = true +walkdir.workspace = true diff --git a/rslib/io/Cargo.toml b/rslib/io/Cargo.toml index 5e26b924d..37ba8eca4 100644 --- a/rslib/io/Cargo.toml +++ b/rslib/io/Cargo.toml @@ -1,14 +1,13 @@ [package] name = "anki_io" -publish = false -description = "Utils for better I/O error reporting" - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true +description = "Utils for better I/O error reporting" [dependencies] -snafu = "0.7.4" -tempfile = "3.6.0" +snafu.workspace = true +tempfile.workspace = true diff --git a/rslib/linkchecker/Cargo.toml b/rslib/linkchecker/Cargo.toml index d26de56f9..c9a5a9ebb 100644 --- a/rslib/linkchecker/Cargo.toml +++ b/rslib/linkchecker/Cargo.toml @@ -1,34 +1,23 @@ [package] name = "linkchecker" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true -# [[test]] -# name = "links" -# required-features = ["links"] - [dependencies] -anki = { path = ".." } - -linkcheck = { git = "https://github.com/ankitects/linkcheck.git", rev = "184b2ca50ed39ca43da13f0b830a463861adb9ca" } - -futures = "0.3.28" -itertools = "0.10.5" -lazy_static = "1.4.0" -regex = "1.7.3" -strum = { version = "0.24.1", features = ["derive"] } -tokio = { version = "1.27.0", features = ["full"] } -workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } +anki.workspace = true +futures.workspace = true +itertools.workspace = true +lazy_static.workspace = true +linkcheck.workspace = true +regex.workspace = true +reqwest.workspace = true +strum.workspace = true +tokio.workspace = true [features] rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"] native-tls = ["reqwest/native-tls"] - -[dependencies.reqwest] -version = "0.11.16" -default-features = false diff --git a/rslib/process/Cargo.toml b/rslib/process/Cargo.toml index eb0ee2420..f89b13d2f 100644 --- a/rslib/process/Cargo.toml +++ b/rslib/process/Cargo.toml @@ -1,14 +1,13 @@ [package] name = "anki_process" -publish = false -description = "Utils for better process error reporting" - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true +description = "Utils for better process error reporting" [dependencies] -itertools = "0.10.5" -snafu = "0.7.4" +itertools.workspace = true +snafu.workspace = true diff --git a/rslib/proto/Cargo.toml b/rslib/proto/Cargo.toml index f96283a38..dc5add6e2 100644 --- a/rslib/proto/Cargo.toml +++ b/rslib/proto/Cargo.toml @@ -1,27 +1,26 @@ [package] name = "anki_proto" -publish = false -description = "Anki's Rust library protobuf code" - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true +description = "Anki's Rust library protobuf code" [build-dependencies] -anki_io = { version = "0.0.0", path = "../io" } -anki_proto_gen = { version = "0.0.0", path = "../proto_gen" } -anyhow = "1.0.71" -inflections = "1.1.1" -itertools = "0.10.5" -prost-build = "0.11.9" -prost-reflect = "0.11.4" -prost-types = "0.11.9" +anki_io.workspace = true +anki_proto_gen.workspace = true +anyhow.workspace = true +inflections.workspace = true +itertools.workspace = true +prost-build.workspace = true +prost-reflect.workspace = true +prost-types.workspace = true [dependencies] -num_enum = "0.6.1" -prost = "0.11.9" -serde = { version = "1.0.164", features = ["derive"] } -snafu = "0.7.4" -strum = { version = "0.24.1", features = ["derive"] } +num_enum.workspace = true +prost.workspace = true +serde.workspace = true +snafu.workspace = true +strum.workspace = true diff --git a/rslib/proto_gen/Cargo.toml b/rslib/proto_gen/Cargo.toml index f5b057f9a..244cb2361 100644 --- a/rslib/proto_gen/Cargo.toml +++ b/rslib/proto_gen/Cargo.toml @@ -10,7 +10,7 @@ license.workspace = true rust-version.workspace = true [dependencies] -inflections = "1.1.1" -itertools = "0.10.5" -prost-reflect = "0.11.4" -prost-types = "0.11.9" +inflections.workspace = true +itertools.workspace = true +prost-reflect.workspace = true +prost-types.workspace = true diff --git a/tools/minilints/Cargo.toml b/tools/minilints/Cargo.toml index f9af8dc6f..3c284ada5 100644 --- a/tools/minilints/Cargo.toml +++ b/tools/minilints/Cargo.toml @@ -1,18 +1,17 @@ [package] name = "minilints" -publish = false - version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true +publish = false rust-version.workspace = true [dependencies] -anki_io = { version = "0.0.0", path = "../../rslib/io" } -anki_process = { version = "0.0.0", path = "../../rslib/process" } -anyhow = "1.0.71" -camino = "1.1.4" -once_cell = "1.17.1" -walkdir = "2.3.3" -which = "4.4.0" +anki_io.workspace = true +anki_process.workspace = true +anyhow.workspace = true +camino.workspace = true +once_cell.workspace = true +walkdir.workspace = true +which.workspace = true diff --git a/tools/minilints/src/main.rs b/tools/minilints/src/main.rs index b64d61b5a..9c2315af8 100644 --- a/tools/minilints/src/main.rs +++ b/tools/minilints/src/main.rs @@ -186,7 +186,6 @@ impl LintContext { if licenses != existing_licenses { if self.want_fix { check_cargo_deny()?; - update_hakari()?; write_file(license_path, licenses)?; } else { println!("cargo/licenses.json is out of date; run ./ninja fix:minilints"); @@ -203,12 +202,6 @@ fn check_cargo_deny() -> Result<()> { Ok(()) } -fn update_hakari() -> Result<()> { - Command::run("cargo install cargo-hakari@0.9.23")?; - Command::run("cargo hakari generate")?; - Ok(()) -} - fn head_of_file(path: &Utf8Path) -> Result { let mut file = File::open(path)?; let mut buffer = vec![0; 256]; diff --git a/tools/workspace-hack/.gitattributes b/tools/workspace-hack/.gitattributes deleted file mode 100644 index 3e9dba4b6..000000000 --- a/tools/workspace-hack/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -# Avoid putting conflict markers in the generated Cargo.toml file, since their presence breaks -# Cargo. -# Also do not check out the file as CRLF on Windows, as that's what hakari needs. -Cargo.toml merge=binary -crlf diff --git a/tools/workspace-hack/Cargo.toml b/tools/workspace-hack/Cargo.toml deleted file mode 100644 index 9f7eed4fe..000000000 --- a/tools/workspace-hack/Cargo.toml +++ /dev/null @@ -1,102 +0,0 @@ -# This file is generated by `cargo hakari`. -# To regenerate, run: -# cargo hakari generate - -[package] -name = "workspace-hack" -version = "0.1.0" -# You can choose to publish this crate: see https://docs.rs/cargo-hakari/latest/cargo_hakari/publishing. -publish = false -description = "workspace-hack package, managed by hakari" - -# The parts of the file between the BEGIN HAKARI SECTION and END HAKARI SECTION comments -# are managed by hakari. - -### BEGIN HAKARI SECTION -[dependencies] -bytes = { version = "1" } -clap = { version = "4", features = ["cargo", "derive", "wrap_help"] } -clap_builder = { version = "4", default-features = false, features = ["cargo", "color", "std", "suggestions", "usage", "wrap_help"] } -crossbeam-utils = { version = "0.8" } -either = { version = "1" } -flate2 = { version = "1" } -futures-channel = { version = "0.3", features = ["sink"] } -futures-io = { version = "0.3" } -futures-util = { version = "0.3", features = ["channel", "io", "sink"] } -getrandom = { version = "0.2", default-features = false, features = ["std"] } -hashbrown = { version = "0.12", features = ["raw"] } -hmac = { version = "0.12", default-features = false, features = ["reset"] } -hyper = { version = "0.14", features = ["full"] } -indexmap = { version = "1", default-features = false, features = ["std"] } -itertools = { version = "0.10" } -log = { version = "0.4", default-features = false, features = ["std"] } -num-traits = { version = "0.2" } -phf_shared = { version = "0.11", default-features = false, features = ["std"] } -rand = { version = "0.8", features = ["small_rng"] } -rand_core = { version = "0.6", default-features = false, features = ["std"] } -regex = { version = "1" } -regex-syntax = { version = "0.6" } -scopeguard = { version = "1" } -serde = { version = "1", features = ["alloc", "derive", "rc"] } -serde_json = { version = "1", features = ["raw_value"] } -sha2 = { version = "0.10" } -snafu = { version = "0.7", features = ["backtraces", "rust_1_61"] } -time = { version = "0.3", features = ["formatting", "parsing"] } -tokio = { version = "1", features = ["full"] } -tokio-util = { version = "0.7", features = ["codec", "io"] } -tracing = { version = "0.1", features = ["log", "max_level_trace", "release_max_level_debug"] } -tracing-core = { version = "0.1" } -url = { version = "2", features = ["serde"] } -zip = { version = "0.6" } -zstd-5ef9efb8ec2df382 = { package = "zstd", version = "0.12", features = ["zstdmt"] } -zstd-a6292c17cd707f01 = { package = "zstd", version = "0.11" } -zstd-safe-a490c3000a992113 = { package = "zstd-safe", version = "6", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder", "zstdmt"] } -zstd-safe-cdf1610d3e1514e9 = { package = "zstd-safe", version = "5", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder"] } -zstd-sys = { version = "2", default-features = false, features = ["legacy", "std", "zdict_builder", "zstdmt"] } - -[build-dependencies] -bytes = { version = "1" } -cc = { version = "1", default-features = false, features = ["parallel"] } -clap = { version = "4", features = ["cargo", "derive", "wrap_help"] } -clap_builder = { version = "4", default-features = false, features = ["cargo", "color", "std", "suggestions", "usage", "wrap_help"] } -crossbeam-utils = { version = "0.8" } -either = { version = "1" } -flate2 = { version = "1" } -futures-channel = { version = "0.3", features = ["sink"] } -futures-io = { version = "0.3" } -futures-util = { version = "0.3", features = ["channel", "io", "sink"] } -getrandom = { version = "0.2", default-features = false, features = ["std"] } -hashbrown = { version = "0.12", features = ["raw"] } -hmac = { version = "0.12", default-features = false, features = ["reset"] } -hyper = { version = "0.14", features = ["full"] } -indexmap = { version = "1", default-features = false, features = ["std"] } -itertools = { version = "0.10" } -log = { version = "0.4", default-features = false, features = ["std"] } -num-traits = { version = "0.2" } -phf_shared = { version = "0.11", default-features = false, features = ["std"] } -rand = { version = "0.8", features = ["small_rng"] } -rand_core = { version = "0.6", default-features = false, features = ["std"] } -regex = { version = "1" } -regex-syntax = { version = "0.6" } -scopeguard = { version = "1" } -serde = { version = "1", features = ["alloc", "derive", "rc"] } -serde_json = { version = "1", features = ["raw_value"] } -sha2 = { version = "0.10" } -snafu = { version = "0.7", features = ["backtraces", "rust_1_61"] } -snafu-derive = { version = "0.7", default-features = false, features = ["rust_1_39", "rust_1_46", "rust_1_61"] } -syn-dff4ba8e3ae991db = { package = "syn", version = "1", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } -syn-f595c2ba2a3f28df = { package = "syn", version = "2", features = ["extra-traits", "full", "visit-mut"] } -time = { version = "0.3", features = ["formatting", "parsing"] } -tokio = { version = "1", features = ["full"] } -tokio-util = { version = "0.7", features = ["codec", "io"] } -tracing = { version = "0.1", features = ["log", "max_level_trace", "release_max_level_debug"] } -tracing-core = { version = "0.1" } -url = { version = "2", features = ["serde"] } -zip = { version = "0.6" } -zstd-5ef9efb8ec2df382 = { package = "zstd", version = "0.12", features = ["zstdmt"] } -zstd-a6292c17cd707f01 = { package = "zstd", version = "0.11" } -zstd-safe-a490c3000a992113 = { package = "zstd-safe", version = "6", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder", "zstdmt"] } -zstd-safe-cdf1610d3e1514e9 = { package = "zstd-safe", version = "5", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder"] } -zstd-sys = { version = "2", default-features = false, features = ["legacy", "std", "zdict_builder", "zstdmt"] } - -### END HAKARI SECTION diff --git a/tools/workspace-hack/build.rs b/tools/workspace-hack/build.rs deleted file mode 100644 index 92518ef04..000000000 --- a/tools/workspace-hack/build.rs +++ /dev/null @@ -1,2 +0,0 @@ -// A build script is required for cargo to consider build dependencies. -fn main() {} diff --git a/tools/workspace-hack/src/lib.rs b/tools/workspace-hack/src/lib.rs deleted file mode 100644 index 22489f632..000000000 --- a/tools/workspace-hack/src/lib.rs +++ /dev/null @@ -1 +0,0 @@ -// This is a stub lib.rs.