fix(types): drop the signer-local feature gating a mandatory dependency - #301
fix(types): drop the signer-local feature gating a mandatory dependency#301JspIIV wants to merge 1 commit into
Conversation
arc-consensus-types does not build with --no-default-features:
error[E0432]: unresolved import `malachitebft_signing_ed25519`
--> crates/types/src/proposal_part.rs:26:5
--> crates/types/src/codec/proto.rs:28:5
--> crates/types/src/signing.rs:21:9
--> crates/types/src/ssz/v1/vote.rs:21:5
signer-local marks malachitebft-signing-ed25519 optional, but those four
modules import it unconditionally, so the crate cannot compile without it.
The feature offers no optionality: nothing in the workspace names
arc-consensus-types/signer-local, and there is no cfg(feature = "signer-local")
anywhere in the tree.
Make the dependency mandatory, which is what it already is, and remove the
feature along with the default that enabled it.
|
Independently verified this at head
One thing the PR body should acknowledge: this duplicates #237, the open PR by the #236 reporter — the issue body itself says "Opened as #237". The material difference today is that #237 has gone stale into a merge conflict ( Context on why this survived unnoticed: no CI workflow exercises |
|
Thanks for the verification, and for catching the duplication — that one is on me. I worked from #236 and missed the "Opened as #237" line in the issue body, so I did not see that @mehmetkr-31 had already published the same change on Aug 8, three weeks before this. #237 is the same fix in the same file. It came first and it should get the credit. The only difference is that it now conflicts, and only because the If it is useful in the meantime, the two extra findings from your comment are worth carrying over to #237 whichever way it goes:
Per-crate check results from this branch, in case they save anyone a rerun on #237: |
|
Clean handling — and events have already met your closing condition: #237 was rebased about nine minutes after this comment ( One measurement that makes your "saves anyone a rerun" offer exact rather than approximate: I diffed the two heads directly — On the residual So the full map for maintainers is now: #237 lands #236's fix, #231 lands #233's, one trivial rebase between them in either order, and #240 is the guard that keeps the class closed. This PR served its purpose — it forced the rebase check that got #237 unstuck. |
|
Closing as promised — #237 has been rebased and is mergeable, so this has nothing left to add. Thanks @mehmetkr-31 for the quick rebase, and @osr21 for the diff check confirming the two heads are identical. #237 is the one to land: it was opened three weeks earlier, it carries its approval, and it is the reporter's own fix. |
Closes #236.
What
arc-consensus-typesdoes not build with--no-default-features:signer-localmarksmalachitebft-signing-ed25519optional, but those four modules import it unconditionally, so the crate cannot compile without it.The feature is not optionality
It gates a dependency that is mandatory in practice, and nothing selects it:
arc-consensus-types/signer-local— the onlysigner-localmatches elsewhere arealloy-signer-local, an unrelated cratecfg(feature = "signer-local")anywhere in the treeSo the feature has exactly one effect: it makes
--no-default-featuresfail. Making the dependency mandatory removes that without changing what any consumer gets, sincedefaultturned it on for everyone already.Checks
cargo check -p arc-consensus-types --no-default-featurescargo check -p arc-consensus-typescargo check -p arc-consensus-dbcargo check -p arc-signercargo check -p arc-remote-signercargo check -p arc-node-consensus-cliTwo things I could not exercise, both failing identically on an untouched tree here:
cargo check -p arc-consensus-types --all-featuresfails onarbitrary— that is bug: arc-consensus-typesarbitraryfeature does not build standalone #233, which this change does not touch.arc-node-consensusand the full--workspacecheck needlibclangforreth-mdbx-sysandlibrocksdb-sys, which this Windows checkout does not have. CI covers it.