Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump deps #82

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open

Bump deps #82

wants to merge 11 commits into from

Conversation

rustworthy
Copy link
Collaborator

@rustworthy rustworthy commented Nov 2, 2024

This change is Reviewable

Copy link

codecov bot commented Nov 2, 2024

Codecov Report

Attention: Patch coverage is 0% with 1 line in your changes missing coverage. Please review.

Project coverage is 67.5%. Comparing base (6ff7d60) to head (54e30bc).

Files with missing lines Patch % Lines
src/tls/rustls.rs 0.0% 1 Missing ⚠️
Additional details and impacted files
Files with missing lines Coverage Δ
src/tls/native_tls.rs 0.0% <ø> (ø)
src/tls/rustls.rs 0.0% <0.0%> (ø)

... and 1 file with indirect coverage changes

---- 🚨 Try these New Features:

Cargo.toml Show resolved Hide resolved
Makefile Show resolved Hide resolved
Cargo.toml Outdated
binaries = ["dep:clap", "tokio/macros"]
ent = []

[dependencies]
async-trait = "0.1.77"
clap = { version = "4.4.10", optional = true }
chrono = { version = "0.4", features = [
chrono = { version = "0.4.20", features = [
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we were locked above this patch version, but still it's worth tightening due to potential vulnerability. Yay for deps.rs !

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, vulnerabilities shouldn't be patched in consumers through their Cargo.toml bounds — the lockfile is for this. The manifest (Cargo.toml) is just for declaring bounds on what's possible to build with. We don't want to restrict this to a newer version unnecessarily as it would mean consumers that are locked on an older version for some reason are stuck without a path forward.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I agree that the bounds should be kept as low as possible, especially if the library is not relying on features added in minors and patches of its dependencies. However, a vulnerability fix may (should?) be considered a feature we are relying upon, so I am not sure this is an "unnecessary" bump. It somehow feels not right.

And also can they really get locked on an older version in this case? If they could build their app with 0.4.0 till 0.4.19, they should be able to build with 0.4.20.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, a vulnerability fix is not something we depend on :)

And yes, they can, such as if they use <= or = dependency specifiers.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is technically possible, but I mean logically why would they go with <=0.4.19 or =0.4.19 for example :)

@rustworthy rustworthy changed the title [WIP] Bump deps Bump deps Nov 3, 2024
@rustworthy rustworthy requested a review from jonhoo November 3, 2024 06:33
Comment on lines +49 to +50
tokio-rustls = { version = "0.26", optional = true }
rustls-platform-verifier = { version = "0.4", optional = true }
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've paged this out already (blame the holiday 😅), but do we have types from either of these in our public API (esp. in trait implementations)? If so, this change will require a major version bump for faktory as well.

Copy link
Collaborator Author

@rustworthy rustworthy Nov 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our TlsStream derefs to tokio_rustls' stream.

Besides, TlsStream::with_client_config accepts a config struct from rustls. We are using rustls re-exported from tokio_rustls, and a major bump also took place there.

As for rustls-platform-verifier - it's not part of our API.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this probably - and unfortunately - should be a 0.14.0 release candidate.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alternatively, we can postpone these bumps and batch with other libs major versions updates that may come in the next couple of months.

I am now doing #61 and then will take #88. Bot of them are only extending what we currently got.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, that's unfortunate. Yeah, I think let's maybe hold off then in case we see other breaking changes coming down the line 👍

@rustworthy rustworthy requested a review from jonhoo November 19, 2024 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants