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. 943dddf28f)
- The current Hakari config was breaking AnkiDroid's build, as it was
stopping a cross-compile from functioning correctly.
This commit is contained in:
Damien Elmes 2023-06-23 13:02:23 +10:00
parent 5023356dd2
commit 40e1520acb
27 changed files with 345 additions and 798 deletions

View File

@ -1,8 +0,0 @@
hakari-package = "workspace-hack"
dep-format-version = "4"
resolver = "2"
[traversal-excludes]
third-party = [
{ name = "reqwest" },
]

190
Cargo.lock generated
View File

@ -17,18 +17,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 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]] [[package]]
name = "ahash" name = "ahash"
version = "0.7.6" version = "0.7.6"
@ -156,7 +144,6 @@ dependencies = [
"utime", "utime",
"windows", "windows",
"wiremock", "wiremock",
"workspace-hack",
"zip", "zip",
"zstd 0.12.3+zstd.1.5.2", "zstd 0.12.3+zstd.1.5.2",
] ]
@ -177,7 +164,6 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"unic-langid", "unic-langid",
"workspace-hack",
] ]
[[package]] [[package]]
@ -189,7 +175,6 @@ dependencies = [
"regex", "regex",
"serde_json", "serde_json",
"walkdir", "walkdir",
"workspace-hack",
] ]
[[package]] [[package]]
@ -306,7 +291,6 @@ dependencies = [
"sha2", "sha2",
"tar", "tar",
"tokio", "tokio",
"workspace-hack",
"xz2", "xz2",
"zip", "zip",
"zstd 0.12.3+zstd.1.5.2", "zstd 0.12.3+zstd.1.5.2",
@ -361,9 +345,9 @@ dependencies = [
[[package]] [[package]]
name = "async-stream" name = "async-stream"
version = "0.3.4" version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad445822218ce64be7a341abfb0b1ea43b5c23aa83902542a4542e78309d8e5e" checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
dependencies = [ dependencies = [
"async-stream-impl", "async-stream-impl",
"futures-core", "futures-core",
@ -372,13 +356,13 @@ dependencies = [
[[package]] [[package]]
name = "async-stream-impl" name = "async-stream-impl"
version = "0.3.4" version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4655ae1a7b0cdf149156f780c5bf3f1352bc53cbd9e0a361a7ef7b22947e965" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 1.0.109", "syn 2.0.18",
] ]
[[package]] [[package]]
@ -510,12 +494,6 @@ version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
[[package]]
name = "base64ct"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -538,7 +516,7 @@ dependencies = [
"arrayvec", "arrayvec",
"cc", "cc",
"cfg-if", "cfg-if",
"constant_time_eq 0.2.5", "constant_time_eq",
"digest", "digest",
] ]
@ -602,27 +580,6 @@ version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 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]] [[package]]
name = "camino" name = "camino"
version = "1.1.4" version = "1.1.4"
@ -641,7 +598,7 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
dependencies = [ dependencies = [
"cipher 0.4.4", "cipher",
] ]
[[package]] [[package]]
@ -698,15 +655,6 @@ dependencies = [
"half", "half",
] ]
[[package]]
name = "cipher"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
dependencies = [
"generic-array",
]
[[package]] [[package]]
name = "cipher" name = "cipher"
version = "0.4.4" version = "0.4.4"
@ -841,9 +789,9 @@ dependencies = [
[[package]] [[package]]
name = "concurrent-queue" name = "concurrent-queue"
version = "2.1.0" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
dependencies = [ dependencies = [
"crossbeam-utils", "crossbeam-utils",
] ]
@ -855,15 +803,8 @@ dependencies = [
"anyhow", "anyhow",
"itertools", "itertools",
"ninja_gen", "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]] [[package]]
name = "constant_time_eq" name = "constant_time_eq"
version = "0.2.5" version = "0.2.5"
@ -1091,7 +1032,7 @@ version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e" checksum = "ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e"
dependencies = [ dependencies = [
"cipher 0.4.4", "cipher",
] ]
[[package]] [[package]]
@ -1382,7 +1323,6 @@ version = "0.0.0"
dependencies = [ dependencies = [
"camino", "camino",
"snafu", "snafu",
"workspace-hack",
] ]
[[package]] [[package]]
@ -1445,9 +1385,9 @@ checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
[[package]] [[package]]
name = "futures-lite" name = "futures-lite"
version = "1.12.0" version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
dependencies = [ dependencies = [
"fastrand", "fastrand",
"futures-core", "futures-core",
@ -2143,7 +2083,6 @@ dependencies = [
"reqwest", "reqwest",
"strum", "strum",
"tokio", "tokio",
"workspace-hack",
] ]
[[package]] [[package]]
@ -2212,7 +2151,6 @@ dependencies = [
"serde_json", "serde_json",
"simple-file-manifest", "simple-file-manifest",
"walkdir", "walkdir",
"workspace-hack",
] ]
[[package]] [[package]]
@ -2225,7 +2163,6 @@ dependencies = [
"glob", "glob",
"tugger-windows-codesign", "tugger-windows-codesign",
"walkdir", "walkdir",
"workspace-hack",
] ]
[[package]] [[package]]
@ -2448,7 +2385,6 @@ dependencies = [
"num_cpus", "num_cpus",
"walkdir", "walkdir",
"which", "which",
"workspace-hack",
] ]
[[package]] [[package]]
@ -2576,12 +2512,6 @@ version = "11.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
[[package]]
name = "opaque-debug"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]] [[package]]
name = "opener" name = "opener"
version = "0.5.2" version = "0.5.2"
@ -2665,7 +2595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4873306de53fe82e7e484df31e1e947d61514b6ea2ed6cd7b45d63006fd9224" checksum = "d4873306de53fe82e7e484df31e1e947d61514b6ea2ed6cd7b45d63006fd9224"
dependencies = [ dependencies = [
"cbc", "cbc",
"cipher 0.4.4", "cipher",
"des", "des",
"getrandom 0.2.8", "getrandom 0.2.8",
"hmac", "hmac",
@ -2677,9 +2607,9 @@ dependencies = [
[[package]] [[package]]
name = "parking" name = "parking"
version = "2.0.0" version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
[[package]] [[package]]
name = "parking_lot" name = "parking_lot"
@ -2704,29 +2634,6 @@ dependencies = [
"windows-sys 0.45.0", "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]] [[package]]
name = "pem" name = "pem"
version = "1.1.1" version = "1.1.1"
@ -3284,7 +3191,7 @@ version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62c64daa8e9438b84aaae55010a93f396f8e60e3911590fcba770d04643fc1dd" checksum = "62c64daa8e9438b84aaae55010a93f396f8e60e3911590fcba770d04643fc1dd"
dependencies = [ dependencies = [
"cipher 0.4.4", "cipher",
] ]
[[package]] [[package]]
@ -3417,7 +3324,6 @@ version = "0.0.0"
dependencies = [ dependencies = [
"anki", "anki",
"pyo3", "pyo3",
"workspace-hack",
] ]
[[package]] [[package]]
@ -3432,7 +3338,6 @@ dependencies = [
"junction", "junction",
"termcolor", "termcolor",
"which", "which",
"workspace-hack",
] ]
[[package]] [[package]]
@ -4104,7 +4009,6 @@ dependencies = [
"libc", "libc",
"mio", "mio",
"num_cpus", "num_cpus",
"parking_lot",
"pin-project-lite", "pin-project-lite",
"signal-hook-registry", "signal-hook-registry",
"socket2", "socket2",
@ -5039,13 +4943,13 @@ dependencies = [
[[package]] [[package]]
name = "wiremock" name = "wiremock"
version = "0.5.17" version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12316b50eb725e22b2f6b9c4cbede5b7b89984274d113a7440c86e5c3fc6f99b" checksum = "c6f71803d3a1c80377a06221e0530be02035d5b3e854af56c6ece7ac20ac441d"
dependencies = [ dependencies = [
"assert-json-diff", "assert-json-diff",
"async-trait", "async-trait",
"base64 0.13.1", "base64 0.21.0",
"deadpool", "deadpool",
"futures", "futures",
"futures-timer", "futures-timer",
@ -5059,55 +4963,6 @@ dependencies = [
"tokio", "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]] [[package]]
name = "xattr" name = "xattr"
version = "0.2.3" version = "0.2.3"
@ -5152,18 +5007,11 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef"
dependencies = [ dependencies = [
"aes",
"byteorder", "byteorder",
"bzip2",
"constant_time_eq 0.1.5",
"crc32fast", "crc32fast",
"crossbeam-utils", "crossbeam-utils",
"flate2", "flate2",
"hmac",
"pbkdf2",
"sha1",
"time", "time",
"zstd 0.11.2+zstd.1.5.2",
] ]
[[package]] [[package]]

View File

@ -20,7 +20,6 @@ members = [
"build/archives", "build/archives",
"build/runner", "build/runner",
"ftl", "ftl",
"tools/workspace-hack",
"tools/minilints", "tools/minilints",
"qt/bundle/win", "qt/bundle/win",
"qt/bundle/mac", "qt/bundle/mac",
@ -28,6 +27,113 @@ members = [
exclude = ["qt/bundle"] exclude = ["qt/bundle"]
resolver = "2" 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 # Apply mild optimizations to our dependencies in dev mode, which among other things
# improves sha2 performance by about 21x. Opt 1 chosen due to # improves sha2 performance by about 21x. Opt 1 chosen due to
# https://doc.rust-lang.org/cargo/reference/profiles.html#overrides-and-generics. This # https://doc.rust-lang.org/cargo/reference/profiles.html#overrides-and-generics. This

View File

@ -1,29 +1,24 @@
[package] [package]
name = "archives" name = "archives"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
anki_io = { version = "0.0.0", path = "../../rslib/io" } anki_io.workspace = true
camino = "1.1.4" camino.workspace = true
flate2 = "1.0.25" flate2.workspace = true
sha2 = { version = "0.10.6" } reqwest.workspace = true
tar = "0.4.38" sha2.workspace = true
tokio = { version = "1.27.0", features = ["macros", "rt-multi-thread"] } tar.workspace = true
workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" } tokio.workspace = true
xz2 = "0.1.7" xz2.workspace = true
zip = "0.6.4" zip.workspace = true
zstd = "0.12.3" zstd.workspace = true
[features] [features]
rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"] rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"]
native-tls = ["reqwest/native-tls"] native-tls = ["reqwest/native-tls"]
[dependencies.reqwest]
version = "0.11.16"
default-features = false

View File

@ -1,15 +1,13 @@
[package] [package]
name = "configure" name = "configure"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
anyhow = "1.0.71" anyhow.workspace = true
itertools = "0.10.5" itertools.workspace = true
ninja_gen = { "path" = "../ninja_gen" } ninja_gen.workspace = true
workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" }

View File

@ -1,22 +1,20 @@
[package] [package]
name = "ninja_gen" name = "ninja_gen"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
anki_io = { version = "0.0.0", path = "../../rslib/io" } anki_io.workspace = true
anyhow = "1.0.71" anyhow.workspace = true
camino = "1.1.4" camino.workspace = true
globset = "0.4.10" globset.workspace = true
itertools = "0.10.5" itertools.workspace = true
lazy_static = "1.4.0" lazy_static.workspace = true
maplit = "1.0.2" maplit.workspace = true
num_cpus = "1.15.0" num_cpus.workspace = true
walkdir = "2.3.3" walkdir.workspace = true
which = "4.4.0" which.workspace = true
workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" }

View File

@ -31,12 +31,7 @@ impl BuildAction for ConfigureBuild {
inputs: inputs![glob!["build/**/*"]], inputs: inputs![glob!["build/**/*"]],
outputs: &[RustOutput::Binary("configure")], outputs: &[RustOutput::Binary("configure")],
target: None, target: None,
// we ensure runner is up to date, but don't declare it as output, extra_args: "-p configure",
// 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",
release_override: Some(false), release_override: Some(false),
}, },
)?; )?;

View File

@ -1,20 +1,18 @@
[package] [package]
name = "runner" name = "runner"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
anki_io = { version = "0.0.0", path = "../../rslib/io" } anki_io.workspace = true
anyhow = "1.0.71" anyhow.workspace = true
camino = "1.1.4" camino.workspace = true
clap = { version = "4.2.1", features = ["derive"] } clap.workspace = true
itertools = "0.10.5" itertools.workspace = true
junction = "1.0.0" junction.workspace = true
termcolor = "1.2.0" termcolor.workspace = true
which = "4.4.0" which.workspace = true
workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" }

View File

@ -17,15 +17,6 @@
"license_file": null, "license_file": null,
"description": "A simple clean-room implementation of the Adler-32 checksum" "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", "name": "ahash",
"version": "0.7.6", "version": "0.7.6",
@ -116,42 +107,6 @@
"license_file": null, "license_file": null,
"description": "Helpers for interface code generation" "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", "name": "anyhow",
"version": "1.0.71", "version": "1.0.71",
@ -208,7 +163,7 @@
}, },
{ {
"name": "async-stream", "name": "async-stream",
"version": "0.3.4", "version": "0.3.5",
"authors": "Carl Lerche <me@carllerche.com>", "authors": "Carl Lerche <me@carllerche.com>",
"repository": "https://github.com/tokio-rs/async-stream", "repository": "https://github.com/tokio-rs/async-stream",
"license": "MIT", "license": "MIT",
@ -217,7 +172,7 @@
}, },
{ {
"name": "async-stream-impl", "name": "async-stream-impl",
"version": "0.3.4", "version": "0.3.5",
"authors": "Carl Lerche <me@carllerche.com>", "authors": "Carl Lerche <me@carllerche.com>",
"repository": "https://github.com/tokio-rs/async-stream", "repository": "https://github.com/tokio-rs/async-stream",
"license": "MIT", "license": "MIT",
@ -305,15 +260,6 @@
"license_file": null, "license_file": null,
"description": "encodes and decodes base64 as bytes or utf8" "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", "name": "bitflags",
"version": "1.3.2", "version": "1.3.2",
@ -386,24 +332,6 @@
"license_file": null, "license_file": null,
"description": "Types and traits for working with bytes" "description": "Types and traits for working with bytes"
}, },
{
"name": "bzip2",
"version": "0.4.4",
"authors": "Alex Crichton <alex@alexcrichton.com>",
"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 <alex@alexcrichton.com>",
"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", "name": "cc",
"version": "1.0.79", "version": "1.0.79",
@ -431,51 +359,6 @@
"license_file": null, "license_file": null,
"description": "Date and time library for Rust" "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", "name": "coarsetime",
"version": "0.1.23", "version": "0.1.23",
@ -494,42 +377,15 @@
"license_file": null, "license_file": null,
"description": "Beautiful diagnostic reporting for text-based programming languages" "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", "name": "concurrent-queue",
"version": "2.1.0", "version": "2.2.0",
"authors": "Stjepan Glavina <stjepang@gmail.com>|Taiki Endo <te316e89@gmail.com>|John Nunley <jtnunley01@gmail.com>", "authors": "Stjepan Glavina <stjepang@gmail.com>|Taiki Endo <te316e89@gmail.com>|John Nunley <jtnunley01@gmail.com>",
"repository": "https://github.com/smol-rs/concurrent-queue", "repository": "https://github.com/smol-rs/concurrent-queue",
"license": "Apache-2.0 OR MIT", "license": "Apache-2.0 OR MIT",
"license_file": null, "license_file": null,
"description": "Concurrent multi-producer multi-consumer queue" "description": "Concurrent multi-producer multi-consumer queue"
}, },
{
"name": "constant_time_eq",
"version": "0.1.5",
"authors": "Cesar Eduardo Barros <cesarb@cesarb.eti.br>",
"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", "name": "constant_time_eq",
"version": "0.2.5", "version": "0.2.5",
@ -955,7 +811,7 @@
}, },
{ {
"name": "futures-lite", "name": "futures-lite",
"version": "1.12.0", "version": "1.13.0",
"authors": "Stjepan Glavina <stjepang@gmail.com>|Contributors to futures-rs", "authors": "Stjepan Glavina <stjepang@gmail.com>|Contributors to futures-rs",
"repository": "https://github.com/smol-rs/futures-lite", "repository": "https://github.com/smol-rs/futures-lite",
"license": "Apache-2.0 OR MIT", "license": "Apache-2.0 OR MIT",
@ -1133,15 +989,6 @@
"license_file": null, "license_file": null,
"description": "Encoding and decoding data into/from hexadecimal representation." "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", "name": "html5ever",
"version": "0.26.0", "version": "0.26.0",
@ -1700,15 +1547,6 @@
"license_file": null, "license_file": null,
"description": "Single assignment cells and lazy values." "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", "name": "openssl",
"version": "0.10.55", "version": "0.10.55",
@ -1756,9 +1594,9 @@
}, },
{ {
"name": "parking", "name": "parking",
"version": "2.0.0", "version": "2.1.0",
"authors": "Stjepan Glavina <stjepang@gmail.com>|The Rust Project Developers", "authors": "Stjepan Glavina <stjepang@gmail.com>|The Rust Project Developers",
"repository": "https://github.com/stjepang/parking", "repository": "https://github.com/smol-rs/parking",
"license": "Apache-2.0 OR MIT", "license": "Apache-2.0 OR MIT",
"license_file": null, "license_file": null,
"description": "Thread parking and unparking" "description": "Thread parking and unparking"
@ -1781,24 +1619,6 @@
"license_file": null, "license_file": null,
"description": "An advanced API for creating custom synchronization primitives." "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", "name": "percent-encoding",
"version": "2.2.0", "version": "2.2.0",
@ -2447,15 +2267,6 @@
"license_file": null, "license_file": null,
"description": "SHA-1 hash function" "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", "name": "sharded-slab",
"version": "0.1.4", "version": "0.1.4",
@ -2573,15 +2384,6 @@
"license_file": null, "license_file": null,
"description": "A codegen library for string-cache, developed as part of the Servo project." "description": "A codegen library for string-cache, developed as part of the Servo project."
}, },
{
"name": "strsim",
"version": "0.10.0",
"authors": "Danny Guo <danny@dannyguo.com>",
"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", "name": "strum",
"version": "0.24.1", "version": "0.24.1",
@ -2663,15 +2465,6 @@
"license_file": null, "license_file": null,
"description": "A simple cross platform library for writing colored text to a terminal." "description": "A simple cross platform library for writing colored text to a terminal."
}, },
{
"name": "terminal_size",
"version": "0.2.6",
"authors": "Andrew Chin <achin@eminence32.net>",
"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", "name": "thiserror",
"version": "1.0.40", "version": "1.0.40",
@ -3104,15 +2897,6 @@
"license_file": null, "license_file": null,
"description": "Incremental, zero-copy UTF-8 decoding with error handling" "description": "Incremental, zero-copy UTF-8 decoding with error handling"
}, },
{
"name": "utf8parse",
"version": "0.2.1",
"authors": "Joe Wilm <joe@jwilm.com>|Christian Duerr <contact@christianduerr.com>",
"repository": "https://github.com/alacritty/vte",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Table-driven UTF-8 parser"
},
{ {
"name": "utime", "name": "utime",
"version": "0.3.1", "version": "0.3.1",
@ -3520,22 +3304,13 @@
}, },
{ {
"name": "wiremock", "name": "wiremock",
"version": "0.5.17", "version": "0.5.19",
"authors": "Luca Palmieri <rust@lpalmieri.com>", "authors": "Luca Palmieri <rust@lpalmieri.com>",
"repository": "https://github.com/LukeMathWalker/wiremock-rs", "repository": "https://github.com/LukeMathWalker/wiremock-rs",
"license": "Apache-2.0 OR MIT", "license": "Apache-2.0 OR MIT",
"license_file": null, "license_file": null,
"description": "HTTP mocking to test Rust applications." "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", "name": "zip",
"version": "0.6.4", "version": "0.6.4",

View File

@ -1,11 +1,10 @@
[package] [package]
name = "ftl" name = "ftl"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[[bin]] [[bin]]
@ -13,6 +12,5 @@ name = "ftl-sync"
path = "sync.rs" path = "sync.rs"
[dependencies] [dependencies]
camino = "1.1.4" camino.workspace = true
snafu = { version = "0.7.4" } snafu.workspace = true
workspace-hack = { version = "0.1", path = "../tools/workspace-hack" }

View File

@ -1,28 +1,22 @@
[package] [package]
name = "rsbridge" name = "rsbridge"
publish = false
description = "Anki's Rust library code Python bindings"
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
description = "Anki's Rust library code Python bindings"
[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"]
[lib] [lib]
name = "rsbridge" name = "rsbridge"
crate-type = ["cdylib"] crate-type = ["cdylib"]
path = "lib.rs" path = "lib.rs"
[dependencies]
anki.workspace = true
pyo3.workspace = true
[features] [features]
rustls = ["anki/rustls"] rustls = ["anki/rustls"]
native-tls = ["anki/native-tls"] native-tls = ["anki/native-tls"]

View File

@ -1,23 +1,21 @@
[package] [package]
name = "makeapp" name = "makeapp"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
anyhow = "1.0.70" anyhow.workspace = true
apple-bundles = "0.17.0" apple-bundles.workspace = true
camino = "1.1.4" camino.workspace = true
clap = { version = "4.2.1", features = ["derive"] } clap.workspace = true
glob = "0.3.1" glob.workspace = true
lazy_static = "1.4.0" lazy_static.workspace = true
plist = "1.4.3" plist.workspace = true
serde = { version = "1.0.159", features = ["derive"] } serde.workspace = true
serde_json = "1.0.95" serde_json.workspace = true
simple-file-manifest = "0.11.0" simple-file-manifest.workspace = true
walkdir = "2.3.3" walkdir.workspace = true
workspace-hack = { version = "0.1", path = "../../../tools/workspace-hack" }

View File

@ -1,18 +1,16 @@
[package] [package]
name = "makeinstall" name = "makeinstall"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
anyhow = "1.0.70" anyhow.workspace = true
camino = "1.1.4" camino.workspace = true
clap = { version = "4.2.1", features = ["derive"] } clap.workspace = true
glob = "0.3.1" glob.workspace = true
tugger-windows-codesign = "0.10.0" tugger-windows-codesign.workspace = true
walkdir = "2.3.3" walkdir.workspace = true
workspace-hack = { version = "0.1", path = "../../../tools/workspace-hack" }

View File

@ -1,13 +1,13 @@
[package] [package]
name = "anki" name = "anki"
publish = false
description = "Anki's Rust library code"
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
workspace = ".."
description = "Anki's Rust library code"
[features] [features]
bench = ["criterion"] bench = ["criterion"]
@ -20,94 +20,85 @@ harness = false
required-features = ["bench"] required-features = ["bench"]
[build-dependencies] [build-dependencies]
anki_io = { version = "0.0.0", path = "io" } anki_io.workspace = true
anki_proto = { version = "0.0.0", path = "proto" } anki_proto.workspace = true
anki_proto_gen = { version = "0.0.0", path = "proto_gen" } anki_proto_gen.workspace = true
anyhow = "1.0.71" anyhow.workspace = true
inflections = "1.1.1" inflections.workspace = true
itertools = "0.10.5" itertools.workspace = true
prettyplease = "0.2.7" prettyplease.workspace = true
prost = "0.11.8" prost.workspace = true
prost-reflect = "0.11.4" prost-reflect.workspace = true
syn = { version = "2.0.18", features = ["parsing", "printing"] } syn.workspace = true
[dev-dependencies] [dev-dependencies]
async-stream = "0.3.4" async-stream.workspace = true
env_logger = "0.10.0" env_logger.workspace = true
wiremock = "0.5.17" wiremock.workspace = true
[dependencies.reqwest]
version = "0.11.16"
default-features = false
features = ["json", "socks", "stream", "multipart"]
[dependencies] [dependencies]
anki_i18n = { path = "i18n" } criterion = { workspace = true, optional = true }
anki_io = { path = "io" }
anki_proto = { path = "proto" }
workspace-hack = { version = "0.1", path = "../tools/workspace-hack" }
csv = { git = "https://github.com/ankitects/rust-csv.git", rev = "1c9d3aab6f79a7d815c69f925a46a4590c115f90" } ammonia.workspace = true
percent-encoding-iri = { git = "https://github.com/ankitects/rust-url.git", rev = "bb930b8d089f4d30d7d19c12e54e66191de47b88" } anki_i18n.workspace = true
anki_io.workspace = true
# pinned as any changes could invalidate sqlite indexes anki_proto.workspace = true
unicase = "=2.6.0" async-compression.workspace = true
async-trait.workspace = true
criterion = { version = "0.4.0", optional = true } axum.workspace = true
axum-client-ip.workspace = true
ammonia = "3.3.0" blake3.workspace = true
async-compression = { version = "0.3.15", features = ["zstd", "tokio"] } bytes.workspace = true
async-trait = "0.1.68" chrono.workspace = true
axum = { version = "0.6.12", features = ["multipart", "macros", "headers"] } coarsetime.workspace = true
axum-client-ip = "0.3.1" convert_case.workspace = true
blake3 = "1.3.3" csv.workspace = true
bytes = "1.4.0" difflib.workspace = true
chrono = { version = "0.4.26", default-features = false, features = ["std", "clock"] } flate2.workspace = true
coarsetime = "0.1.23" fluent.workspace = true
convert_case = "0.6.0" fluent-bundle.workspace = true
difflib = "0.4.0" fnv.workspace = true
flate2 = "1.0.25" futures.workspace = true
fluent = "0.16.0" hex.workspace = true
fluent-bundle = "0.15.2" htmlescape.workspace = true
fnv = "1.0.7" hyper.workspace = true
futures = "0.3.28" id_tree.workspace = true
hex = "0.4.3" itertools.workspace = true
htmlescape = "0.3.1" lazy_static.workspace = true
hyper = "0.14.25" nom.workspace = true
id_tree = "1.8.0" num_cpus.workspace = true
itertools = "0.10.5" num_enum.workspace = true
lazy_static = "1.4.0" once_cell.workspace = true
nom = "7.1.3" percent-encoding-iri.workspace = true
num_cpus = "1.15.0" pin-project.workspace = true
num_enum = "0.6.1" prost.workspace = true
once_cell = "1.17.1" pulldown-cmark.workspace = true
pin-project = "1.0.12" rand.workspace = true
prost = "0.11.8" regex.workspace = true
pulldown-cmark = "0.9.2" reqwest.workspace = true
rand = "0.8.5" rusqlite.workspace = true
regex = "1.7.3" scopeguard.workspace = true
rusqlite = { version = "0.29.0", features = ["trace", "functions", "collation", "bundled"] } serde.workspace = true
scopeguard = "1.1.0" serde-aux.workspace = true
serde = { version = "1.0.159", features = ["derive"] } serde_json.workspace = true
serde-aux = "4.1.2" serde_repr.workspace = true
serde_json = "1.0.95" serde_tuple.workspace = true
serde_repr = "0.1.12" sha1.workspace = true
serde_tuple = "0.5.0" snafu.workspace = true
sha1 = "0.10.5" strum.workspace = true
snafu = { version = "0.7.4", features = ["backtraces", "rust_1_61"] } tempfile.workspace = true
strum = { version = "0.24.1", features = ["derive"] } tokio.workspace = true
tempfile = "3.5.0" tokio-util.workspace = true
tokio = { version = "1.27", features = ["fs", "rt-multi-thread", "macros", "signal"] } tower-http.workspace = true
tokio-util = { version = "0.7.7", features = ["io"] } tracing.workspace = true
tower-http = { version = "0.4.0", features = ["trace"] } tracing-appender.workspace = true
tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_debug"] } tracing-subscriber.workspace = true
tracing-appender = "0.2.2" unic-ucd-category.workspace = true
tracing-subscriber = { version = "0.3.16", features = ["fmt", "env-filter"] } unicase.workspace = true
unic-ucd-category = "0.9.0" unicode-normalization.workspace = true
unicode-normalization = "0.1.22" utime.workspace = true
utime = "0.3.1" zip.workspace = true
zip = { version = "0.6.4", default-features = false, features = ["deflate", "time"] } zstd.workspace = true
zstd = { version = "0.12.3", features = ["zstdmt"] }
[target.'cfg(windows)'.dependencies.windows] [target.'cfg(windows)'.dependencies.windows]
version = "0.48.0" version = "0.48.0"

View File

@ -1,36 +1,34 @@
[package] [package]
name = "anki_i18n" name = "anki_i18n"
build = "build/main.rs"
publish = false
description = "Anki's Rust library i18n code"
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
build = "build/main.rs"
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
description = "Anki's Rust library i18n code"
[lib] [lib]
name = "anki_i18n" name = "anki_i18n"
path = "src/lib.rs" path = "src/lib.rs"
[build-dependencies] [build-dependencies]
fluent-syntax = "0.11.0" fluent-syntax.workspace = true
fluent = "0.16.0" fluent.workspace = true
unic-langid = { version = "0.9.1", features = ["macros"] } unic-langid.workspace = true
serde = { version = "1.0.159", features = ["derive"] } serde.workspace = true
serde_json = "1.0.95" serde_json.workspace = true
inflections = "1.1.1" inflections.workspace = true
anki_io = { version = "0.0.0", path = "../io" } anki_io.workspace = true
anyhow = "1.0.71" anyhow.workspace = true
[dependencies] [dependencies]
fluent = "0.16.0" fluent.workspace = true
fluent-bundle = "0.15.2" fluent-bundle.workspace = true
intl-memoizer = "0.5.1" intl-memoizer.workspace = true
num-format = "0.4.4" num-format.workspace = true
phf = { version = "0.11.1", features = ["macros"] } phf.workspace = true
serde = { version = "1.0.159", features = ["derive"] } serde.workspace = true
serde_json = "1.0.95" serde_json.workspace = true
unic-langid = { version = "0.9.1", features = ["macros"] } unic-langid.workspace = true
workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" }

View File

@ -1,24 +1,20 @@
[package] [package]
name = "anki_i18n_helpers" name = "anki_i18n_helpers"
publish = false
description = "Helpers for Anki's i18n system"
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
description = "Helpers for Anki's i18n system"
[lib] [lib]
name = "anki_i18n_helpers" name = "anki_i18n_helpers"
path = "src/lib.rs" path = "src/lib.rs"
# After updating anything below, run ../cargo/update.py
[dependencies] [dependencies]
fluent-syntax = "0.11.0" fluent-syntax.workspace = true
lazy_static = "1.4.0" lazy_static.workspace = true
regex = "1.7.3" regex.workspace = true
serde_json = "1.0.95" serde_json.workspace = true
walkdir = "2" walkdir.workspace = true
workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" }

View File

@ -1,14 +1,13 @@
[package] [package]
name = "anki_io" name = "anki_io"
publish = false
description = "Utils for better I/O error reporting"
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
description = "Utils for better I/O error reporting"
[dependencies] [dependencies]
snafu = "0.7.4" snafu.workspace = true
tempfile = "3.6.0" tempfile.workspace = true

View File

@ -1,34 +1,23 @@
[package] [package]
name = "linkchecker" name = "linkchecker"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
# [[test]]
# name = "links"
# required-features = ["links"]
[dependencies] [dependencies]
anki = { path = ".." } anki.workspace = true
futures.workspace = true
linkcheck = { git = "https://github.com/ankitects/linkcheck.git", rev = "184b2ca50ed39ca43da13f0b830a463861adb9ca" } itertools.workspace = true
lazy_static.workspace = true
futures = "0.3.28" linkcheck.workspace = true
itertools = "0.10.5" regex.workspace = true
lazy_static = "1.4.0" reqwest.workspace = true
regex = "1.7.3" strum.workspace = true
strum = { version = "0.24.1", features = ["derive"] } tokio.workspace = true
tokio = { version = "1.27.0", features = ["full"] }
workspace-hack = { version = "0.1", path = "../../tools/workspace-hack" }
[features] [features]
rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"] rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"]
native-tls = ["reqwest/native-tls"] native-tls = ["reqwest/native-tls"]
[dependencies.reqwest]
version = "0.11.16"
default-features = false

View File

@ -1,14 +1,13 @@
[package] [package]
name = "anki_process" name = "anki_process"
publish = false
description = "Utils for better process error reporting"
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
description = "Utils for better process error reporting"
[dependencies] [dependencies]
itertools = "0.10.5" itertools.workspace = true
snafu = "0.7.4" snafu.workspace = true

View File

@ -1,27 +1,26 @@
[package] [package]
name = "anki_proto" name = "anki_proto"
publish = false
description = "Anki's Rust library protobuf code"
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
description = "Anki's Rust library protobuf code"
[build-dependencies] [build-dependencies]
anki_io = { version = "0.0.0", path = "../io" } anki_io.workspace = true
anki_proto_gen = { version = "0.0.0", path = "../proto_gen" } anki_proto_gen.workspace = true
anyhow = "1.0.71" anyhow.workspace = true
inflections = "1.1.1" inflections.workspace = true
itertools = "0.10.5" itertools.workspace = true
prost-build = "0.11.9" prost-build.workspace = true
prost-reflect = "0.11.4" prost-reflect.workspace = true
prost-types = "0.11.9" prost-types.workspace = true
[dependencies] [dependencies]
num_enum = "0.6.1" num_enum.workspace = true
prost = "0.11.9" prost.workspace = true
serde = { version = "1.0.164", features = ["derive"] } serde.workspace = true
snafu = "0.7.4" snafu.workspace = true
strum = { version = "0.24.1", features = ["derive"] } strum.workspace = true

View File

@ -10,7 +10,7 @@ license.workspace = true
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
inflections = "1.1.1" inflections.workspace = true
itertools = "0.10.5" itertools.workspace = true
prost-reflect = "0.11.4" prost-reflect.workspace = true
prost-types = "0.11.9" prost-types.workspace = true

View File

@ -1,18 +1,17 @@
[package] [package]
name = "minilints" name = "minilints"
publish = false
version.workspace = true version.workspace = true
authors.workspace = true authors.workspace = true
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
publish = false
rust-version.workspace = true rust-version.workspace = true
[dependencies] [dependencies]
anki_io = { version = "0.0.0", path = "../../rslib/io" } anki_io.workspace = true
anki_process = { version = "0.0.0", path = "../../rslib/process" } anki_process.workspace = true
anyhow = "1.0.71" anyhow.workspace = true
camino = "1.1.4" camino.workspace = true
once_cell = "1.17.1" once_cell.workspace = true
walkdir = "2.3.3" walkdir.workspace = true
which = "4.4.0" which.workspace = true

View File

@ -186,7 +186,6 @@ impl LintContext {
if licenses != existing_licenses { if licenses != existing_licenses {
if self.want_fix { if self.want_fix {
check_cargo_deny()?; check_cargo_deny()?;
update_hakari()?;
write_file(license_path, licenses)?; write_file(license_path, licenses)?;
} else { } else {
println!("cargo/licenses.json is out of date; run ./ninja fix:minilints"); println!("cargo/licenses.json is out of date; run ./ninja fix:minilints");
@ -203,12 +202,6 @@ fn check_cargo_deny() -> Result<()> {
Ok(()) 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<String> { fn head_of_file(path: &Utf8Path) -> Result<String> {
let mut file = File::open(path)?; let mut file = File::open(path)?;
let mut buffer = vec![0; 256]; let mut buffer = vec![0; 256];

View File

@ -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

View File

@ -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

View File

@ -1,2 +0,0 @@
// A build script is required for cargo to consider build dependencies.
fn main() {}

View File

@ -1 +0,0 @@
// This is a stub lib.rs.