jetleaf_build 1.1.2
jetleaf_build: ^1.1.2 copied to clipboard
Build module for JetLeaf — generates application libraries and runtime declarations.
Changelog #
All notable changes to this project will be documented in this file.
This project follows a simple, human-readable changelog format inspired by
Keep a Changelog and adheres to semantic versioning.
1.1.1 #
1.1.0 #
This release is a major architectural improvement to the Runtime and scanning model.
Since 1.0.0, using Runtime required runScan or runTestScan to eagerly build the entire application into Declaration objects. While functional, this approach introduced significant drawbacks:
- Long build times, even for small projects
- Excessive and often multiplied memory usage for larger applications
These limitations motivated a redesign in 1.1.0, focusing on on-demand resolution, reduced memory pressure, and clearer runtime boundaries.
Added #
ClosureDeclarationto supportClosureMirrortypes.MaterialLibrary,SourceLibrary, andUnresolvedClassto simplify howRuntimeinteracts with Dart mirrors.ClassReferenceto help in sub class searchingAnnotatedMethodReferencefor annotated method search. Internal- Periodic cache cleanup via
Runtime.enablePeriodicCleanup(). System,SystemDetector,SystemProperties,StdExtension,SystemExtension
Changed #
-
FunctionLinkDeclaration→FunctionDeclaration. -
RecordLinkDeclaration→RecordDeclaration. -
PackageImplementation→MaterialPackage. -
AssetImplementation→MaterialAsset. -
RecordDeclaration,FunctionDeclaration,MixinDeclaration,EnumDeclaration, andClosureDeclarationare now fullClassDeclarationsubtypes, distinguished usingTypeKind.- This unifies previously fragmented APIs under a single, consistent model.
RecordDeclarationandFunctionDeclarationremain subtypes ofLinkDeclaration.
-
AnnotationFieldDeclaration,EnumFieldDeclaration, andRecordFieldDeclarationare now subtypes ofFieldDeclaration, unifying field access and behavior across declaration types. -
Runtimenow operates entirely on-demand:- It no longer holds all discovered classes, enums, or declarations in memory.
- Aggressive cache eviction is applied after use.
- Optional periodic cleanup can be enabled.
-
Scans (
runScan,runTestScan) now return summary results only. Runtime context is populated after scanning completes.
Removed #
TypeDiscovery; key APIs were migrated intoMaterialLibrary.- Support for external
RuntimeProviderdesigns.
Notes #
- This release significantly reduces memory usage and improves scalability.
- The new runtime model favors lazy resolution over eager graph construction.
- Consumers relying on internal runtime behavior should review the updated APIs carefully, as this release introduces intentional breaking changes.
1.0.9 #
Changed #
- Reduced memory usage by switching from full analyzer resolution to AST-only parsing for reflection and declaration analysis.
1.0.8 #
Added #
FunctionLinkDeclarationclass specialized for function parameters, fields, and other function designs (functional).- Comprehensive test coverage for all declaration classes.
Hintabstraction for AOT runtime resolving.ExecutableArgumentto simplify argument access and design.RuntimeHintProvideras a lazy provider for runtime hints.- Analyzer-awareness across all declarations.
- Dedicated exception classes for clearer and more accurate error handling.
- Command-line argument support for
runScanandrunTestScan, including configurableRuntimeScannerand logging. RuntimeBuilderto expose logs generated during runtime scanning.LocatedFilesas the recommended tree-shaking mechanism as of1.0.8.
Changed #
- Renamed
RuntimeHintclass toTypedRuntimeHintand introduced a newRuntimeHintinterface. - Renamed
RuntimeResolvertoRuntimeExecutor. - Redesigned
RecordDeclarationasRecordLinkDeclarationwith a new API and access model. TypedefDeclarationis now fully functional and no longer experimental.
Fixed #
- Parameter resolution issues for argument invocation in methods and constructors.
Removed #
ExtensionDeclaration, as it is not fully supported at this time.
Notes #
TreeShakerremains experimental; preferLocatedFilesfor production use.
1.0.7 #
1.0.6 #
1.0.4 #
1.0.0 #
Initial stable release.
Added #
- Runtime scanning infrastructure (
ApplicationRuntimeScanner,runScan) for discovering annotated types, pods, and runtime metadata. - Generators for application libraries and declaration files, including:
- Application library generator
- Declaration file writer
- Library and mock library generators
- Tree-shaker and resource generator helpers
- Runtime provider implementations and resolvers (configurable, standard, meta providers; AOT/JIT/fallback resolvers).
- Utility helpers for code generation and scanning:
- Type resolution
- File utilities
- Generic type parsing
- Reflection utilities
- Public API exports for annotations, constants, exceptions, helpers, runners, and runtime generators
(seelib/jetleaf_build.dart). - Documentation site and initial examples (see
documentationpackage inpubspec.yaml). - Basic test coverage and linting setup using
testandlints.
Changed #
- N/A (initial release)
Fixed #
- N/A (initial release)
Removed #
- N/A (initial release)
Security #
- No security advisories for this release.
Notes #
- This release stabilizes the build and generation APIs used by JetLeaf tooling. If you rely on internal or non-exported APIs, treat this version as the compatibility baseline for future releases.
Links #
- Documentation: https://jetleaf.hapnium.com/docs/build
- Repository: https://github.com/jetleaf/jetleaf_build
- Issues: https://github.com/jetleaf/jetleaf_build/issues
Contributors: Hapnium & JetLeaf contributors