Skip to content

v2.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 23 Oct 16:31
· 634 commits to main since this release
f306f9a

Lockfiles

Lockfiles are a common mechanism that allows package manager to lock dependencies to concrete versions, ensuring reproducible builds.

When specifying project dependencies, you define version requirements. Usually, those requirements can accept multiple versions. For instance, specifying 1.2.3 would allow all versions >=1.2.3 and <2.0.0. Similarly, the specification alexandria_math = { git = "https://github.com/keep-starknet-strange/alexandria.git", branch = "next" } can be resolved to more than one commit hash. Up to this version, Scarb would always pull the latest commit from the branch next, which may change between Scarb runs. This not recommended, as some regressions or incompatibilities may be introduced in the new commit. Additionally, for security reasons users should control what changes are pulled to their builds. Consequently, users often had to manually lock their dependency revisions, e.g. by specifying the commit hash from the dependency package repository in the manifest file.

Lockfiles automatically lock dependencies to a certain revisions, by writing resolved versions to a file beside the project manifest called Scarb.lock. This file is then read before Scarb resolves dependencies, and locked versions are used by the resolver. If you change your dependencies specification in the manifest file, lockfile will change as well. Lockfiles contain exact specifications of all packages from full tree of dependencies (including dependencies of dependencies etc.). Scarb lockfiles can easily be reviewed by the user.

Lockfiles should be commited to version control systems, allowing for full tracking of concrete version changes.

Cairo Version

This version of Scarb comes with Cairo v2.3.0.

What's Changed

New Contributors

Full Changelog: v2.3.0-rc1...v2.3.0