From b23d974746a09b93b9b24bb0bd25059ea98f8a23 Mon Sep 17 00:00:00 2001 From: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Date: Mon, 6 Jan 2025 00:25:22 +0100 Subject: [PATCH] chore: release 0.1.1 (#182) * chore: update process * chore: release 0.1.1 * docs: update CHANGELOG.md * fix: enter send bounds * chore: re-export data_structures --- CHANGELOG.md | 115 ++++++++++++++++++++++++++++ Cargo.lock | 41 ++++------ Cargo.toml | 20 ++--- RELEASE_CHECKLIST.md | 1 + cliff.toml | 2 +- crates/ast/CHANGELOG.md | 31 ++++++++ crates/cli/CHANGELOG.md | 17 ++++ crates/config/CHANGELOG.md | 10 +++ crates/data-structures/CHANGELOG.md | 20 +++++ crates/interface/CHANGELOG.md | 38 +++++++++ crates/interface/src/lib.rs | 1 + crates/interface/src/session.rs | 2 +- crates/macros/CHANGELOG.md | 10 +++ crates/parse/CHANGELOG.md | 34 ++++++++ crates/sema/CHANGELOG.md | 60 +++++++++++++++ crates/solar/CHANGELOG.md | 10 +++ scripts/changelog.sh | 11 ++- 17 files changed, 384 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d3a0be3..c55c7ef6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,121 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +Notable and breaking changes (!): + +- The parser now fully supports doc-comments in any position ([#154](https://github.com/paradigmxyz/solar/issues/154)). This was the last major feature needed to support the full Solidity grammar, as implemented in solc. The parser and AST are now considered feature-complete. +- Fixed some bugs in the parser +- Implemented some more syntax checks and validations + +### Library + +- (!) Return ControlFlow from AST visitor methods ([#115](https://github.com/paradigmxyz/solar/issues/115)) +- (!) Remove Pos trait ([#137](https://github.com/paradigmxyz/solar/issues/137)) +- (!) Re-export solar_ast::ast::* internal module ([#141](https://github.com/paradigmxyz/solar/issues/141)) +- Unify CLI and Session options ([#176](https://github.com/paradigmxyz/solar/issues/176)) + - `Session::builder`'s individual config option methods have been removed in favor of using `Args` directly. +- Install rayon pool in Session::enter ([#123](https://github.com/paradigmxyz/solar/issues/123)) + - Add Session::enter_parallel ([#183](https://github.com/paradigmxyz/solar/issues/183)) + - The session is now parallel by default; `enter` will behave the same, use `enter_parallel` to be able to make use of rayon inside of the closure. + +--- + +All changes: + +### Bug Fixes + +- Add Session::enter_parallel ([#183](https://github.com/paradigmxyz/solar/issues/183)) +- Display order in AST stats ([#180](https://github.com/paradigmxyz/solar/issues/180)) +- Reduce width of subnode name in ast-stats ([#157](https://github.com/paradigmxyz/solar/issues/157)) +- [parser] Accept leading dot in literals ([#151](https://github.com/paradigmxyz/solar/issues/151)) +- Exclude arrays from mapping getter returns ([#148](https://github.com/paradigmxyz/solar/issues/148)) +- [parser] Span of partially-parsed expressions ([#139](https://github.com/paradigmxyz/solar/issues/139)) +- [parser] Ignore more doc comments ([#136](https://github.com/paradigmxyz/solar/issues/136)) +- Properly handle recursive types ([#133](https://github.com/paradigmxyz/solar/issues/133)) +- Validate placeholder is within modifier ([#132](https://github.com/paradigmxyz/solar/issues/132)) +- Install rayon pool in Session::enter ([#123](https://github.com/paradigmxyz/solar/issues/123)) + +### Dependencies + +- Enable dependencies.yml +- Update dependencies ([#161](https://github.com/paradigmxyz/solar/issues/161)) + +### Documentation + +- Fix typos +- Update CONTRIBUTING.md +- Add note about codspeed +- Add some more docs to Session ([#155](https://github.com/paradigmxyz/solar/issues/155)) +- Add telegram link +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Add some more Span utils ([#179](https://github.com/paradigmxyz/solar/issues/179)) +- Unify CLI and Session options ([#176](https://github.com/paradigmxyz/solar/issues/176)) +- Check placeholders inside unchecked blocks ([#172](https://github.com/paradigmxyz/solar/issues/172)) +- Library requirements syntax checker ([#168](https://github.com/paradigmxyz/solar/issues/168)) +- Set up codspeed ([#167](https://github.com/paradigmxyz/solar/issues/167)) +- Underscores and literals validation ([#165](https://github.com/paradigmxyz/solar/issues/165)) +- Receive function validation ([#166](https://github.com/paradigmxyz/solar/issues/166)) +- Func visibility checks for free functions ([#163](https://github.com/paradigmxyz/solar/issues/163)) +- Syntax checker for functions with modifiers ([#164](https://github.com/paradigmxyz/solar/issues/164)) +- Variable declaration statements are not allowed as the body of loop ([#158](https://github.com/paradigmxyz/solar/issues/158)) +- Validate functions with no visibility specified ([#160](https://github.com/paradigmxyz/solar/issues/160)) +- Modifier definitions must have a placeholder ([#159](https://github.com/paradigmxyz/solar/issues/159)) +- Add more methods to index types ([#156](https://github.com/paradigmxyz/solar/issues/156)) +- [parser] Allow doc-comments anywhere ([#154](https://github.com/paradigmxyz/solar/issues/154)) +- Add try_new to newtype_index! types ([#152](https://github.com/paradigmxyz/solar/issues/152)) +- Update to Rust 1.83 ([#150](https://github.com/paradigmxyz/solar/issues/150)) +- Validate variable data locations ([#149](https://github.com/paradigmxyz/solar/issues/149)) +- Make TyAbiPrinter public ([#145](https://github.com/paradigmxyz/solar/issues/145)) +- Add some FileName functions ([#143](https://github.com/paradigmxyz/solar/issues/143)) +- Add some methods to CallArgs ([#140](https://github.com/paradigmxyz/solar/issues/140)) +- [parser] Recover old-style fallbacks ([#135](https://github.com/paradigmxyz/solar/issues/135)) +- Print AST statistics with -Zast-stats flag ([#125](https://github.com/paradigmxyz/solar/issues/125)) +- Return ControlFlow from AST visitor methods ([#115](https://github.com/paradigmxyz/solar/issues/115)) +- Make parse_semver_req public ([#114](https://github.com/paradigmxyz/solar/issues/114)) +- Add more semver compat ([#113](https://github.com/paradigmxyz/solar/issues/113)) + +### Miscellaneous Tasks + +- Update process +- Update dist to 0.27.0 +- Cargo update ([#181](https://github.com/paradigmxyz/solar/issues/181)) +- [xtask] Bless = uibless +- [macros] Fix expansion spans ([#175](https://github.com/paradigmxyz/solar/issues/175)) +- Add TyAbiPrinterMode ([#147](https://github.com/paradigmxyz/solar/issues/147)) +- Mark TyKind as non_exhaustive ([#146](https://github.com/paradigmxyz/solar/issues/146)) +- Extend rayon threadpool comment ([#138](https://github.com/paradigmxyz/solar/issues/138)) +- Remove Pos trait ([#137](https://github.com/paradigmxyz/solar/issues/137)) +- [meta] Add bug report template ([#131](https://github.com/paradigmxyz/solar/issues/131)) +- Use unimplemented! instead of todo! in eval.rs ([#110](https://github.com/paradigmxyz/solar/issues/110)) +- Fix deny.toml + +### Other + +- Move deny to ci ([#162](https://github.com/paradigmxyz/solar/issues/162)) +- Initial AST validation for using-for ([#119](https://github.com/paradigmxyz/solar/issues/119)) +- AST validate that a contract does not have a function with contract name ([#117](https://github.com/paradigmxyz/solar/issues/117)) +- Validate num. variants in enum declaration ([#120](https://github.com/paradigmxyz/solar/issues/120)) +- Better error for struct without any fields ([#121](https://github.com/paradigmxyz/solar/issues/121)) +- AST validate unchecked nested blocks ([#116](https://github.com/paradigmxyz/solar/issues/116)) +- AST validate check statement only in while/for loops ([#111](https://github.com/paradigmxyz/solar/issues/111)) +- Add syntax test pragma solidity ([#112](https://github.com/paradigmxyz/solar/issues/112)) + +### Refactor + +- Split Ty printers ([#144](https://github.com/paradigmxyz/solar/issues/144)) +- Re-export ast::* internal module ([#141](https://github.com/paradigmxyz/solar/issues/141)) + +### Testing + +- Add a test for SessionGlobals + Session::enter ([#142](https://github.com/paradigmxyz/solar/issues/142)) +- Add another Session test ([#134](https://github.com/paradigmxyz/solar/issues/134)) +- Add some more tests ([#122](https://github.com/paradigmxyz/solar/issues/122)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/Cargo.lock b/Cargo.lock index 83a29873..ed06fa27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1395,15 +1395,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.14" @@ -2514,7 +2505,7 @@ dependencies = [ [[package]] name = "solar-ast" -version = "0.1.0" +version = "0.1.1" dependencies = [ "alloy-primitives", "bumpalo", @@ -2531,7 +2522,7 @@ dependencies = [ [[package]] name = "solar-bench" -version = "0.1.0" +version = "0.1.1" dependencies = [ "codspeed-criterion-compat", "iai-callgrind", @@ -2544,7 +2535,7 @@ dependencies = [ [[package]] name = "solar-cli" -version = "0.1.0" +version = "0.1.1" dependencies = [ "alloy-primitives", "cfg-if", @@ -2562,7 +2553,7 @@ dependencies = [ [[package]] name = "solar-compiler" -version = "0.1.0" +version = "0.1.1" dependencies = [ "alloy-primitives", "solar-ast", @@ -2578,7 +2569,7 @@ dependencies = [ [[package]] name = "solar-config" -version = "0.1.0" +version = "0.1.1" dependencies = [ "clap", "serde", @@ -2589,7 +2580,7 @@ dependencies = [ [[package]] name = "solar-data-structures" -version = "0.1.0" +version = "0.1.1" dependencies = [ "bumpalo", "index_vec", @@ -2602,14 +2593,14 @@ dependencies = [ [[package]] name = "solar-examples" -version = "0.1.0" +version = "0.1.1" dependencies = [ "solar-compiler", ] [[package]] name = "solar-interface" -version = "0.1.0" +version = "0.1.1" dependencies = [ "annotate-snippets", "anstream", @@ -2617,7 +2608,7 @@ dependencies = [ "const-hex", "derive_builder", "dunce", - "itertools 0.14.0", + "itertools 0.10.5", "itoa", "lasso", "match_cfg", @@ -2630,14 +2621,14 @@ dependencies = [ "solar-config", "solar-data-structures", "solar-macros", - "thiserror 2.0.9", + "thiserror 1.0.69", "tracing", "unicode-width 0.2.0", ] [[package]] name = "solar-macros" -version = "0.1.0" +version = "0.1.1" dependencies = [ "proc-macro2", "quote", @@ -2646,13 +2637,13 @@ dependencies = [ [[package]] name = "solar-parse" -version = "0.1.0" +version = "0.1.1" dependencies = [ "alloy-primitives", "bitflags", "bumpalo", "expect-test", - "itertools 0.14.0", + "itertools 0.10.5", "memchr", "num-bigint", "num-rational", @@ -2666,7 +2657,7 @@ dependencies = [ [[package]] name = "solar-sema" -version = "0.1.0" +version = "0.1.1" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -2692,7 +2683,7 @@ dependencies = [ [[package]] name = "solar-tester" -version = "0.1.0" +version = "0.1.1" dependencies = [ "regex", "tempfile", @@ -3534,7 +3525,7 @@ checksum = "32ac00cd3f8ec9c1d33fb3e7958a82df6989c42d747bd326c822b1d625283547" [[package]] name = "xtask" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "xflags", diff --git a/Cargo.toml b/Cargo.toml index e67938e5..771a6c8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ default-members = ["crates/*"] resolver = "2" [workspace.package] -version = "0.1.0" +version = "0.1.1" edition = "2021" rust-version = "1.83" # MSRV authors = ["DaniPopes <57450786+DaniPopes@users.noreply.github.com>"] @@ -79,15 +79,15 @@ codegen-units = 1 [workspace.dependencies] # compiler crates -solar = { version = "0.1.0", path = "crates/solar", package = "solar-compiler" } -solar-ast = { version = "0.1.0", path = "crates/ast" } -solar-cli = { version = "0.1.0", path = "crates/cli" } -solar-config = { version = "0.1.0", path = "crates/config" } -solar-data-structures = { version = "0.1.0", path = "crates/data-structures" } -solar-interface = { version = "0.1.0", path = "crates/interface" } -solar-macros = { version = "0.1.0", path = "crates/macros" } -solar-parse = { version = "0.1.0", path = "crates/parse" } -solar-sema = { version = "0.1.0", path = "crates/sema" } +solar = { version = "0.1.1", path = "crates/solar", package = "solar-compiler" } +solar-ast = { version = "0.1.1", path = "crates/ast" } +solar-cli = { version = "0.1.1", path = "crates/cli" } +solar-config = { version = "0.1.1", path = "crates/config" } +solar-data-structures = { version = "0.1.1", path = "crates/data-structures" } +solar-interface = { version = "0.1.1", path = "crates/interface" } +solar-macros = { version = "0.1.1", path = "crates/macros" } +solar-parse = { version = "0.1.1", path = "crates/parse" } +solar-sema = { version = "0.1.1", path = "crates/sema" } # internal crates solar-tester = { path = "tools/tester" } diff --git a/RELEASE_CHECKLIST.md b/RELEASE_CHECKLIST.md index 656212c5..62b37cfa 100644 --- a/RELEASE_CHECKLIST.md +++ b/RELEASE_CHECKLIST.md @@ -9,6 +9,7 @@ changed or not. ## Requirements - [cargo-release](https://github.com/crate-ci/cargo-release): `cargo install cargo-release` +- [git-cliff](https://github.com/orhun/git-cliff) (patched with [orhun/git-cliff#711](https://github.com/orhun/git-cliff/pull/711)): `cargo install --git https://github.com/DaniPopes/git-cliff.git --branch fix-include-paths git-cliff` - [dist](https://github.com/axodotdev/cargo-dist): `cargo install cargo-dist` ## Steps diff --git a/cliff.toml b/cliff.toml index e1ea0ed9..13a89708 100644 --- a/cliff.toml +++ b/cliff.toml @@ -58,6 +58,6 @@ commit_parsers = [ protect_breaking_commits = false filter_commits = false tag_pattern = "v[0-9]*" -skip_tags = "v?0\\.1\\.0" +skip_tags = 'v0\.1\.0' ignore_tags = "rc" sort_commits = "newest" diff --git a/crates/ast/CHANGELOG.md b/crates/ast/CHANGELOG.md index 9d3a0be3..0fdc7414 100644 --- a/crates/ast/CHANGELOG.md +++ b/crates/ast/CHANGELOG.md @@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Bug Fixes + +- [parser] Accept leading dot in literals ([#151](https://github.com/paradigmxyz/solar/issues/151)) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Add some more Span utils ([#179](https://github.com/paradigmxyz/solar/issues/179)) +- Set up codspeed ([#167](https://github.com/paradigmxyz/solar/issues/167)) +- Syntax checker for functions with modifiers ([#164](https://github.com/paradigmxyz/solar/issues/164)) +- [parser] Allow doc-comments anywhere ([#154](https://github.com/paradigmxyz/solar/issues/154)) +- Validate variable data locations ([#149](https://github.com/paradigmxyz/solar/issues/149)) +- Add some methods to CallArgs ([#140](https://github.com/paradigmxyz/solar/issues/140)) +- [parser] Recover old-style fallbacks ([#135](https://github.com/paradigmxyz/solar/issues/135)) +- Return ControlFlow from AST visitor methods ([#115](https://github.com/paradigmxyz/solar/issues/115)) +- Add more semver compat ([#113](https://github.com/paradigmxyz/solar/issues/113)) + +### Miscellaneous Tasks + +- [macros] Fix expansion spans ([#175](https://github.com/paradigmxyz/solar/issues/175)) + +### Refactor + +- Split Ty printers ([#144](https://github.com/paradigmxyz/solar/issues/144)) +- Re-export ast::* internal module ([#141](https://github.com/paradigmxyz/solar/issues/141)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/cli/CHANGELOG.md b/crates/cli/CHANGELOG.md index 9d3a0be3..c45c2418 100644 --- a/crates/cli/CHANGELOG.md +++ b/crates/cli/CHANGELOG.md @@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Bug Fixes + +- Add Session::enter_parallel ([#183](https://github.com/paradigmxyz/solar/issues/183)) +- Install rayon pool in Session::enter ([#123](https://github.com/paradigmxyz/solar/issues/123)) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Unify CLI and Session options ([#176](https://github.com/paradigmxyz/solar/issues/176)) +- Add more methods to index types ([#156](https://github.com/paradigmxyz/solar/issues/156)) +- Print AST statistics with -Zast-stats flag ([#125](https://github.com/paradigmxyz/solar/issues/125)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/config/CHANGELOG.md b/crates/config/CHANGELOG.md index 9d3a0be3..25819d7a 100644 --- a/crates/config/CHANGELOG.md +++ b/crates/config/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Unify CLI and Session options ([#176](https://github.com/paradigmxyz/solar/issues/176)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/data-structures/CHANGELOG.md b/crates/data-structures/CHANGELOG.md index 9d3a0be3..48697660 100644 --- a/crates/data-structures/CHANGELOG.md +++ b/crates/data-structures/CHANGELOG.md @@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Bug Fixes + +- Properly handle recursive types ([#133](https://github.com/paradigmxyz/solar/issues/133)) + +### Dependencies + +- Update dependencies ([#161](https://github.com/paradigmxyz/solar/issues/161)) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Add more methods to index types ([#156](https://github.com/paradigmxyz/solar/issues/156)) +- Add try_new to newtype_index! types ([#152](https://github.com/paradigmxyz/solar/issues/152)) +- Validate variable data locations ([#149](https://github.com/paradigmxyz/solar/issues/149)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/interface/CHANGELOG.md b/crates/interface/CHANGELOG.md index 9d3a0be3..4494d87d 100644 --- a/crates/interface/CHANGELOG.md +++ b/crates/interface/CHANGELOG.md @@ -5,6 +5,44 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Bug Fixes + +- Add Session::enter_parallel ([#183](https://github.com/paradigmxyz/solar/issues/183)) +- [parser] Accept leading dot in literals ([#151](https://github.com/paradigmxyz/solar/issues/151)) +- Properly handle recursive types ([#133](https://github.com/paradigmxyz/solar/issues/133)) +- Install rayon pool in Session::enter ([#123](https://github.com/paradigmxyz/solar/issues/123)) + +### Dependencies + +- Update dependencies ([#161](https://github.com/paradigmxyz/solar/issues/161)) + +### Documentation + +- Fix typos +- Add some more docs to Session ([#155](https://github.com/paradigmxyz/solar/issues/155)) +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Add some more Span utils ([#179](https://github.com/paradigmxyz/solar/issues/179)) +- Unify CLI and Session options ([#176](https://github.com/paradigmxyz/solar/issues/176)) +- Add more methods to index types ([#156](https://github.com/paradigmxyz/solar/issues/156)) +- Update to Rust 1.83 ([#150](https://github.com/paradigmxyz/solar/issues/150)) +- Add some FileName functions ([#143](https://github.com/paradigmxyz/solar/issues/143)) +- Print AST statistics with -Zast-stats flag ([#125](https://github.com/paradigmxyz/solar/issues/125)) + +### Miscellaneous Tasks + +- Extend rayon threadpool comment ([#138](https://github.com/paradigmxyz/solar/issues/138)) +- Remove Pos trait ([#137](https://github.com/paradigmxyz/solar/issues/137)) + +### Testing + +- Add a test for SessionGlobals + Session::enter ([#142](https://github.com/paradigmxyz/solar/issues/142)) +- Add another Session test ([#134](https://github.com/paradigmxyz/solar/issues/134)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/interface/src/lib.rs b/crates/interface/src/lib.rs index 146726b7..be8fda19 100644 --- a/crates/interface/src/lib.rs +++ b/crates/interface/src/lib.rs @@ -35,6 +35,7 @@ pub mod panic_hook; pub use anstream::ColorChoice; pub use dunce::canonicalize; pub use solar_config as config; +pub use solar_data_structures as data_structures; /// The current version of the Solar compiler. pub const VERSION: &str = env!("CARGO_PKG_VERSION"); diff --git a/crates/interface/src/session.rs b/crates/interface/src/session.rs index 519e27eb..7ee9293c 100644 --- a/crates/interface/src/session.rs +++ b/crates/interface/src/session.rs @@ -273,7 +273,7 @@ impl Session { /// /// This also calls [`SessionGlobals::with_source_map`]. #[inline] - pub fn enter(&self, f: impl FnOnce() -> R + Send) -> R { + pub fn enter(&self, f: impl FnOnce() -> R) -> R { SessionGlobals::with_or_default(|_| { SessionGlobals::with_source_map(self.clone_source_map(), f) }) diff --git a/crates/macros/CHANGELOG.md b/crates/macros/CHANGELOG.md index 9d3a0be3..bbff860a 100644 --- a/crates/macros/CHANGELOG.md +++ b/crates/macros/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Miscellaneous Tasks + +- [macros] Fix expansion spans ([#175](https://github.com/paradigmxyz/solar/issues/175)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/parse/CHANGELOG.md b/crates/parse/CHANGELOG.md index 9d3a0be3..68679669 100644 --- a/crates/parse/CHANGELOG.md +++ b/crates/parse/CHANGELOG.md @@ -5,6 +5,40 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Bug Fixes + +- Add Session::enter_parallel ([#183](https://github.com/paradigmxyz/solar/issues/183)) +- [parser] Accept leading dot in literals ([#151](https://github.com/paradigmxyz/solar/issues/151)) +- [parser] Span of partially-parsed expressions ([#139](https://github.com/paradigmxyz/solar/issues/139)) +- [parser] Ignore more doc comments ([#136](https://github.com/paradigmxyz/solar/issues/136)) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Add some more Span utils ([#179](https://github.com/paradigmxyz/solar/issues/179)) +- [parser] Allow doc-comments anywhere ([#154](https://github.com/paradigmxyz/solar/issues/154)) +- Validate variable data locations ([#149](https://github.com/paradigmxyz/solar/issues/149)) +- [parser] Recover old-style fallbacks ([#135](https://github.com/paradigmxyz/solar/issues/135)) +- Make parse_semver_req public ([#114](https://github.com/paradigmxyz/solar/issues/114)) + +### Miscellaneous Tasks + +- Remove Pos trait ([#137](https://github.com/paradigmxyz/solar/issues/137)) + +### Other + +- Validate num. variants in enum declaration ([#120](https://github.com/paradigmxyz/solar/issues/120)) +- Better error for struct without any fields ([#121](https://github.com/paradigmxyz/solar/issues/121)) + +### Refactor + +- Re-export ast::* internal module ([#141](https://github.com/paradigmxyz/solar/issues/141)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/sema/CHANGELOG.md b/crates/sema/CHANGELOG.md index 9d3a0be3..03843020 100644 --- a/crates/sema/CHANGELOG.md +++ b/crates/sema/CHANGELOG.md @@ -5,6 +5,66 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Bug Fixes + +- Display order in AST stats ([#180](https://github.com/paradigmxyz/solar/issues/180)) +- Reduce width of subnode name in ast-stats ([#157](https://github.com/paradigmxyz/solar/issues/157)) +- Exclude arrays from mapping getter returns ([#148](https://github.com/paradigmxyz/solar/issues/148)) +- Properly handle recursive types ([#133](https://github.com/paradigmxyz/solar/issues/133)) +- Validate placeholder is within modifier ([#132](https://github.com/paradigmxyz/solar/issues/132)) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Add some more Span utils ([#179](https://github.com/paradigmxyz/solar/issues/179)) +- Unify CLI and Session options ([#176](https://github.com/paradigmxyz/solar/issues/176)) +- Check placeholders inside unchecked blocks ([#172](https://github.com/paradigmxyz/solar/issues/172)) +- Library requirements syntax checker ([#168](https://github.com/paradigmxyz/solar/issues/168)) +- Set up codspeed ([#167](https://github.com/paradigmxyz/solar/issues/167)) +- Underscores and literals validation ([#165](https://github.com/paradigmxyz/solar/issues/165)) +- Receive function validation ([#166](https://github.com/paradigmxyz/solar/issues/166)) +- Func visibility checks for free functions ([#163](https://github.com/paradigmxyz/solar/issues/163)) +- Syntax checker for functions with modifiers ([#164](https://github.com/paradigmxyz/solar/issues/164)) +- Variable declaration statements are not allowed as the body of loop ([#158](https://github.com/paradigmxyz/solar/issues/158)) +- Validate functions with no visibility specified ([#160](https://github.com/paradigmxyz/solar/issues/160)) +- Modifier definitions must have a placeholder ([#159](https://github.com/paradigmxyz/solar/issues/159)) +- Add more methods to index types ([#156](https://github.com/paradigmxyz/solar/issues/156)) +- Update to Rust 1.83 ([#150](https://github.com/paradigmxyz/solar/issues/150)) +- Validate variable data locations ([#149](https://github.com/paradigmxyz/solar/issues/149)) +- Make TyAbiPrinter public ([#145](https://github.com/paradigmxyz/solar/issues/145)) +- Add some methods to CallArgs ([#140](https://github.com/paradigmxyz/solar/issues/140)) +- Print AST statistics with -Zast-stats flag ([#125](https://github.com/paradigmxyz/solar/issues/125)) +- Return ControlFlow from AST visitor methods ([#115](https://github.com/paradigmxyz/solar/issues/115)) + +### Miscellaneous Tasks + +- Add TyAbiPrinterMode ([#147](https://github.com/paradigmxyz/solar/issues/147)) +- Mark TyKind as non_exhaustive ([#146](https://github.com/paradigmxyz/solar/issues/146)) +- Use unimplemented! instead of todo! in eval.rs ([#110](https://github.com/paradigmxyz/solar/issues/110)) + +### Other + +- Initial AST validation for using-for ([#119](https://github.com/paradigmxyz/solar/issues/119)) +- AST validate that a contract does not have a function with contract name ([#117](https://github.com/paradigmxyz/solar/issues/117)) +- Validate num. variants in enum declaration ([#120](https://github.com/paradigmxyz/solar/issues/120)) +- Better error for struct without any fields ([#121](https://github.com/paradigmxyz/solar/issues/121)) +- AST validate unchecked nested blocks ([#116](https://github.com/paradigmxyz/solar/issues/116)) +- AST validate check statement only in while/for loops ([#111](https://github.com/paradigmxyz/solar/issues/111)) + +### Refactor + +- Split Ty printers ([#144](https://github.com/paradigmxyz/solar/issues/144)) +- Re-export ast::* internal module ([#141](https://github.com/paradigmxyz/solar/issues/141)) + +### Testing + +- Add some more tests ([#122](https://github.com/paradigmxyz/solar/issues/122)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/crates/solar/CHANGELOG.md b/crates/solar/CHANGELOG.md index 9d3a0be3..25819d7a 100644 --- a/crates/solar/CHANGELOG.md +++ b/crates/solar/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.1](https://github.com/paradigmxyz/solar/releases/tag/v0.1.1) + +### Documentation + +- Add icons ([#109](https://github.com/paradigmxyz/solar/issues/109)) + +### Features + +- Unify CLI and Session options ([#176](https://github.com/paradigmxyz/solar/issues/176)) + ## [0.1.0](https://github.com/paradigmxyz/solar/releases/tag/v0.1.0) Initial release. diff --git a/scripts/changelog.sh b/scripts/changelog.sh index bbd39b4f..fefc53b1 100755 --- a/scripts/changelog.sh +++ b/scripts/changelog.sh @@ -5,6 +5,7 @@ run_unless_dry_run() { if [ "$DRY_RUN" = "true" ]; then echo "skipping due to dry run: $*" >&2 else + echo "running: $*" >&2 "$@" fi } @@ -17,8 +18,14 @@ if [[ "$CRATE_ROOT" != *crates/* ]]; then exit 0 fi -command=(git cliff --workdir "$root" --config "$root/cliff.toml" --latest "${@}") -run_unless_dry_run "${command[@]}" --prepend "$root/CHANGELOG.md" +command=(git cliff --workdir "$root" --config "$root/cliff.toml" --unreleased "${@}") +if [ -z "$(git status --porcelain "$root/CHANGELOG.md")" ]; then + pushd "$root" >/dev/null + run_unless_dry_run "${command[@]}" --prepend "$root/CHANGELOG.md" + popd >/dev/null +else + echo "$root/CHANGELOG.md has already been generated" >&2 +fi if [ -n "$crate" ] && [ "$root" != "$crate" ]; then run_unless_dry_run "${command[@]}" --include-path "$crate_glob" --prepend "$crate/CHANGELOG.md" fi