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 |
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).
| tokio = { version = "1.30", default-features = false, features = ["rt", "macros"] } | ||
| native-tls = { version = "0.2.4", default-features = false } | ||
| postgres-native-tls = { version = "0.5", default-features = false, features = ["runtime"] } | ||
| log = { version = "0.4.8", default-features = false } |
There was a problem hiding this comment.
nit: looks like we can still pull this down to 0.4.6 ? Same for server/Cargo.toml.
| include `sub` and `exp` claims, and omit `aud`; `sub` becomes the VSS storage user token. VSS only | ||
| verifies tokens, you must run the service that issues them. | ||
|
|
||
| ### Optional Features |
There was a problem hiding this comment.
Let's put this section right after prerequisites above, with a H2 header instead of H3
| rustup default ${{ env.TOOLCHAIN }} | ||
| rustup component add rustfmt | ||
| - name: Run rustfmt checks | ||
| run: cargo fmt --check |
There was a problem hiding this comment.
we've got this check already in ping-tests.yml I know it's hidden away in there.
Let's drop the fmt command in ping-tests.yml, and use fmt --all --check here
| cargo check --workspace | ||
| cargo check --workspace --no-default-features |
There was a problem hiding this comment.
Sounds like we can do a single
cargo hack check --workspace --each-feature --locked
here to test all feature combinations ?
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