๐ Changelog & Versioning
Track the progress and improvements of UIElement with our changelog. This page outlines the versioning scheme used, notable changes, and updates across all pre-releases. Once version 1.0 is released, the changelog will be organized with more detailed information about each version.
1. Versioning Scheme
UIElement follows Semantic Versioning (SemVer), which is structured as MAJOR.MINOR.PATCH.
- MAJOR: Breaking changes that require migrations.
- MINOR: New features that are backwards compatible.
- PATCH: Bug fixes and performance improvements.
2. Pre-Releases Overview
The following is a chronological list of changes and improvements made to UIElement in the pre-release versions. Once version 1.0 is reached, these changes will be grouped under a <details> section for archival purposes.
-
v0.8.3 (2023-09-29)
- New Features:
- Auto-effects now accept anonymous functions for passing state.
- Map interface methods on
UIElementnow accept any key type.
- Breaking Changes:
dispatch()auto-effect renamed toemit().
- Other Changes:
- Optimizations for context and functions connected to the UI interface.
- Updated test cases to use the latest API.
- New Features:
-
v8.0.2 (2023-08-30)
- Bugfixes:
- Attribute parser now returns
unknown[]to avoid issues with partially applied parser functions. - Fixed scheduler bug where updated state was skipped if another update was scheduled for the same property.
- Slight optimizations to the scheduler.
- Attribute parser now returns
- Bugfixes:
-
v0.8.1 (2023-08-21)
- New Features:
- Scheduler deduplicates DOM instructions on the same element property within the same tick.
- Chainable UI API for selecting elements using
this.self,this.first(selector), andthis.all(selector). - Partially applied
pass(stateMap)to connect with the chainable UI interface. - Auto-effects and event handlers now integrate with the chainable UI interface.
- Breaking Changes to Core Features since v0.7.3:
attributeMapis now static likeobservedAttributes.this.pass(element, stateMap)is replaced bythis.[first|all](selector).map(pass(stateMap)).
- New Features:
-
v0.7.3 (2023-08-01)
- Bugfixes and Tests:
- Improved context provider and consumer logic.
- Enhanced attribute parser functions and type definitions.
- Breaking Changes since 0.7.2:
- Removed support for array values in
attributeMap. - Refactored component props interface.
- Removed support for array values in
- Bugfixes and Tests:
-
v0.7.2 (2023-07-22)
- New Features:
- Glitch-free
derive()with memoization for expensive computations. - Faster Cause & Effect.
- Glitch-free
- Non-Core Features:
- Introduced new auto-effects methods and event handlers on UI references.
- New
asJSON()attribute parser.
- New Features:
-
v0.7.1 (2023-07-15)
- Bugfixes:
- Fixed performance issues with derived signals.
- Enhanced type checking for attributes and context maps.
- Bugfixes:
-
v0.7.0 (2023-07-15)
- New Features:
- Source code refactored and converted to TypeScript.
- Context controller added with
providedContextsandconsumedContexts. - New core method
this.targets()for target highlighting.
- Breaking Changes since v0.6.2:
- Renamed attribute parsing functions for consistency.
- Updated context controller implementation.
- New Features:
-
v0.6.2 (2023-07-03)
- New Features:
- Added
this.set()andthis.pass()functions with enhanced functionality. - Effect callback functions receive a queue function for fine-grained updates.
- Added
- Breaking Changes since v0.4.0:
attributeMappingrenamed toattributeMap.
- New Features:
-
v0.4.0 (2023-05-01)
- New Features:
- Consolidated API with a Map-like interface for state management.
- Breaking Changes from v0.3.0:
- Refined signal handling to follow the TC39 Signals Proposal.
- New Features:
3. Resources
For more information on changes and releases:
- GitHub Releases: View all releases and associated notes.
- Semantic Versioning: Learn more about the versioning scheme followed by UIElement.