-
Notifications
You must be signed in to change notification settings - Fork 684
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
synth-bm: include it in the root workspace #12901
base: master
Are you sure you want to change the base?
Conversation
# Renaming since currently the name of an unpublished workspace member collides with `near-jsonrpc-client`. Once #12908 is resolved, the crate here should be used with its original name. | ||
ext-near-jsonrpc-client = { version = "0.15.1", package = "near-jsonrpc-client" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By using a different name, it's possible to add near-jsonrpc-client
from crates.io to the workspace dependencies. I think that's a slight improvement because it:
- reduces the number of dependencies that cannot be inherited from the workspace
- makes it more explicit that there are two different
near-jsonrpc-client
crates
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like the amount of version conflicts make it not worth it, then using local near-jsonrpc-client
is a better first step.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #12901 +/- ##
===========================================
+ Coverage 1.73% 70.29% +68.56%
===========================================
Files 675 857 +182
Lines 121457 175449 +53992
Branches 121457 175449 +53992
===========================================
+ Hits 2108 123335 +121227
+ Misses 119246 46990 -72256
- Partials 103 5124 +5021
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
For |
{ name = "near-chain-configs", version = "=0.0.0" }, | ||
{ name = "near-config-utils", version = "=0.0.0" }, | ||
{ name = "near-crypto", version = "=0.0.0" }, | ||
{ name = "near-fmt", version = "=0.0.0" }, | ||
{ name = "near-jsonrpc-client", version = "=0.0.0" }, | ||
{ name = "near-jsonrpc-primitives", version = "=0.0.0" }, | ||
{ name = "near-parameters", version = "=0.0.0" }, | ||
{ name = "near-primitives", version = "=0.0.0" }, | ||
{ name = "near-primitives-core", version = "=0.0.0" }, | ||
{ name = "near-schema-checker-core", version = "=0.0.0" }, | ||
{ name = "near-schema-checker-lib", version = "=0.0.0" }, | ||
{ name = "near-schema-checker-macro", version = "=0.0.0" }, | ||
{ name = "near-stdx", version = "=0.0.0" }, | ||
{ name = "near-time", version = "=0.0.0" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You shouldn't allow local crates at all. The order of priority is to allow the older external crates, then the external crate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It'd be nice to have short comments on what's our main goal to use deny.toml
. It took me a while to understand. Looks like the goal is "restrict using duplicate versions + deny some specific versions + allow multiple versions where it's unavoidable" and meaning of keywords "deny" and "skip" isn't obvious here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't believe "restrict using duplicate versions" is a goal: we never really pushed much against adding to the list of exceptions here. In fact we would have much harder time maintaining protocol compatibility if we couldn't duplicate our dependencies.
However what our use of deny.toml
does okay is nudging us to update our dependencies once in a while when pulling in an external dependency inevitably duplicates some transient dependencies that don't pose a risk on our protocol compatibility. Exactly as seen with some of the dependencies below.
Now, since I wasn't the one to introduce cargo deny, I can only guess what the original intention was, but I'm about 90% sure it was somewhere along the lines of "eh, why not…" rather than something profound. And whatever benefit that gets derived from the tool is fairly subjective between maintainers of this repo :)
{ name = "base64", version = "=0.21.0" }, | ||
{ name = "http", version = "=0.2.12" }, | ||
{ name = "http-body", version = "=0.4.6" }, | ||
{ name = "hyper", version = "=0.14.28" }, | ||
{ name = "hyper-tls", version = "=0.5.0" }, | ||
{ name = "reqwest", version = "=0.11.17" }, | ||
{ name = "smart-default", version = "=0.6.0" }, | ||
{ name = "socket2", version = "=0.4.9" }, | ||
{ name = "winreg", version = "=0.10.1" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Try updating the crates to unify the dependencies before allowing them. I don't see any reason why we shouldn't be bumping our base64 or http related crates and situations like these are a perfect opportunity.
Closes #12887