diff --git a/Cargo.lock b/Cargo.lock index 012011df9..f1947b5ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -374,8 +374,9 @@ dependencies = [ [[package]] name = "brk" -version = "0.0.7" +version = "0.0.8" dependencies = [ + "brk_cli", "brk_computer", "brk_core", "brk_exit", @@ -390,7 +391,7 @@ dependencies = [ [[package]] name = "brk_cli" -version = "0.0.7" +version = "0.0.8" dependencies = [ "brk_computer", "brk_core", @@ -410,7 +411,7 @@ dependencies = [ [[package]] name = "brk_computer" -version = "0.0.7" +version = "0.0.8" dependencies = [ "brk_core", "brk_exit", @@ -424,7 +425,7 @@ dependencies = [ [[package]] name = "brk_core" -version = "0.0.7" +version = "0.0.8" dependencies = [ "bitcoin", "bitcoincore-rpc", @@ -436,12 +437,12 @@ dependencies = [ "rlimit", "serde", "serde_bytes", - "zerocopy 0.8.21", + "zerocopy 0.8.23", ] [[package]] name = "brk_exit" -version = "0.0.7" +version = "0.0.8" dependencies = [ "ctrlc", "log", @@ -449,7 +450,7 @@ dependencies = [ [[package]] name = "brk_fetcher" -version = "0.0.7" +version = "0.0.8" dependencies = [ "brk_core", "brk_logger", @@ -462,7 +463,7 @@ dependencies = [ [[package]] name = "brk_indexer" -version = "0.0.7" +version = "0.0.8" dependencies = [ "bitcoin", "bitcoincore-rpc", @@ -476,12 +477,12 @@ dependencies = [ "fjall", "log", "rayon", - "zerocopy 0.8.21", + "zerocopy 0.8.23", ] [[package]] name = "brk_logger" -version = "0.0.7" +version = "0.0.8" dependencies = [ "color-eyre", "env_logger", @@ -490,7 +491,7 @@ dependencies = [ [[package]] name = "brk_parser" -version = "0.0.7" +version = "0.0.8" dependencies = [ "bitcoin", "bitcoincore-rpc", @@ -500,12 +501,12 @@ dependencies = [ "rayon", "serde", "serde_json", - "zerocopy 0.8.21", + "zerocopy 0.8.23", ] [[package]] name = "brk_query" -version = "0.0.7" +version = "0.0.8" dependencies = [ "brk_computer", "brk_indexer", @@ -521,7 +522,7 @@ dependencies = [ [[package]] name = "brk_server" -version = "0.0.7" +version = "0.0.8" dependencies = [ "axum", "brk_computer", @@ -547,14 +548,14 @@ dependencies = [ [[package]] name = "brk_vec" -version = "0.0.7" +version = "0.0.8" dependencies = [ "brk_exit", "memmap2", "rayon", "serde", "serde_json", - "zerocopy 0.8.21", + "zerocopy 0.8.23", ] [[package]] @@ -1032,9 +1033,9 @@ checksum = "c0d05e1c0dbad51b52c38bda7adceef61b9efc2baf04acfe8726a8c4630a6f57" [[package]] name = "either" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "enum_dispatch" @@ -1549,9 +1550,9 @@ checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" [[package]] name = "lock_api" @@ -1773,9 +1774,9 @@ checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" [[package]] name = "oxc" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea36ba3258ba8c21e44927caf3af5c6ac6b4c3ac4b38c3c0660564b796ffa08e" +checksum = "5b4a5aba9c3f445db5401f9975266b23a5c5b49a8b4ccb1efa049132e96069dc" dependencies = [ "oxc_allocator", "oxc_ast", @@ -1816,9 +1817,9 @@ dependencies = [ [[package]] name = "oxc_allocator" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eef1633a33a1a8ec5e88c877aa50c8db61e2e341dfe8e3ffeda87ab4b493afa9" +checksum = "7844c292ad3f79021bf3066538129c662a65bb4235a3450d124edd81bc9094df" dependencies = [ "allocator-api2", "bumpalo", @@ -1829,9 +1830,9 @@ dependencies = [ [[package]] name = "oxc_ast" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87589abc25ec0975b4f22c05f55ee8546e08743950adc262e94e90db9ebc8262" +checksum = "c4005b2e219aa87cb0cbde495bcd6543748a4d77c8583ec573c6db2984bb249f" dependencies = [ "bitflags", "cow-utils", @@ -1846,9 +1847,9 @@ dependencies = [ [[package]] name = "oxc_ast_macros" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631d65bd4d6b16d3e56ff19754282ef094cb5427648495d23f39c96d6cdc523e" +checksum = "93405fb1ad62247fa9296ad73265671b9c4aaa39dbbe142af00a6de415e61606" dependencies = [ "proc-macro2", "quote", @@ -1857,9 +1858,9 @@ dependencies = [ [[package]] name = "oxc_ast_visit" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da5e14e31c9d02657061db04405dd1071724d262ded4574a74a3874cb44fcca2" +checksum = "f333b2ae5cbf1328986ce1eca317bc7f2f2e256c3d4a0f72b0d935a30c86b641" dependencies = [ "oxc_allocator", "oxc_ast", @@ -1869,9 +1870,9 @@ dependencies = [ [[package]] name = "oxc_cfg" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa3fe7457827a2bbe13e3bdccd7fd93ee502d00a6240ebe0ca65e9ebf7166aee" +checksum = "775eee138628ad50d1d8f36bc7985659aed2f7457879ad3f493e1d705338d830" dependencies = [ "bitflags", "itertools", @@ -1884,9 +1885,9 @@ dependencies = [ [[package]] name = "oxc_codegen" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f9c00cb3d0d02ac9ee802048fc37bd00155ec21f588cf3b3a5a0884e6331ab" +checksum = "24b7b756b328a516af07e3d86d82c6431ca21c4ab8abd626c13cec4bb478c564" dependencies = [ "bitflags", "cow-utils", @@ -1905,9 +1906,9 @@ dependencies = [ [[package]] name = "oxc_data_structures" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b4292a782b93493456f56ec35ba09f41680b2cb7d0294dd7b39f664fb6dd4d" +checksum = "dfc814bebc24ca429f257fba498dee171a98fa2ef1ea0f9c9eb3d69f0993baa6" dependencies = [ "assert-unchecked", "ropey", @@ -1915,9 +1916,9 @@ dependencies = [ [[package]] name = "oxc_diagnostics" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c00829ead1c6ac5344a575207214a53003fab41dd0ac8a5e35bfb57aedfde2f" +checksum = "0fd1f43ffbdabf86a563b48970c2abdbc0ac860e49558c83ab23a010b1a774f8" dependencies = [ "cow-utils", "oxc-miette", @@ -1925,9 +1926,9 @@ dependencies = [ [[package]] name = "oxc_ecmascript" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488a6e543ab952ca3efb72bcefe9250d34777d7010955bfac3978c7e03bf4613" +checksum = "1a23d0e112ff9ea0f39dd2c9c921f0938e313e26ee9e4022f60c8d81c561e518" dependencies = [ "cow-utils", "num-bigint", @@ -1939,9 +1940,9 @@ dependencies = [ [[package]] name = "oxc_estree" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78290e1c47759f1b7a6eb871e99adbb12054e817a052cacc898dfc89183f444b" +checksum = "dd9818707125125e32d25fd18c5331a4418fbde084e33c69dee123df5b2531d2" [[package]] name = "oxc_index" @@ -1951,9 +1952,9 @@ checksum = "2fa07b0cfa997730afed43705766ef27792873fdf5215b1391949fec678d2392" [[package]] name = "oxc_mangler" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878c8f316cd0af5e85eabd8b65085f9b415b71f76b5f6b564992d2a554bf1f44" +checksum = "d859623b93adfde62e5df257767c30f0f7d8b9427f9e3f94be695cf72d294e88" dependencies = [ "fixedbitset", "itertools", @@ -1968,9 +1969,9 @@ dependencies = [ [[package]] name = "oxc_minifier" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a5af6dd1b470715c12aae1428789faa174d9bdbee300c66ae77deaea34a13e" +checksum = "8ba050a42f842dcf0628d46d1e817ee819661bd5283165b1784e924153912c32" dependencies = [ "cow-utils", "oxc_allocator", @@ -1990,9 +1991,9 @@ dependencies = [ [[package]] name = "oxc_parser" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1227c203986a3b000cab2f9ef4adc613cf61a39e2f3902bbef6f9072f41c833d" +checksum = "cce20364085569f8caebeb879aec455c5c8f6e5dcb5d0ecfb88208ae5e709331" dependencies = [ "assert-unchecked", "bitflags", @@ -2013,9 +2014,9 @@ dependencies = [ [[package]] name = "oxc_regular_expression" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f053a6df456bf575cbf3c38ffea3013799748012d4a7c9ecd70d3f47a214d4" +checksum = "89e1f1e21ed9b3e4d1c6eb10dffc1c71202e8fe111968cf6636f5484ad443b0b" dependencies = [ "oxc_allocator", "oxc_ast_macros", @@ -2029,9 +2030,9 @@ dependencies = [ [[package]] name = "oxc_semantic" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56322936cd15d784b4bb82a92eeca754ee8dde3c499f3165eef227aebdcfff98" +checksum = "d6997bba036cadea531b817c440d87b1b489fca6db981a3953a98b7b23201a13" dependencies = [ "assert-unchecked", "itertools", @@ -2066,9 +2067,9 @@ dependencies = [ [[package]] name = "oxc_span" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680170488923ec30f75228b93c3b08d42754e983bca138063c973ca5ba0e71ff" +checksum = "e59da8e765f44892357f6b75bdb16f486d61956c5bd92a345429ad704d4853fd" dependencies = [ "compact_str", "oxc-miette", @@ -2079,9 +2080,9 @@ dependencies = [ [[package]] name = "oxc_syntax" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe1784332acdab786ae3904930a7274a84eda184144202490e65f7a0e2db436" +checksum = "47b8bd67fdd8df27cfddbec577b282f1a6601509ecd750697f590d7cdc2d88b7" dependencies = [ "assert-unchecked", "bitflags", @@ -2100,9 +2101,9 @@ dependencies = [ [[package]] name = "oxc_traverse" -version = "0.55.0" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ee3adf17f4dd4819d333f7952e7d644f24e433c9fdf5ceaadc93bb9f57a36c" +checksum = "a3b19901f8ad9760deb01757c062d059c8632f7ca8b869c06f2ca4c96bfcba10" dependencies = [ "compact_str", "itoa", @@ -2431,9 +2432,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "ring" -version = "0.17.11" +version = "0.17.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" +checksum = "ed9b823fa29b721a59671b41d6b06e66b29e0628e207e8b1c3ceeda701ec928d" dependencies = [ "cc", "cfg-if", @@ -2476,9 +2477,9 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustix" -version = "0.38.44" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "17f8dcd64f141950290e45c99f7710ede1b600297c91818bb30b3667c0f45dc0" dependencies = [ "bitflags", "errno", @@ -2836,9 +2837,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.17.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" dependencies = [ "cfg-if", "fastrand", @@ -2911,9 +2912,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.38" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb041120f25f8fbe8fd2dbe4671c7c2ed74d83be2e7a77529bf7e0790ae3f472" +checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" dependencies = [ "deranged", "itoa", @@ -3400,11 +3401,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.21" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf01143b2dd5d134f11f545cf9f1431b13b749695cb33bcce051e7568f99478" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" dependencies = [ - "zerocopy-derive 0.8.21", + "zerocopy-derive 0.8.23", ] [[package]] @@ -3420,9 +3421,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.21" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712c8386f4f4299382c9abee219bee7084f78fb939d88b6840fcc1320d5f6da2" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 9d6f2c5c9..6e9735337 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,12 +4,13 @@ members = ["crates/*"] package.description = "The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node" package.license = "MIT" package.edition = "2024" -package.version = "0.0.7" +package.version = "0.0.8" package.repository = "https://github.com/bitcoinresearchkit/brk" [workspace.dependencies] bitcoin = { version = "0.32.5", features = ["serde"] } bitcoincore-rpc = "0.19.0" +brk_cli = { version = "0", path = "crates/brk_cli" } brk_computer = { version = "0", path = "crates/brk_computer" } brk_core = { version = "0", path = "crates/brk_core" } brk_exit = { version = "0", path = "crates/brk_exit" } @@ -32,4 +33,4 @@ rayon = "1.10.0" serde = { version = "1.0.218", features = ["derive"] } serde_json = { version = "1.0.140", features = ["float_roundtrip"] } tabled = "0.18.0" -zerocopy = { version = "0.8.21", features = ["derive"] } +zerocopy = { version = "0.8.23", features = ["derive"] } diff --git a/crates/brk/Cargo.toml b/crates/brk/Cargo.toml index 447fd88c3..383b5f3a7 100644 --- a/crates/brk/Cargo.toml +++ b/crates/brk/Cargo.toml @@ -32,6 +32,7 @@ server = ["brk_server"] vec = ["brk_vec"] [dependencies] +brk_cli = { workspace = true } brk_core = { workspace = true, optional = true } brk_computer = { workspace = true, optional = true } brk_exit = { workspace = true, optional = true } diff --git a/crates/brk/src/lib.rs b/crates/brk/src/lib.rs index 30046f602..ff0ad9975 100644 --- a/crates/brk/src/lib.rs +++ b/crates/brk/src/lib.rs @@ -1,61 +1,41 @@ #![doc = include_str!(concat!("../", env!("CARGO_PKG_README")))] #[cfg(feature = "core")] -pub mod core { - #[doc(inline)] - pub use brk_core::*; -} +#[doc(inline)] +pub use brk_core as core; #[cfg(feature = "computer")] -pub mod computer { - #[doc(inline)] - pub use brk_computer::*; -} +#[doc(inline)] +pub use brk_computer as computer; #[cfg(feature = "exit")] -pub mod exit { - #[doc(inline)] - pub use brk_exit::*; -} +#[doc(inline)] +pub use brk_exit as exit; #[cfg(feature = "fetcher")] -pub mod fetcher { - #[doc(inline)] - pub use brk_fetcher::*; -} +#[doc(inline)] +pub use brk_fetcher as fetcher; #[cfg(feature = "indexer")] -pub mod indexer { - #[doc(inline)] - pub use brk_indexer::*; -} +#[doc(inline)] +pub use brk_indexer as indexer; #[cfg(feature = "logger")] -pub mod logger { - #[doc(inline)] - pub use brk_logger::*; -} +#[doc(inline)] +pub use brk_logger as logger; #[cfg(feature = "parser")] -pub mod parser { - #[doc(inline)] - pub use brk_parser::*; -} +#[doc(inline)] +pub use brk_parser as parser; #[cfg(feature = "query")] -pub mod query { - #[doc(inline)] - pub use brk_query::*; -} +#[doc(inline)] +pub use brk_query as query; #[cfg(feature = "server")] -pub mod server { - #[doc(inline)] - pub use brk_server::*; -} +#[doc(inline)] +pub use brk_server as server; #[cfg(feature = "vec")] -pub mod vec { - #[doc(inline)] - pub use brk_vec::*; -} +#[doc(inline)] +pub use brk_vec as vec; diff --git a/crates/brk/src/main.rs b/crates/brk/src/main.rs new file mode 100644 index 000000000..c3bb36cdd --- /dev/null +++ b/crates/brk/src/main.rs @@ -0,0 +1 @@ +use brk_cli::main; diff --git a/crates/brk_cli/src/lib.rs b/crates/brk_cli/src/lib.rs new file mode 100644 index 000000000..14767c23b --- /dev/null +++ b/crates/brk_cli/src/lib.rs @@ -0,0 +1,41 @@ +use std::fs; + +use brk_core::{path_dot_brk, path_dot_brk_log}; +use brk_query::Params as QueryArgs; +use clap::{Parser, Subcommand}; +use query::query; +use run::{RunConfig, run}; + +mod query; +mod run; + +#[derive(Parser)] +#[command(version, about)] +#[command(propagate_version = true)] +struct Cli { + #[command(subcommand)] + command: Commands, +} + +#[derive(Subcommand, Debug)] +enum Commands { + /// Run the indexer, computer and server + Run(RunConfig), + /// Query generated datasets via the `run` command in a similar fashion as the server's API + Query(QueryArgs), +} + +pub fn main() -> color_eyre::Result<()> { + color_eyre::install()?; + + fs::create_dir_all(path_dot_brk())?; + + brk_logger::init(Some(&path_dot_brk_log())); + + let cli = Cli::parse(); + + match cli.command { + Commands::Run(args) => run(args), + Commands::Query(args) => query(args), + } +} diff --git a/crates/brk_cli/src/main.rs b/crates/brk_cli/src/main.rs index 74f78ee9c..c3bb36cdd 100644 --- a/crates/brk_cli/src/main.rs +++ b/crates/brk_cli/src/main.rs @@ -1,41 +1 @@ -use std::fs; - -use brk_core::{path_dot_brk, path_dot_brk_log}; -use brk_query::Params as QueryArgs; -use clap::{Parser, Subcommand}; -use query::query; -use run::{RunConfig, run}; - -mod query; -mod run; - -#[derive(Parser)] -#[command(version, about)] -#[command(propagate_version = true)] -struct Cli { - #[command(subcommand)] - command: Commands, -} - -#[derive(Subcommand, Debug)] -enum Commands { - /// Run the indexer, computer and server - Run(RunConfig), - /// Query generated datasets via the `run` command in a similar fashion as the server's API - Query(QueryArgs), -} - -fn main() -> color_eyre::Result<()> { - color_eyre::install()?; - - fs::create_dir_all(path_dot_brk())?; - - brk_logger::init(Some(&path_dot_brk_log())); - - let cli = Cli::parse(); - - match cli.command { - Commands::Run(args) => run(args), - Commands::Query(args) => query(args), - } -} +use brk_cli::main; diff --git a/crates/brk_server/Cargo.toml b/crates/brk_server/Cargo.toml index 70f886ac0..d1da5ffa4 100644 --- a/crates/brk_server/Cargo.toml +++ b/crates/brk_server/Cargo.toml @@ -21,7 +21,7 @@ color-eyre = { workspace = true } jiff = { workspace = true } log = { workspace = true } minreq = { workspace = true } -oxc = { version = "0.55.0", features = ["codegen", "minifier"] } +oxc = { version = "0.56.0", features = ["codegen", "minifier"] } serde = { workspace = true } serde_json = { workspace = true } tokio = { version = "1.43.0", features = ["full"] } diff --git a/publish.sh b/publish.sh index 69fb8b148..48804d47d 100755 --- a/publish.sh +++ b/publish.sh @@ -5,39 +5,39 @@ cargo build --all-targets cd crates/brk cd ../brk_core -cargo publish --allow-dirty +cargo publish cd ../brk_exit -cargo publish --allow-dirty +cargo publish cd ../brk_vec -cargo publish --allow-dirty +cargo publish cd ../brk_logger -cargo publish --allow-dirty +cargo publish cd ../brk_indexer -cargo publish --allow-dirty +cargo publish cd ../brk_parser -cargo publish --allow-dirty +cargo publish cd ../brk_fetcher -cargo publish --allow-dirty +cargo publish cd ../brk_computer -cargo publish --allow-dirty +cargo publish cd ../brk_query -cargo publish --allow-dirty +cargo publish cd ../brk_server -cargo publish --allow-dirty +cargo publish cd ../brk_cli -cargo publish --allow-dirty +cargo publish cd ../brk -cargo publish --allow-dirty +cargo publish cd ../..