From 1820e916ca32f226ac6757a64a1397963204b092 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Mon, 4 Dec 2023 07:40:56 -0500 Subject: [PATCH] Add patches for directories/directories-next/option-ext The rational is detailed in the root Cargo.toml. While I don't personally mind MPL dependencies, even if I don't prefer them (they're allowed in the deny.toml for a reason), I do mind the pointless scope creep and wish to highlight how little it actually used from the crate by re-defining it as the single function. We could also fork directories-next, or directories, and remove the usage of option-ext per https://github.com/dirs-dev/dirs-sys-rs/issues/24, yet that'd be a much larger task than what was done here. In the future, it may be beneficial to submit a PR to wasmtime replacing directories-next with home, a cargo-team maintained library to get the home directory and associated folders. An example migration can be found at https://github.com/harryfei/which-rs/pull/80. --- Cargo.toml | 13 +++++++++++++ .../tree-cleanup/directories-next/Cargo.toml | 17 +++++++++++++++++ .../tree-cleanup/directories-next/src/lib.rs | 1 + substrate/tree-cleanup/option-ext/Cargo.toml | 14 ++++++++++++++ substrate/tree-cleanup/option-ext/src/lib.rs | 8 ++++++++ 5 files changed, 53 insertions(+) create mode 100644 substrate/tree-cleanup/directories-next/Cargo.toml create mode 100644 substrate/tree-cleanup/directories-next/src/lib.rs create mode 100644 substrate/tree-cleanup/option-ext/Cargo.toml create mode 100644 substrate/tree-cleanup/option-ext/src/lib.rs diff --git a/Cargo.toml b/Cargo.toml index 7b156fa33..8337bdf5d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,6 +36,8 @@ members = [ "coordinator/tributary", "coordinator", + "substrate/tree-cleanup/option-ext", + "substrate/tree-cleanup/directories-next", "substrate/tree-cleanup/bandersnatch_vrfs", "substrate/tree-cleanup/w3f-bls", @@ -100,6 +102,17 @@ lazy_static = { git = "https://github.com/rust-lang-nursery/lazy-static.rs", rev sp-core-hashing = { git = "https://github.com/serai-dex/polkadot-sdk", branch = "experimental" } sp-std = { git = "https://github.com/serai-dex/polkadot-sdk", branch = "experimental" } +# directories-next was created because directories was unmaintained +# directories-next is now unmaintained while directories is maintained +# The directories author pulls in ridiculously pointless crates and prefers +# copyleft licenses +# Serai's polkadot-sdk consolidated to directories-next, as directories-next is +# acceptable and because we couldn't consolidate to directories without forking +# wasmtime +# The following two patches resolve everything +option-ext = { path = "substrate/tree-cleanup/option-ext" } +directories-next = { path = "substrate/tree-cleanup/directories-next" } + # cargo believes the following are in-tree despite no features activating them # We provide empty crates to not only prove they're unused, yet also clean up # our Cargo.lock diff --git a/substrate/tree-cleanup/directories-next/Cargo.toml b/substrate/tree-cleanup/directories-next/Cargo.toml new file mode 100644 index 000000000..f7d733839 --- /dev/null +++ b/substrate/tree-cleanup/directories-next/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "directories-next" +version = "2.0.0" +description = "Patch from directories-next back to directories" +license = "MIT" +repository = "https://github.com/serai-dex/serai/tree/develop/substrate/tree-cleanup/directories-next" +authors = ["Luke Parker "] +keywords = [] +edition = "2021" +rust-version = "1.74" + +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] + +[dependencies] +directories = "5" diff --git a/substrate/tree-cleanup/directories-next/src/lib.rs b/substrate/tree-cleanup/directories-next/src/lib.rs new file mode 100644 index 000000000..fb4871e65 --- /dev/null +++ b/substrate/tree-cleanup/directories-next/src/lib.rs @@ -0,0 +1 @@ +pub use directories::*; diff --git a/substrate/tree-cleanup/option-ext/Cargo.toml b/substrate/tree-cleanup/option-ext/Cargo.toml new file mode 100644 index 000000000..6940b9673 --- /dev/null +++ b/substrate/tree-cleanup/option-ext/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "option-ext" +version = "0.2.0" +description = "Non-MPL option-ext with the exactly needed API for directories" +license = "MIT" +repository = "https://github.com/serai-dex/serai/tree/develop/substrate/tree-cleanup/option-ext" +authors = ["Luke Parker "] +keywords = [] +edition = "2021" +rust-version = "1.74" + +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] diff --git a/substrate/tree-cleanup/option-ext/src/lib.rs b/substrate/tree-cleanup/option-ext/src/lib.rs new file mode 100644 index 000000000..b075111ce --- /dev/null +++ b/substrate/tree-cleanup/option-ext/src/lib.rs @@ -0,0 +1,8 @@ +pub trait OptionExt { + fn contains(&self, x: &T) -> bool; +} +impl OptionExt for Option { + fn contains(&self, x: &T) -> bool { + self.as_ref() == Some(x) + } +}