diff --git a/CHANGELOG.md b/CHANGELOG.md index cf05c493..7fe5bd40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## v0.6.2 (2026-03-01) + +Breaking changes: + +- Remove `#[cgp_context]` and simplify consumer trait implementation - [#205](https://github.com/contextgeneric/cgp/pull/205) +- Rename `ProvideType` to `TypeProvider` - [#211](https://github.com/contextgeneric/cgp/pull/#211) +- Remove `{Type}Of` type alias from `#[cgp_type]` - [#212](https://github.com/contextgeneric/cgp/pull/212) +- Use `Copy` instead of `Clone` for owned getter field values - [#213](https://github.com/contextgeneric/cgp/pull/#213) +- Update syntax for `check_components!` and `delegate_and_check_components!` - [#214](https://github.com/contextgeneric/cgp/pull/214) +- Change the default check trait name in `check_components!` - [#215](https://github.com/contextgeneric/cgp/pull/215) + +New features: + +- Implement `#[cgp_fn]` - [#197](https://github.com/contextgeneric/cgp/pull/197) +- Tests and Improvements for `#[cgp_fn]` - [#198](https://github.com/contextgeneric/cgp/pull/198) +- Support abstract type equality in `#[use_type]` - [#200](https://github.com/contextgeneric/cgp/pull/#200) +- Support `#[implicit]`, `#[uses]`, and `#[use_type]` in `#[cgp_impl]` - [#201](https://github.com/contextgeneric/cgp/pull/201) +- Support `#[use_type]` and `#[extend]` in `#[cgp_component]` - [#202](https://github.com/contextgeneric/cgp/pull/202) +- Add basic support for foreign abstract types in `#[use_type]` - [#203](https://github.com/contextgeneric/cgp/pull/203) +- Support `#[use_provider]` attribute inside `#[cgp_impl]` for higher order providers - [#204](https://github.com/contextgeneric/cgp/pull/204) +- Support use of `#[cgp_impl]` on consumer trait with concrete context - [#206](https://github.com/contextgeneric/cgp/pull/206) +- Support `#[use_provider]` inside `#[cgp_fn]` - [#210](https://github.com/contextgeneric/cgp/pull/210) + +Bug fixes: + +- Fix `#[cgp_type]` when associated types contain self-referential bounds - [#208](https://github.com/contextgeneric/cgp/pull/208) + ## v0.6.1 (2026-02-01) - Support implicit `Context` type in `#[cgp_impl]` - [#189](https://github.com/contextgeneric/cgp/pull/189) diff --git a/Cargo.lock b/Cargo.lock index 2b1b569a..14945d3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "cgp" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", "cgp-extra", @@ -18,7 +18,7 @@ dependencies = [ [[package]] name = "cgp-async-macro" -version = "0.6.1" +version = "0.7.0" dependencies = [ "proc-macro2", "quote", @@ -27,11 +27,11 @@ dependencies = [ [[package]] name = "cgp-component" -version = "0.6.1" +version = "0.7.0" [[package]] name = "cgp-core" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-async-macro", "cgp-component", @@ -43,7 +43,7 @@ dependencies = [ [[package]] name = "cgp-dispatch" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", "cgp-handler", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "cgp-error" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-component", "cgp-macro", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "cgp-error-anyhow" -version = "0.6.1" +version = "0.7.0" dependencies = [ "anyhow", "cgp-core", @@ -69,14 +69,14 @@ dependencies = [ [[package]] name = "cgp-error-extra" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", ] [[package]] name = "cgp-error-eyre" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", "eyre", @@ -84,14 +84,14 @@ dependencies = [ [[package]] name = "cgp-error-std" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", ] [[package]] name = "cgp-extra" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", "cgp-dispatch", @@ -106,7 +106,7 @@ dependencies = [ [[package]] name = "cgp-extra-macro" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-extra-macro-lib", "syn", @@ -114,7 +114,7 @@ dependencies = [ [[package]] name = "cgp-extra-macro-lib" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-macro-lib", "proc-macro2", @@ -124,7 +124,7 @@ dependencies = [ [[package]] name = "cgp-field" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-component", "cgp-type", @@ -132,21 +132,21 @@ dependencies = [ [[package]] name = "cgp-field-extra" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-field", ] [[package]] name = "cgp-handler" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", ] [[package]] name = "cgp-macro" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-macro-lib", "syn", @@ -154,7 +154,7 @@ dependencies = [ [[package]] name = "cgp-macro-lib" -version = "0.6.1" +version = "0.7.0" dependencies = [ "itertools", "prettyplease", @@ -165,7 +165,7 @@ dependencies = [ [[package]] name = "cgp-monad" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", "cgp-handler", @@ -173,21 +173,21 @@ dependencies = [ [[package]] name = "cgp-run" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", ] [[package]] name = "cgp-runtime" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-core", ] [[package]] name = "cgp-tests" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp", "const_format", @@ -196,7 +196,7 @@ dependencies = [ [[package]] name = "cgp-type" -version = "0.6.1" +version = "0.7.0" dependencies = [ "cgp-component", "cgp-macro", diff --git a/Cargo.toml b/Cargo.toml index 4f5352c7..cd6f5bd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,22 +37,22 @@ authors = ["Soares Chen "] keywords = ["cgp"] [workspace.dependencies] -cgp = { version = "0.6.1", path = "./crates/cgp" } -cgp-core = { version = "0.6.1", path = "./crates/cgp-core" } -cgp-extra = { version = "0.6.1", path = "./crates/cgp-extra" } -cgp-async-macro = { version = "0.6.1", path = "./crates/cgp-async-macro" } -cgp-component = { version = "0.6.1", path = "./crates/cgp-component" } -cgp-macro = { version = "0.6.1", path = "./crates/cgp-macro" } -cgp-macro-lib = { version = "0.6.1", path = "./crates/cgp-macro-lib" } -cgp-type = { version = "0.6.1", path = "./crates/cgp-type" } -cgp-field = { version = "0.6.1", path = "./crates/cgp-field" } -cgp-field-extra = { version = "0.6.1", path = "./crates/cgp-field-extra" } -cgp-error = { version = "0.6.1", path = "./crates/cgp-error" } -cgp-error-extra = { version = "0.6.1", path = "./crates/cgp-error-extra" } -cgp-extra-macro = { version = "0.6.1", path = "./crates/cgp-extra-macro" } -cgp-extra-macro-lib = { version = "0.6.1", path = "./crates/cgp-extra-macro-lib" } -cgp-handler = { version = "0.6.1", path = "./crates/cgp-handler" } -cgp-monad = { version = "0.6.1", path = "./crates/cgp-monad" } -cgp-dispatch = { version = "0.6.1", path = "./crates/cgp-dispatch" } -cgp-run = { version = "0.6.1", path = "./crates/cgp-run" } -cgp-runtime = { version = "0.6.1", path = "./crates/cgp-runtime" } +cgp = { version = "0.7.0", path = "./crates/cgp" } +cgp-core = { version = "0.7.0", path = "./crates/cgp-core" } +cgp-extra = { version = "0.7.0", path = "./crates/cgp-extra" } +cgp-async-macro = { version = "0.7.0", path = "./crates/cgp-async-macro" } +cgp-component = { version = "0.7.0", path = "./crates/cgp-component" } +cgp-macro = { version = "0.7.0", path = "./crates/cgp-macro" } +cgp-macro-lib = { version = "0.7.0", path = "./crates/cgp-macro-lib" } +cgp-type = { version = "0.7.0", path = "./crates/cgp-type" } +cgp-field = { version = "0.7.0", path = "./crates/cgp-field" } +cgp-field-extra = { version = "0.7.0", path = "./crates/cgp-field-extra" } +cgp-error = { version = "0.7.0", path = "./crates/cgp-error" } +cgp-error-extra = { version = "0.7.0", path = "./crates/cgp-error-extra" } +cgp-extra-macro = { version = "0.7.0", path = "./crates/cgp-extra-macro" } +cgp-extra-macro-lib = { version = "0.7.0", path = "./crates/cgp-extra-macro-lib" } +cgp-handler = { version = "0.7.0", path = "./crates/cgp-handler" } +cgp-monad = { version = "0.7.0", path = "./crates/cgp-monad" } +cgp-dispatch = { version = "0.7.0", path = "./crates/cgp-dispatch" } +cgp-run = { version = "0.7.0", path = "./crates/cgp-run" } +cgp-runtime = { version = "0.7.0", path = "./crates/cgp-runtime" } diff --git a/crates/cgp-async-macro/Cargo.toml b/crates/cgp-async-macro/Cargo.toml index 78b4be78..900ac15f 100644 --- a/crates/cgp-async-macro/Cargo.toml +++ b/crates/cgp-async-macro/Cargo.toml @@ -5,7 +5,7 @@ license = { workspace = true } repository = { workspace = true } authors = { workspace = true } rust-version = { workspace = true } -version = "0.6.1" +version = "0.7.0" keywords = { workspace = true } description = """ Context-generic programming async macros diff --git a/crates/cgp-component/Cargo.toml b/crates/cgp-component/Cargo.toml index 7b2142d0..63b2d8cd 100644 --- a/crates/cgp-component/Cargo.toml +++ b/crates/cgp-component/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-component" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-core/Cargo.toml b/crates/cgp-core/Cargo.toml index 03711733..7aae1dc7 100644 --- a/crates/cgp-core/Cargo.toml +++ b/crates/cgp-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-core" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-dispatch/Cargo.toml b/crates/cgp-dispatch/Cargo.toml index 7ee3f273..ff0d9db1 100644 --- a/crates/cgp-dispatch/Cargo.toml +++ b/crates/cgp-dispatch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-dispatch" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-error-anyhow/Cargo.toml b/crates/cgp-error-anyhow/Cargo.toml index 8e6cd553..9d16fda8 100644 --- a/crates/cgp-error-anyhow/Cargo.toml +++ b/crates/cgp-error-anyhow/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-error-anyhow" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-error-extra/Cargo.toml b/crates/cgp-error-extra/Cargo.toml index 1c203fb8..2c464a75 100644 --- a/crates/cgp-error-extra/Cargo.toml +++ b/crates/cgp-error-extra/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-error-extra" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-error-eyre/Cargo.toml b/crates/cgp-error-eyre/Cargo.toml index 6a0d5a4b..ad85b4f1 100644 --- a/crates/cgp-error-eyre/Cargo.toml +++ b/crates/cgp-error-eyre/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-error-eyre" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-error-std/Cargo.toml b/crates/cgp-error-std/Cargo.toml index 08b6807a..7a66a2ff 100644 --- a/crates/cgp-error-std/Cargo.toml +++ b/crates/cgp-error-std/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-error-std" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-error/Cargo.toml b/crates/cgp-error/Cargo.toml index 6a344099..c4fb9648 100644 --- a/crates/cgp-error/Cargo.toml +++ b/crates/cgp-error/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-error" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-extra-macro-lib/Cargo.toml b/crates/cgp-extra-macro-lib/Cargo.toml index e0975a82..8f9353bc 100644 --- a/crates/cgp-extra-macro-lib/Cargo.toml +++ b/crates/cgp-extra-macro-lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-extra-macro-lib" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-extra-macro/Cargo.toml b/crates/cgp-extra-macro/Cargo.toml index 5d0c4be3..9d3b4304 100644 --- a/crates/cgp-extra-macro/Cargo.toml +++ b/crates/cgp-extra-macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-extra-macro" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-extra/Cargo.toml b/crates/cgp-extra/Cargo.toml index 22299c7b..b066730c 100644 --- a/crates/cgp-extra/Cargo.toml +++ b/crates/cgp-extra/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-extra" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-field-extra/Cargo.toml b/crates/cgp-field-extra/Cargo.toml index 9ebc6c09..f47cd585 100644 --- a/crates/cgp-field-extra/Cargo.toml +++ b/crates/cgp-field-extra/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-field-extra" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-field/Cargo.toml b/crates/cgp-field/Cargo.toml index b78fb039..fd1d255f 100644 --- a/crates/cgp-field/Cargo.toml +++ b/crates/cgp-field/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-field" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-handler/Cargo.toml b/crates/cgp-handler/Cargo.toml index 42577197..07247c75 100644 --- a/crates/cgp-handler/Cargo.toml +++ b/crates/cgp-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-handler" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-macro-lib/Cargo.toml b/crates/cgp-macro-lib/Cargo.toml index 241e0f1c..a490a0e0 100644 --- a/crates/cgp-macro-lib/Cargo.toml +++ b/crates/cgp-macro-lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-macro-lib" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-macro/Cargo.toml b/crates/cgp-macro/Cargo.toml index 721e90d7..770dd1fd 100644 --- a/crates/cgp-macro/Cargo.toml +++ b/crates/cgp-macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-macro" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-monad/Cargo.toml b/crates/cgp-monad/Cargo.toml index b80b592f..558b5ab3 100644 --- a/crates/cgp-monad/Cargo.toml +++ b/crates/cgp-monad/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-monad" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-run/Cargo.toml b/crates/cgp-run/Cargo.toml index e6eb2094..472be236 100644 --- a/crates/cgp-run/Cargo.toml +++ b/crates/cgp-run/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-run" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-runtime/Cargo.toml b/crates/cgp-runtime/Cargo.toml index 9a420c3b..5c00a985 100644 --- a/crates/cgp-runtime/Cargo.toml +++ b/crates/cgp-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-runtime" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-tests/Cargo.toml b/crates/cgp-tests/Cargo.toml index f7747f95..11d13ae4 100644 --- a/crates/cgp-tests/Cargo.toml +++ b/crates/cgp-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-tests" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp-type/Cargo.toml b/crates/cgp-type/Cargo.toml index 06cdc7f9..f9232b60 100644 --- a/crates/cgp-type/Cargo.toml +++ b/crates/cgp-type/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp-type" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } diff --git a/crates/cgp/Cargo.toml b/crates/cgp/Cargo.toml index aecd5318..ff888af0 100644 --- a/crates/cgp/Cargo.toml +++ b/crates/cgp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cgp" -version = "0.6.1" +version = "0.7.0" edition = { workspace = true } license = { workspace = true } repository = { workspace = true }