Skip to content

Releases: software-mansion/scarb

v2.4.0-rc6

27 Nov 09:38
813ace6
Compare
Choose a tag to compare
v2.4.0-rc6 Pre-release
Pre-release

Cairo release notes ➡️

Warning

This version is not supported on Starknet! If you want to develop contracts deployable to current Starknet, please stick with Scarb v2.3.1

Welcome to the release notes for Scarb v2.4.0-rc6!
This quick release is primarily a Cairo upgrade.

Cairo Version

This version of Scarb comes with Cairo v2.4.0-rc6.

What's Changed

Full Changelog: v2.4.0-rc5...v2.4.0-rc6

v2.4.0-rc5

26 Nov 11:57
ac50545
Compare
Choose a tag to compare
v2.4.0-rc5 Pre-release
Pre-release

Cairo release notes ➡️

Warning

This version is not supported on Starknet! If you want to develop contracts deployable to current Starknet, please stick with Scarb v2.3.1

Welcome to the release notes for Scarb v2.4.0-rc5!
This quick release is primarily a Cairo upgrade.

Cairo Version

This version of Scarb comes with Cairo v2.4.0-rc5.

What's Changed

  • Document and make private SourceKind::can_lock_source_kind by @mkaput in #930
  • Add ChildPathEx::read_to_string by @mkaput in #933
  • Bump itertools to 0.12.0 by @mkaput in #936
  • Fill missing docs in resolver area and remove unnecessary method by @mkaput in #938

Full Changelog: v2.4.0-rc4...v2.4.0-rc5

v2.4.0-rc4

24 Nov 12:50
ba27952
Compare
Choose a tag to compare
v2.4.0-rc4 Pre-release
Pre-release

Cairo release notes ➡️

Warning

This version is not supported on Starknet! If you want to develop contracts deployable to current Starknet, please stick with Scarb v2.3.1

Welcome to the release notes for Scarb v2.4.0-rc4!
This quick release includes following small improvements.

Formatter emit option

Since this release, when formatting your project with scarb fmt you can use --emit stdout argument. With this argument, Scarb will not make any changes to the files on your disk. Instead, full new content of formatted files will be printed to stdout, prepended with their path. Files that had already been in a correct format will not be emitted.

Environmental variables in scripts

Since this release, all environmental variables inherited by Scarb will be passed to package scripts runtime. This will allow you, to read external variables inside your scripts.

Cairo Version

This version of Scarb comes with Cairo v2.4.0-rc4.

What's Changed

New Contributors

Full Changelog: v2.4.0-rc3...v2.4.0-rc4

v2.4.0-rc3

20 Nov 19:32
fa3b3b6
Compare
Choose a tag to compare
v2.4.0-rc3 Pre-release
Pre-release

Cairo release notes ➡️

Warning

This version is not supported on Starknet! If you want to develop contracts deployable to current Starknet, please stick with Scarb v2.3.1

Welcome to the release notes for Scarb v2.4.0-rc3!
This quick release is primarily a Cairo upgrade.

Cairo Version

This version of Scarb comes with Cairo v2.4.0-rc3.

What's Changed

  • Introduce RegistryClientCache stub by @mkaput in #808
  • Use constant mtime for packaged tarballs by @mkaput in #898
  • Bump the non-critical group with 3 updates by @dependabot in #899
  • Implement caching of records returned from registry clients by @mkaput in #809
  • Set up machinery for testing HTTP interactions of HTTP registry by @mkaput in #818
  • Detect target name duplicates across workspace by @maciektr in #900
  • Add PackagesFilterLong without short clap arguments by @maciektr in #902
  • Prepare scarb-ui release 0.1.2 by @maciektr in #905
  • Handle readme and license files in scarb package by @szymmis in #897
  • Implement records caching on HttpRegistryClient level by @mkaput in #819
  • Add AsyncFileLockGuard by @mkaput in #844
  • Impl Clone for Filesystem by @mkaput in #845
  • Implement caching of downloaded tarballs by @mkaput in #846
  • Cache index configs by @mkaput in #892
  • Fix clippy errors after update by @maciektr in #913
  • Move validation before usage in build-external glob selectors by @maciektr in #914
  • Fix failing tests by adjusting stderr message assertions by @szymmis in #915
  • Handle checksums in registry packages by @mkaput in #906

Full Changelog: v2.4.0-rc2...v2.4.0-rc3

