v2.9.1
Welcome to the release notes for Scarb v2.9.1!
This release includes several new developments and fixes.
-
Interface changes
- Allow ignoring Cairo version checks - Version requirements defined in
cairo-version
fields in package manifests can be ignored with new--ignore-cairo-version
flag. - Add redeposit gas flag - Compiler config now includes
add_redeposit_gas
flag.
- Allow ignoring Cairo version checks - Version requirements defined in
-
Compilation model changes
- Component dependencies in Scarb metadata - Scarb metadata includes information about dependencies of each component in a compilation unit.
- Integration tests features - Integration tests should be compiled with the same feature set, as the main package.
- Disallow imports by target name in integration tests - Integration tests cannot rely on test target name to reference self in imports and should use
use crate::(...)
instead.
-
Warnings and diagnostics
- Edition unset warnings - Warnings are emitted for all loaded packages with no edition set in package manifest.
- Warnings from dependencies silenced when building tests - Warnings originating in package dependencies are silenced when building package tests.
-
Bug fixes
- Fix registry client cache file - Simultaneous access to a registry client cache file could result in interrupted downloads due to a race condition, fixed with advisory lock.
-
Procedural macros changes
- Packaging procedural macros - Packages implementing procedural macros (with
[cairo-plugin]
target) can now be packaged withscarb package
and published withscarb publish
. - Inline procedural macro arguments - Inline procedural macros defined with Scarb do not get function name as part of the arguments token stream - only the associated arguments list (with delimiters).
- Fix check command for procedural macros - Scarb check now properly builds all procedural macros required by the package.
- Packaging procedural macros - Packages implementing procedural macros (with
-
New Scarb doc features
- Reexported modules documentation support - Documentation generated with
scarb doc
now includes docs of modules reexported from the package. - Cross item linkeage support - Generated project documentation now resolves item references with
[some::cairo::path]
syntax, as clickable links. - Struct members signature - Documentation of structs, generated with
scarb doc
now includes struct's members signatures. - Diagnostics when generating documentation - If generating documentation of a package fails due to invalid Cairo code, Scarb should exit gracefully while showing compiler diagnostics instead of panicking.
- Hiding docs of impls of hidden traits - Impls of traits hidden with
doc(hidden)
attributes are skipped when generating documentation withscarb doc
. - Corelib documentation on Scarb website - Cairo core library documentation is now automatically published on Scarb documentation website with every release.
- Reexported modules documentation support - Documentation generated with
Cairo Version
This version of Scarb comes with Cairo v2.9.1
.
What's Changed
- Test compilation diagnostics reporter by @maciektr in #1577
- Dependencies crate settings by @wawel37 in #1616
- Use compiler's paths directly / remove workaround code by @wawel37 in #1609
- Doc/support reexported modules by @wawel37 in #1620
- Cairo update by @maciektr in #1625
- Add signature for struct's member by @wawel37 in #1601
- Pass contract declarations to compile_test_prepared_db / Cairo update by @maciektr in #1636
- Do not allow importing by test target name in integration tests by @maciektr in #1634
- Update Cairo by @maciektr in #1641
- Bump the non-critical group with 4 updates by @dependabot in #1645
- Support packaging cairo-plugins by @DelevoXDG in #1605
- Add diagnostics and handle errors gracefully / Upgrade Cairo. by @wawel37 in #1590
- Hide docs for impls of hidden traits / traits with hidden generic args. by @maciektr in #1644
- Enable features for main package during integration tests compilation by @DelevoXDG in #1646
- Add add_redeposit_gas to compiler config by @maciektr in #1650
- Fix packaging plugins when
--no-verify
is passed by @DelevoXDG in #1643 - Doc fix - procedural macros by @wawel37 in #1651
- Doc typo fix - Publishing to registry by @DelevoXDG in #1654
- Bump the non-critical group with 7 updates by @dependabot in #1664
- Stop using process:exit for error code handling by @maciektr in #1652
- Add CI to publish builtin plugins by @DelevoXDG in #1648
- Return ExitCode instead of process:exit() in extensions by @maciektr in #1667
- Update mermaid dependency by @maciektr in #1671
- Support UI verbosity in scarb-doc by @maciektr in #1668
- Update Cairo by @maciektr in #1672
- Remove snforge-test-collector by @piotmag769 in #1675
- Remove code mappings for attribute expand (temp) by @maciektr in #1657
- Add
scarb-doc
-generated corelib docs to GitHub Pages by @DelevoXDG in #1658 - Add component dependencies to metadata by @piotmag769 in #1655
- Add test for building corelib docs by @maciektr in #1687
- Add warning on unset edition by @DelevoXDG in #1663
- Feat: Support --print-detailed-resources parameter in cairo-run by @maciejka in #1688
- Fix tests for cairo-run args validation by @maciektr in #1691
- Bump gix from 0.66.0 to 0.67.0 by @dependabot in #1693
- Bump the non-critical group with 9 updates by @dependabot in #1692
- Prepare
scarb-metadata
release1.13.0
by @maciektr in #1694 - Update Cairo by @maciektr in #1711
- Add advisory lock for registry cache db by @maciektr in #1712
- Bump the non-critical group with 6 updates by @dependabot in #1713
- Cairo update by @maciektr in #1714
- Add
--ignore-cairo-version
flag by @DelevoXDG in #1666 - Add derives to
cairo-lang-macro
by @Draggu in #1676 - Proc macro server API by @Draggu in #1715
- Add
proc-macro-server
command by @Draggu in #1679 - Proc macro server: Load
ProcMacroHost
by @Draggu in #1680 - Add Proc macro server by @Draggu in #1681
- Add
RpcResponse
result helper by @Draggu in #1719 - Add request handling by @Draggu in #1682
- Add test helpers by @Draggu in #1718
- Add
DefinedMacros
handler by @Draggu in #1683 - Add
ExpandAttribute
handler by @Draggu in #1684 - Add
ExpandDerive
handler by @Draggu in #1685 - Add
ExpandInline
handler by @Draggu in #1686 - Bump the non-critical group with 4 updates by @dependabot in #1723
- Add cairo-ls as code owners of proc-macro-server by @maciektr in #1730
- Update Cairo by @maciektr in #1739
- Prepare
cairo-lang-macro
release0.1.1
by @maciektr in #1740 - Prepare
scarb-proc-macro-server-types
release0.1.0
. by @maciektr in #1741 - Website: Suggest asdf as the default installation method by @maciektr in #1744
- Bump the non-critical group with 7 updates by @dependabot in #1752
- Mute UI when reading ws for external command by @maciektr in #1755
- Cairo update by @maciektr in #1754
- Reword docs for manifest (slightly) by @maciektr in #1758
- Scarb Doc: cross item linkage by @wawel37 in #1690
- Bump gix from 0.67.0 to 0.68.0 by @dependabot in #1765
- Update dependencies by @maciektr in #1772
- Update Cairo by @maciektr in #1778
- Prioritize registry deps in the docs by @DelevoXDG in #1777
- Fix check command for cairo compilation units dependant on Scarb proc macros by @maciektr in #1780
- Fix clippy warnings after rust update by @maciektr in #1790
- Update Cairo by @maciektr in #1784
- Don't pass inline macro name to macro args token stream by @maciektr in #1786
- Prepare release
2.9.1
by @maciektr in #1791
New Contributors
Full Changelog: v2.8.0...v2.9.1