rusk
rusk copied to clipboard
Patch freeze external dependencies
Summary
We are currently in a feature freeze as we finalize our mainnet candidate. To make sure we are not at risk of supply-chain attacks or semver breaks, it is necessary to patch-freeze all external dependencies. This step is crucial to prevent unexpected updates or changes in third-party crates that could introduce bugs or vulnerabilities.
The goal is to lock dependencies to specific patch versions across both the Rusk binary and actively developed internal libraries.
Possible solution design or implementation
We need to do 4 things:
- Commit the
Cargo.lock
for the Rusk binary. - Patch-freeze all external libraries for internal libraries. For example, update
rkyv = { version = "0.7" }
torkyv = { version = "=0.7.43" }
. - Where feasible, move common dependencies into the top-level workspace. This way the members will inherit the same dependency version. See Inheriting a dependency from a workspace.
- Resolve any dependency conflict between external libraries which can pop up from version locking.