-
Notifications
You must be signed in to change notification settings - Fork 231
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
Suboptimal Merlin dependency in 1.0.0-pre.3 breaks imports with batch feature #126
Comments
This fixes the "batch" feature, see dalek-cryptography#126.
Also introduces a workaround to dalek-cryptography/ed25519-dalek#126 (see workspace Cargo.toml)
remove deprecated comments for markdown generation update README fix licence line in python files clean up .pyc file Rename Libra into Primary update cargo dependencies (except ed25519-dalek and rand) Tiny cleanups / wart-removal Removing env_logger from fastpay_core Removing log from fastpay_core Update version dependencies Also introduces a workaround to dalek-cryptography/ed25519-dalek#126 (see workspace Cargo.toml)
remove deprecated comments for markdown generation update README fix licence line in python files clean up .pyc file Rename Libra into Primary update cargo dependencies (except ed25519-dalek and rand) Tiny cleanups / wart-removal Removing env_logger from fastpay_core Removing log from fastpay_core Update version dependencies Also introduces a workaround to dalek-cryptography/ed25519-dalek#126 (see workspace Cargo.toml) Update license
This should be closed by #127 as soon as a corresponding release is issued. |
We're encountering this as well: https://github.com/OLSF/libra/pull/103/checks?check_run_id=825672145 |
@tarcieri this link is not public I'm afraid. Until eddsa 1.0.0-pre4 is released, a workaround is to add this to the root Cargo.toml:
which should not change the ed25519 version fundamentally (the default branch for ed25519 is its release branch), but will force cargo resolution for ed25519 to follow the "git" flavors over the conflicting version number, thereby depending on the particular patched ("gitted") merlin that "works" with the "batch" feature. |
Workaround for dalek-cryptography/ed25519-dalek#126 Co-authored-by: Tony Arcieri <[email protected]>
The batch feature is not working due to a combination of: - dalek-cryptography/ed25519-dalek#126 and: - our x tooling unifying all features, and throwing batch into the mix as soon as it exists, despite it not being used, - the new reoslver not being switched on (diem#3134) A fix has been mered upstream in dalek-cryptography/ed25519-dalek#127 but is not released yet, leaving us bereft of a fixed ed25519_dalek version to point to. We could patch the merlin reference on crates.io, except the fixed merlin version is just at the boundary of a major version, and major version incompatibilities halt patch overrides (rust-lang/cargo#5640). Since there is tooling that urgently relies on correct version resolution to work and is suggesting the rather extreme measure of putting this technical fix in our formally-verified-crypto fork (novifinancial/ed25519-dalek-fiat#8), I think we would rather de-activate the feature entirely. A mention of it in code is explicitly left in (with no side effects) as a reminder to reinstate it once either of the following happens: - we switch to the new resolver, - a fixed dalek is released, - x has the ability to not run with all features.
The batch feature is not working due to a combination of: - dalek-cryptography/ed25519-dalek#126 and: - our x tooling unifying all features, and throwing batch into the mix as soon as it exists, despite it not being used, - the new reoslver not being switched on (diem#3134) A fix has been mered upstream in dalek-cryptography/ed25519-dalek#127 but is not released yet, leaving us bereft of a fixed ed25519_dalek version to point to. We could patch the merlin reference on crates.io, except the fixed merlin version is just at the boundary of a major version, and major version incompatibilities halt patch overrides (rust-lang/cargo#5640). Since there is tooling that urgently relies on correct version resolution to work and is suggesting the rather extreme measure of putting this technical fix in our formally-verified-crypto fork (novifinancial/ed25519-dalek-fiat#8), I think we would rather de-activate the feature entirely. A mention of it in code is explicitly left in (with no side effects) as a reminder to reinstate it once either of the following happens: - we switch to the new resolver, - a fixed dalek is released, - x has the ability to not run with all features.
Thanks! I'm about to release a 1.0.0-pre.4 which should resolve this, but feel free to reopen if not. |
The batch feature is not working due to a combination of: - dalek-cryptography/ed25519-dalek#126 and: - our x tooling unifying all features, and throwing batch into the mix as soon as it exists, despite it not being used, - the new reoslver not being switched on (#3134) A fix has been mered upstream in dalek-cryptography/ed25519-dalek#127 but is not released yet, leaving us bereft of a fixed ed25519_dalek version to point to. We could patch the merlin reference on crates.io, except the fixed merlin version is just at the boundary of a major version, and major version incompatibilities halt patch overrides (rust-lang/cargo#5640). Since there is tooling that urgently relies on correct version resolution to work and is suggesting the rather extreme measure of putting this technical fix in our formally-verified-crypto fork (novifinancial/ed25519-dalek-fiat#8), I think we would rather de-activate the feature entirely. A mention of it in code is explicitly left in (with no side effects) as a reminder to reinstate it once either of the following happens: - we switch to the new resolver, - a fixed dalek is released, - x has the ability to not run with all features. Closes: #5061 Approved by: rexhoffman
Workaround for dalek-cryptography/ed25519-dalek#126 Co-authored-by: Tony Arcieri <[email protected]>
Workaround for dalek-cryptography/ed25519-dalek#126 Co-authored-by: Tony Arcieri <[email protected]>
Workaround for dalek-cryptography/ed25519-dalek#126 Co-authored-by: Tony Arcieri <[email protected]>
Steps to reproduce
cargo init
) in an empty directoryCargo.toml
:ed25519-dalek = { version = "1.0.0-pre.3", features = ["batch"] }
cargo check
https://gist.github.com/e8b3b975b8d4350d1f65620ed6aff650
cargo tree
, witness the following resolution (note merlin):https://gist.github.com/2af621421014abdb3df3b40859f04612
Cause
The
batch
feature activates bothmerlin
andrand
, and though the entire dalek suite recently updated its libraries to support a recent flavor ofrand
, the particular dependency set formerlin
currently depends on the source-incompatible rand 0.4.2:Since the demo repository above requires ed25519-dalek by version, the version requirement "wins" against the "conflicting" git attribute, making isislovecruft/merlin@c483190 irrelevant and leading to a resolution of crates-io's merlin 1.3.0.
Fix
The update of the rand dependencies to a version (much) posterior to 0.5 is already in merlin, all that's left is to update the merlin dependency to match.
The text was updated successfully, but these errors were encountered: