Conversation
|
👋 Thanks for assigning @tnull as a reviewer! |
|
Looks like vss-server also needs something like lightningdevkit/ldk-node#1092 to fix MSRV CI checks |
tnull
left a comment
There was a problem hiding this comment.
Not opposed to the change, but could expand a bit on a) what headache you're referring to exactly and b) what's your use case for using the crates independently from the vss-server binary?
Changes themselves LGTM I think.
0d96d8d to
c257e98
Compare
|
Sure, let me expand on this a bit: a) We try really hard to use only one TLS stack (rustls) as much as we can. This is for hardening (avoid exposing more non-memory safe code to the open internet), build convenience (it's slightly annoying to configure openssl+pkgconfig in nix builds and dev machines), dependency minimization, reduced binary bloat, and reduced CI build time. So pulling in b) We're now running an internal VSS (inside our VPC with mTLS auth). It was actually really nice just pulling in the |
Okay, makes sense (though I'm not sure where I stand on the So, happy to have this land from my side, but @tankyleo still needs to review. |
|
Pushed a separate PR to fix MSRV CI issues: #117 |
| //! simplify the development process for Lightning wallets by providing a secure means to store | ||
| //! and manage the essential state required for Lightning Network (LN) operations. | ||
| //! | ||
| //! The `postgres-native-tls` feature enables the native TLS backend and is enabled by default. |
There was a problem hiding this comment.
nit: this seems a little out of place, can we delete it ?
There was a problem hiding this comment.
yeah now that I look at it, it definitely feels a bit tacked on. I'll remove this line.
on a related note, I notice there's no docs for the EDIT: nvm, I see brief mention in getting-started.jwt or sigs features (now also none for postgres-native-tls).
when looking at a new crate, I usually skim through the docs for an "Optional features" list like https://docs.rs/hyper/latest/hyper/#optional-features. so we should probably add similar somewhere. normally I would put that in the README.md or top-level crate lib.rs.
though, the current README.md reads more like a design doc than a project landing page. it might be worth placing more of the content from doc/getting-started.md more upfront in the README and put more of the current README into a doc/design.md
There was a problem hiding this comment.
added a small section to getting-started
There was a problem hiding this comment.
We don't update the Cargo.lock file in commit 4238833 so I am worried we may ship a piece of code in the future that no longer works with the declared minimum versions in this commit.
Is it worth adding some automated testing for this case ?
There was a problem hiding this comment.
sure, I usually do something like this in CI:
# Remove dev-deps from Cargo.toml to prevent `cargo update` determining minimal
# versions based on dev-deps.
cargo hack --remove-dev-deps --workspace
# Resolve direct dependencies using the min. version in our Cargo.toml's.
RUSTC_BOOTSTRAP=1 cargo update -Z direct-minimal-versions
cargo check --workspaceI'll add this
Make it easier to consume VSS crates as a library. I've limited direct crate dep semver versions to the first MSRV+semver compatible crate that compiles and passes all tests. * tokio-v1.30 is the first version that supports `OnceCell::const_new` without the `parking_lot` crate enabled
The `native-tls` crate adds a ton of build headache that I'd like to avoid if I'm not actually using it. This diff makes it possible to disable it.
c257e98 to
f4ae56b
Compare
Ensure that crates continue to build if we resolve dependencies to the minimal version specified in the Cargo.toml (vs the versions locked in the Cargo.lock).
server+impls: make postgres native TLS optional
The
native-tlscrate adds a ton of build headache that I'd like toavoid if I'm not actually using it. This diff makes it possible to
disable it.
cargo: relax direct dependency version requirements
Make it easier to consume VSS crates as a library. I've limited direct
crate dep semver versions to the first MSRV+semver compatible crate that
compiles and passes all tests.
OnceCell::const_newwithout the
parking_lotcrate enabled