This repository was archived by the owner on Feb 4, 2026. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 1
Release 0.6.0 #21
Merged
Merged
Release 0.6.0 #21
Changes from all commits
Commits
Show all changes
46 commits
Select commit
Hold shift + click to select a range
9388607
chore: prepare release 0.6.0
siy 804b245
chore: bump Aether to 0.8.1 and re-enable slice-processor-tests
siy 1349326
fix: update slice init templates for 0.6.0
siy f25316f
fix: remove Sample prefix and use lowercased slice name for inner record
siy 8982a50
docs: update version references to 0.6.0
siy 8d037d2
fix: update regular project template Java version to 25
siy bf1248a
feat(init): use running binary version as minimum for jbct version re…
siy 9e040e9
fix(init): correct slice template ValidationError and Promise API
siy 8cccf2a
fix(init): add missing Cause import to slice template
siy 35a3297
fix(init): implement message() method in ValidationError.EmptyValue
siy fdb4f5b
fix(init): use unwrap() instead of getOrThrow() in test template
siy 03f9b14
feat(init): validate groupId and add annotation processor config to s…
siy 1da48f8
docs: update changelog for 0.6.0 release
siy 44f8135
docs(init): update README and tests for template changes
siy 3533b34
docs(slice): update quickstart to reflect current template structure
siy 57336a8
docs(slice): update README project structure
siy d743573
fix(slice): remove slice-api.properties for RFC-0004 compliance
siy 6ff6316
style: format code after RFC-0004 changes
siy 74c99ed
feat(slice): implement RFC-0007 infrastructure dependency handling
siy c7bd16a
fix(slice): correct property name for slice artifact ID
siy 6a23aa4
fix(slice): fix dependency file generation and blueprint resolution
siy 3b2603f
fix(slice): deduplicate local dependencies in blueprint
siy 7fd74d5
feat(slice): include same-module slice dependencies in [slices] section
siy afdf429
fix(slice): resolve service file collision and add http-routing-adapt…
siy 25ed24f
fix(slice): detect same-module dependencies by base package prefix
siy 95fbf23
refactor(slice): move http-routing-adapter validation to maven plugin
siy c7e4576
fix(slice): generate infra dependency calls using factory methods
siy d0e40a3
fix(slice): transform factory bytecode to replace UNRESOLVED versions…
siy d831e34
chore: update changelog date to 2026-01-29
siy 32e67aa
refactor: improve code quality in bytecode transformer and version re…
siy df31021
test: add unit tests for PackageSlicesMojo
siy 084f664
refactor: use Result.all() with or() for version comparison
siy b052998
fix(slice): include Routes class and service file in slice JARs
siy bedcef8
feat(slice): remove unused blueprint properties, default to 3 instances
siy 2f588c9
fix(slice): wrapper implements both Slice and slice interface
siy 6421037
ci: fix cyclic dependency by installing modules individually
siy 9f82c42
ci: install parent POM to fix dependency resolution
siy 5d81abf
ci: exclude slice-processor (depends on unpublished Aether libs)
siy 8b8edff
fix: address all PR review comments
siy 6ba7e7b
refactor: fix JBCT compliance issues across codebase
siy 0396e12
fix(slice): ensure deterministic route generation order
siy b6e6320
fix: address all JBCT compliance issues from parallel review
siy 945d20b
refactor: rename SecurityError types to use past tense per JBCT
siy 173acf8
fix: address all remaining JBCT compliance issues
siy 72a7155
docs: document JBCT pattern exceptions for resource loading
siy be46bca
fix: address PR review comments for slice processing
siy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,57 @@ | ||
| # Changelog | ||
|
|
||
| ## [0.6.0] - 2026-01-29 | ||
|
|
||
| ### Added | ||
| - Init: groupId validation for `jbct init -g` parameter (validates Java package name format) | ||
|
|
||
| ### Changed | ||
| - Slice init: added tinylog dependencies (2.7.0) in test scope | ||
| - Slice init: added tinylog.properties configuration file in test resources | ||
| - Build: Bump Aether to 0.8.1 | ||
| - CI: Re-enabled slice-processor-tests module | ||
| - Slice init: Java version 21 to 25 | ||
| - Slice init: updated default versions (Pragmatica Lite 0.11.1, Aether 0.8.1, JBCT 0.6.0) | ||
| - Slice init: implementation pattern changed to record-based (nested record in interface) | ||
| - Slice init: removed Config dependency from template (factory now parameterless) | ||
| - Slice init: added annotation processor configuration to maven-compiler-plugin | ||
| - Slice init: added compilerArgs with `-Aslice.groupId` and `-Aslice.artifactId` | ||
| - Slice init: removed separate *Impl.java, SampleRequest.java, SampleResponse.java files | ||
| - Slice init: Request/Response/Error records now nested in @Slice interface | ||
| - Slice init: removed "Sample" prefix from Request/Response records | ||
| - Slice init: inner implementation record uses lowercased slice name, not "Impl" | ||
| - Init: version resolution uses running binary version as minimum (overrides GitHub API if newer) | ||
| - Init: version comparison uses Result-based `Number.parseInt()` from pragmatica-lite | ||
|
|
||
| ### Fixed | ||
| - RFC-0004 compliance: removed non-standard slice-api.properties generation | ||
| - RFC-0004 compliance: slice manifests now include `slice.interface` property | ||
| - RFC-0004 compliance: renamed `impl.artifactId` to `slice.artifactId` in manifests | ||
| - RFC-0007 compliance: infrastructure dependencies now accessed via InfraStore instead of being proxied | ||
| - CollectSliceDepsMojo: now scans META-INF/slice/*.manifest instead of slice-api.properties | ||
| - VerifySliceMojo: validates manifest files instead of slice-api.properties | ||
| - PackageSlicesMojo: reads slice metadata from .manifest files | ||
| - SliceProjectValidator: checks for .manifest files instead of slice-api.properties | ||
| - SliceManifest: reads `slice.artifactId` property (was incorrectly reading `impl.artifactId`) | ||
|
Comment on lines
+26
to
+35
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Potential spec/backward-compat break: removal of The changelog states 🤖 Prompt for AI Agents |
||
| - PackageSlicesMojo: fixed JAR naming bug (empty artifact prefix in JAR names) | ||
| - PackageSlicesMojo: fixed JAR overwriting bug (multiple slices now create separate JARs) | ||
| - FactoryClassGenerator: infrastructure deps (CacheService, etc.) now use InfraStore.instance().get() | ||
| - FactoryClassGenerator: only slice dependencies are proxied via SliceInvokerFacade | ||
| - FactoryClassGenerator: reduced flatMap chain depth (e.g., 13 to 3 for UrlShortener with mixed deps) | ||
| - PackageSlicesMojo: bytecode transformation replaces UNRESOLVED versions with actual versions (strips semver prefix ^/~) | ||
| - Slice init: `ValidationError` now extends `Cause` (required for `Result.failure`) | ||
| - Slice init: added missing `Cause` import to template | ||
| - Slice init: `Promise.success()` instead of `Promise.successful()` | ||
| - Slice init: implemented `message()` method in `ValidationError.EmptyValue` | ||
| - Slice init: test template now uses monadic composition instead of `.unwrap()` | ||
| - FactoryClassGenerator: infra flatMaps now use proper nesting for variable scoping | ||
| - GenerateBlueprintMojo: UNRESOLVED dependency edges now properly resolved in graph traversal | ||
| - CollectSliceDepsMojo: improved base.artifact validation (rejects spaces, slashes) | ||
|
|
||
| ## [0.5.0] - 2026-01-20 | ||
|
|
||
| ### Added | ||
| - Security: `SecurityError` sealed interface with `PathTraversal`, `InvalidUrl`, `UntrustedDomain` error types | ||
| - Security: `SecurityError` sealed interface with `PathTraversalDetected`, `UrlRejected`, `DomainRejected` error types | ||
| - Slice verify: dependency scope validation for Aether runtime libraries | ||
| - `jbct:verify-slice` now fails if `org.pragmatica-lite` or `org.pragmatica-lite.aether` dependencies are not `provided` scope | ||
| - Prevents accidental bundling of runtime libraries in slice JARs | ||
|
|
@@ -110,8 +158,6 @@ | |
|
|
||
| ## [0.4.7] - 2026-01-10 | ||
|
|
||
| ### Added | ||
|
|
||
| ### Changed | ||
| - Build: bump Pragmatica Lite to 0.9.10 | ||
| - Docs: update README with missing CLI options (--config, --version, --artifact-id, etc.) | ||
|
|
@@ -128,8 +174,6 @@ | |
|
|
||
| ## [0.4.6] - 2026-01-05 | ||
|
|
||
| ### Added | ||
|
|
||
| ### Changed | ||
| - Build: bump Pragmatica Lite to 0.9.7 | ||
| - Slice processor: refactored models to use `Result<T>` instead of exceptions (JBCT compliance) | ||
|
|
@@ -148,23 +192,15 @@ | |
|
|
||
| ## [0.4.5] - 2026-01-02 | ||
|
|
||
| ### Added | ||
|
|
||
| ### Changed | ||
| - Build: bump Pragmatica Lite to 0.9.4 | ||
|
|
||
| ### Fixed | ||
|
|
||
| ## [0.4.4] - 2026-01-01 | ||
|
|
||
| ### Added | ||
|
|
||
| ### Changed | ||
| - AI tools: update to JBCT v2.0.10 with Pragmatica Lite Core 0.9.3 | ||
| - Build: bump Pragmatica Lite to 0.9.3 | ||
|
|
||
| ### Fixed | ||
|
|
||
| ## [0.4.3] - 2025-12-31 | ||
|
|
||
| ### Added | ||
|
|
@@ -188,10 +224,6 @@ | |
|
|
||
| ## [0.4.2] - 2025-12-30 | ||
|
|
||
| ### Added | ||
|
|
||
| ### Changed | ||
|
|
||
| ### Fixed | ||
| - Parser: `record` as contextual keyword - works as method name, type name, field type, variable type | ||
|
|
||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changelog entry likely conflicts with the intended template signature.
Line 16 says the factory is now parameterless, but the PR objectives explicitly mention the factory static method accepts a
Configdependency parameter. Please confirm the actual template change and adjust the entry accordingly to avoid misleading release notes.🤖 Prompt for AI Agents