github software-mansion/scarb v0.3.0
0.3.0

latest releases: v2.12.2, cairo-lang-macro/v0.2.1, cairo-lang-macro-attributes/v0.2.1...
2 years ago

Scarb 0.3.0

Welcome to the release notes for Scarb v0.3.0!

The starknet package

BREAKING CHANGE: This package is now a mandatory dependency for contract packages in order to successfully build.

The new starknet package, is meant to become the core package, but for Starknet development. Currently, it is limited to encapsulating the Starknet compiler plugins, but in the future we plan to move the starknet module from core to this new package. starknet is currently magically implemented in Scarb itself, but we plan eventually to publish it as a regular package, when all the work on compiler plugins will settle down.

Scarb does not load the Starknet plugin by default now. This change means, that in order to make a contract package the whole snipped to include in Scarb.toml looks like this now:

[dependencies]
starknet = ">=1.0.0"
 
[[target.starknet-contract]]

Scarb will produce warnings if you compile a Starknet contract, but forgot to declare dependency on starknet. Note that this is a soft warning: Scarb will proceed with compilation, and it will highly probably abort with compilation errors.

For more information about this package, check out its dedicated documentation page.

scarb-metadata updates

We have released a sizeable update to the scarb-metadata package: 1.4.2. It includes several new fields that Scarb 0.3 is now populating, removes deprecated ones, plus includes a new PackagesFilter struct for shared implementation of the frequently needed --package argument for use by extensions.

For all changes, we recommend checking out comparison between scarb-metadata 1.3.0 and 1.4.2 on diff.rs.

Examples

We pushed some minimal examples of Scarb projects to our repository. We hope this will bring a new dimension to Scarb's documentation and will be a great help for newcomers. In the future, new examples will definitely appear, and we are happy to get any ideas what could we include (or: PRs are welcome!).

Minor changes

  • We updated MRSV for all crates to 1.69.
  • Scarb now generates minified JSON files for Starknet contracts files.
  • The Starknet compiler now outputs a starknet_artifacts.json file which contains a summary describing all generated files, which primary includes a mapping from (package, contract name) to generated class files.

Cairo version

This version of Scarb comes with Cairo v1.1.0.

What's Changed

  • Create ManifestBuilder and move checks inside by @mkaput in #360
  • Change occurences of quaireaux to alexandria by @mkaput in #365
  • Create Scarb vs Cargo page in docs by @mkaput in #334
  • Documentation updates for starknet package by @mkaput in #368
  • Make scarb clean not error if target directory is not present by @mkaput in #371
  • Remove unnecessary metadata from scarb-cairo-language-server Cargo.… by @mkaput in #375
  • Fix list-binaries.sh to list exts in separate lines by @mkaput in #377
  • Update Cairo to 1.1.0 by @mkaput in #381
  • New scarb-metadata features by @mkaput in #379

Full Changelog: v0.2.1...v0.3.0

Don't miss a new scarb release

NewReleases is sending notifications on new releases.