chore: update keyring
to version 3
#4057
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
This PR updates the dependency
keyring
to version 3, from version 1.2 before.Why
Having such an old version of keyring was causing the SDK to have duplicate versions of many dependencies, because the old version of keyring was pulling in old versions of lots of other libraries.
For example, previously the SDK was depending on rustix 0.37 as well as rustix 0.38. It was also depending on two versions of cipher, two versions of aes, two versions of hmac, two versions of proc-macro-crate, two versions of toml, two versions of socket2, two versions of async-lock, two versions of fastrand, and two versions of nix.
After this PR, the SDK will only depend on one version of each of these libraries. This will speed up build times and probably make the binary slightly smaller. At least, I think it should, I didn't measure it. One potential issue is that this PR starts us vendoring openssl - but I have no idea how to avoid this (it seems like we get CI errors otherwise). On the other hand, it seems like a smaller problem than having so many duplicate dependencies, and I will put some more time into trying to figure out how to avoid it.
How Has This Been Tested?
cargo clippy
andcargo test
Checklist: