Welcome to the release notes for Scarb v2.12.0-rc.1
!
This release finally brings full pre-release of the new procedural macros API.
- Scarb toml dependency specification - will now reject unknown fields during parsing. If the field is not in the spec, an error will be returned. See specifying dependencies for valid configuration options.
- Registry yanking - A bug that caused yanked package versions to be used regardless of the yank has been fixed.
- Shell completions installation - If you install Scarb via starkup or the installation script, it will automatically install Scarb shell completions on your system.
Scarb doc groups
When writing docs for your package, you can now instruct Scarb doc to group some doc items in a separate, collapsible section. This can be done with help of #[doc(group: "group name")]
attribute. This can be helpful to make the docs easier to navigate for the user, if your documentation contains a lot of items of the same kind that cannot be moved to separate modules.
New procedural macros API release candidate
The new API has been promoted to release candidate!
This means, you can try it out by using Scarb 2.12.0-rc.1
(or newer) and cairo-lang-macro 0.2.0-rc.1
.
Note that the older macro API is still supported by Scarb.
The new macro API brings some quality of life improvements (like the quote!
macro) and support for propper diagnostics locations in the macro-generated code.
Cairo Version
This version of Scarb comes with Cairo v2.12.0-rc.1
.
What's Changed
- feat: aggregate_groups - doc by @FroyaTheHen in #2274
- Prepare
scarb-metadata
release1.15.0
by @maciektr in #2305 - Bump the non-critical group with 7 updates by @dependabot[bot] in #2306
- feat: generate md table summary for doc groups by @FroyaTheHen in #2275
- add diagnostic warnings for doc groups by @FroyaTheHen in #2288
- doc groups for module reeksports by @FroyaTheHen in #2291
- Disallow creating
cairo_lang_macro::Diagnostic
without constructor by @maciektr in #2310 - Add a test case for per-crate plugins by @maciektr in #2293
- Use new macro API in proc macro publish tests by @maciektr in #2308
- fix: foregin crates reeksports by @FroyaTheHen in #2307
- change group attr from ShortString to String by @FroyaTheHen in #2312
- Fix code mappings calculation for attribute expansion by @maciektr in #2270
- Bump the non-critical group with 4 updates by @dependabot[bot] in #2318
- Custom span location diagnostic on node with trivia by @maciektr in #2313
- refactor: MarkdownContent to store hash map of files, fix: unify nesting level by @FroyaTheHen in #2322
- Pin nextest version in CI by @DelevoXDG in #2333
- Add docs for Scarb shell completions by @DelevoXDG in #2327
- refactor: separate modules by @FroyaTheHen in #2323
- fix: improve style in docs_generation by @FroyaTheHen in #2324
- improve generated docs style by @FroyaTheHen in #2331
- Add completions setup to the install script by @DelevoXDG in #2328
- Bump the non-critical group with 2 updates by @dependabot[bot] in #2334
- Replace soon-to-be deprecated windows-2019 with latest in release build workflow by @maciektr in #2338
- Pass adapted call site to generate code mappings fn by @maciektr in #2337
- Bump Cairo by @maciektr in #2336
- Basic tests for linter supporting attribute proc macros by @wawel37 in #2325
- Refactor: add types for component targets group by @maciektr in #2320
- Fix no-warnings flag for warnings with error code by @maciektr in #2341
- Add flags to control whether incremental compilation is allowed by @maciektr in #2326
- Define fingerprint structure by @maciektr in #2321
- Fix lints after rust upgrade by @maciektr in #2344
adapted_call_site
in proc macro server by @Arcticae in #2311- Exit early for ast items not using any proc macros in generate code by @maciektr in #2345
- Profiling config by @maciektr in #2342
- Add unsafe-panic to compiler config by @maciektr in #2343
- Bump the non-critical group with 7 updates by @dependabot[bot] in #2352
- [Linter] Fail on --deny-warnings after all packages were linted by @wawel37 in #2356
- Emit and use incremental cache for corelib crate by @maciektr in #2335
- reimplement
exec_replace
by @mkaput in #2351 - Make scarb-test-utils dependency on scarb optional by @maciektr in #2358
- Create two types of fingerprint hashes - one for directory structure, one for freshness check by @maciektr in #2339
- Skip packages instead of throwing error when package has no CUs by @wawel37 in #2365
- Make scarb-extensions-cli for execute independent from Cairo by @maciektr in #2359
- Stop scarb-prove from depending on scarb-execute by @maciektr in #2360
- Reject dependency toml with invalid keywords by @maciektr in #2355
- Bump Cairo by @maciektr in #2361
- Bump the non-critical group with 2 updates by @dependabot[bot] in #2370
- Remove dbg! from scarb-execute, add linter config to extensions by @maciektr in #2368
- scaffold oracle hint processor by @mkaput in #2348
- scaffold oracle connection management by @mkaput in #2353
- introduce logging with
tracing
andtracing-subscriber
in scarb-execute by @mkaput in #2379 - implement feature use yanked packages only if cached by @FroyaTheHen in #2366
- update scarb doc documentation example: mark all items pub by @FroyaTheHen in #2378
- Prepare
cairo-lang-macro
,cairo-lang-macro-attributes
andscarb-proc-macro-server-types
release by @maciektr in #2388 - Update Cairo by @maciektr in #2385
Full Changelog: v2.12.0-rc.0...v2.12.0-rc.1