v2.4.0-rc2

13 Nov 17:39
17df366
Compare
Choose a tag to compare
v2.4.0-rc2 Pre-release
Pre-release

Cairo release notes ➡️

Warning

This version is not supported on Starknet! If you want to develop contracts deployable to current Starknet, please stick with Scarb v2.3.1

Welcome to the release notes for Scarb v2.4.0-rc2!
This quick release is primarily a Cairo upgrade.

Cairo Version

This version of Scarb comes with Cairo v2.4.0-rc2.

What's Changed

Full Changelog: v2.4.0-rc1...v2.4.0-rc2

v2.4.0-rc1

09 Nov 17:33
2df52d3
Compare
Choose a tag to compare
v2.4.0-rc1 Pre-release
Pre-release

Cairo release notes ➡️

Warning

This version is not supported on Starknet! If you want to develop contracts deployable to current Starknet, please stick with Scarb v2.3.1

Welcome to the release notes for Scarb v2.4.0-rc1! This quick release is primarily a Cairo upgrade.

Cairo Version

This version of Scarb comes with Cairo v2.4.0-rc1.

What's Changed

New Contributors

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

v2.4.0-rc0

08 Nov 12:41
4d5e0a8
Compare
Choose a tag to compare
v2.4.0-rc0 Pre-release
Pre-release

Cairo release notes ➡️

Warning

This version is not supported on Starknet! If you want to develop contracts deployable to current Starknet, please stick with Scarb v2.3.1

Editions

Since this release, Scarb supports defining Cairo compiler edition for a package. The editions allow newer Cairo compiler versions to introduce opt-in features that may break existing code.

The edition can be defined with edition key in [package] section in Scarb manifest.

[package]
name = "hello_world"
version = "1.0.0"
edition = "2023_10"

Setting the edition key in [package] will affect all targets in the package, including test suites etc.

scarb update

Since the introduction of lockfiles, Scarb will not automatically update all dependencies on each run. The update of locked versions can be requested with the scarb update command. This will perform project resolution ignoring the existing lockfile, then write out a new Scarb.lock with the new version information. Note that the Scarb.toml manifest file will not be changed, and all version requirements from it will be preserved.

Cairo Version

This version of Scarb comes with Cairo v2.4.0-rc0.

What's Changed

New Contributors

Full Changelog: v2.3.1...v2.4.0-rc0

v2.3.1

31 Oct 14:29
0c8def3
Compare
Choose a tag to compare

This release is focused solely on bugfixes in Scarb and Cairo. Check out merged PRs list for more detailed information.

Cairo Version

This version of Scarb comes with Cairo v2.3.1.

What's Changed

  • Use FromStr for Lockfile by @maciektr in #810
  • Bump the non-critical group with 1 update by @dependabot in #812
  • Use requires_gas_counter helper by @maciektr in #814
  • Stop lockfile e2e tests from overwriting existing example locks by @maciektr in #813
  • Fix release branch naming in maintaining docs by @maciektr in #816
  • Allow ignoring example project by name in test_for_each_example macro by @maciektr in #824
  • Make profile args take precedence over env by @szymmis in #825
  • Include get_dep_component! and get_dep_component_mut! macros in the starknet package by @mkaput in #833
  • Docs: Use kebab-case for formatting options by @maciektr in #836
  • Add lockfile docs by @maciektr in #829

Full Changelog: v2.3.0...v2.3.1

v2.3.0

23 Oct 16:31
f306f9a
Compare
Choose a tag to compare

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

v2.3.0-rc1

09 Oct 12:53
00cfedd
Compare
Choose a tag to compare
v2.3.0-rc1 Pre-release
Pre-release

Tests compilation is fast again

We have identified several performance regressions in changes related to tests compilation, and we fixed them in this release.

scarb-ui on crates.io

The scarb-ui crate has been published to crates.io: https://crates.io/crates/scarb-ui. We do not commit yet to its stability, and expect this crate to be <1.0 for a long time. All breaking changes will cause a major release (i.e. 0.1.0 to 0.2.0 etc.)

Started work on Scarb packages registry and Scarb.lock

This release contains the first changes to Scarb to support package registries and Scarb lockfile. The newly added scarb package command is unfinished and undocumented yet, and we do not recommend relying on this. You are welcome to experiment with it though 😊

Cairo Version

This version of Scarb comes with Cairo v2.3.0-rc0.

What's Changed

New Contributors

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