Refactor: Extract new crate binstalk-types plus other misc refactor and optimization (#535)

* Refactor: Extract new crate binstalk-types
* Optimize: Rm field `CrateInfo::other`
   which also removes dep serde-tuple-vec-map and serde-json from
   binstalk-types.
   
   This also makes `CrateInfo` easier to use, more generic and can be used
   over any `Serializer`, not just `serde_json::Value`.
* Mark all errors in `binstalk-manifests` as non_exhaustive
* Reduce size of `CvsParseError` by using `Box<str>`
   instead of `String` for variant `UnknownSourceType`.
* Reduce size of `CratesTomlParseError` to 16 bytes on 64bit platform
   by boxing variants `TomlWrite` and `CvsParse` as these two fields are
   significantly larger than other variants.
* Unify import style in mod `binstall_crates_v1`
* Replace dep binstalk-manifests with binstalk-types in binstalk-downloader
   to reduce its transitive dependencies and enables binstalk-downloader to
   be built in parallel to binstak-manifests.
* Replace dep binstalk-manifests with binstalk-types in binstalk
   to reduce transitive dependencies and enables binstalk to be built in
   parallel to binstalk-manifests.
   
   This is benefitial because binstalk-manifests pulls in toml_edit, which
   could takes up to 15s to be built on M1 (7-9s for codegen).
* Add dep binstalk-manifests to crates/bin
* Update dependabot and GHA release-pr

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-11-17 11:46:27 +11:00 committed by GitHub
parent 58326a6085
commit d9cc3ce219
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 372 additions and 76 deletions

22
Cargo.lock generated
View file

@ -110,7 +110,7 @@ version = "0.4.1"
dependencies = [
"async-trait",
"binstalk-downloader",
"binstalk-manifests",
"binstalk-types",
"cargo_toml",
"compact_str",
"crates_io_api",
@ -138,7 +138,7 @@ dependencies = [
name = "binstalk-downloader"
version = "0.1.0"
dependencies = [
"binstalk-manifests",
"binstalk-types",
"binstall-tar",
"bytes",
"bzip2",
@ -165,24 +165,35 @@ dependencies = [
name = "binstalk-manifests"
version = "0.1.0"
dependencies = [
"binstalk-types",
"compact_str",
"detect-targets",
"fs-lock",
"home",
"miette",
"once_cell",
"semver",
"serde",
"serde-tuple-vec-map",
"serde_json",
"strum",
"strum_macros",
"tempfile",
"thiserror",
"toml_edit",
"url",
]
[[package]]
name = "binstalk-types"
version = "0.1.0"
dependencies = [
"compact_str",
"once_cell",
"semver",
"serde",
"strum",
"strum_macros",
"url",
]
[[package]]
name = "binstall-tar"
version = "0.4.39"
@ -274,6 +285,7 @@ name = "cargo-binstall"
version = "0.16.0"
dependencies = [
"binstalk",
"binstalk-manifests",
"clap",
"crates_io_api",
"dirs",