Skip to content

Commit

Permalink
Add patches for directories-next/option-ext
Browse files Browse the repository at this point in the history
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 dirs-dev/dirs-sys-rs#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
harryfei/which-rs#80.
  • Loading branch information
kayabaNerve committed Dec 30, 2023
1 parent 24ea65e commit 8b26a85
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 21 deletions.
18 changes: 1 addition & 17 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 12 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ members = [
"tests/coordinator",
"tests/full-stack",
"tests/reproducible-runtime",

"patches/option-ext",
"patches/directories-next",
]

# Always compile Monero (and a variety of dependencies) with optimizations due
Expand All @@ -93,12 +96,17 @@ panic = "unwind"
# https://github.com/rust-lang-nursery/lazy-static.rs/issues/201
lazy_static = { git = "https://github.com/rust-lang-nursery/lazy-static.rs", rev = "5735630d46572f1e5377c8f2ba0f79d18f53b10c" }

# subxt *can* pull these off crates.io yet there's no benefit to this
sp-core-hashing = { git = "https://github.com/serai-dex/substrate" }
sp-std = { git = "https://github.com/serai-dex/substrate" }

# Needed due to dockertest's usage of `Rc`s when we need `Arc`s
dockertest = { git = "https://github.com/kayabaNerve/dockertest-rs", branch = "arc" }

# 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
# The following two patches resolve everything
option-ext = { path = "patches/option-ext" }
directories-next = { path = "patches/directories-next" }

[workspace.lints.clippy]
unwrap_or_default = "allow"
borrow_as_ptr = "deny"
Expand Down
17 changes: 17 additions & 0 deletions patches/directories-next/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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/patches/directories-next"
authors = ["Luke Parker <lukeparker5132@gmail.com>"]
keywords = []
edition = "2021"
rust-version = "1.74"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
directories = "5"
1 change: 1 addition & 0 deletions patches/directories-next/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pub use directories::*;
14 changes: 14 additions & 0 deletions patches/option-ext/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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/patches/option-ext"
authors = ["Luke Parker <lukeparker5132@gmail.com>"]
keywords = []
edition = "2021"
rust-version = "1.74"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
8 changes: 8 additions & 0 deletions patches/option-ext/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
pub trait OptionExt<T: PartialEq> {
fn contains(&self, x: &T) -> bool;
}
impl<T: PartialEq> OptionExt<T> for Option<T> {
fn contains(&self, x: &T) -> bool {
self.as_ref() == Some(x)
}
}

0 comments on commit 8b26a85

Please sign in to comment.