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