Releases: TimeWarpEngineering/timewarp-state
v9.0.0-beta.2
🚀 TimeWarp.State v9.0.0-beta.2
✨ Major Changes
- Migrated from MediatR to TimeWarp.Mediator - Complete migration to our own mediator implementation
- Kebab-case naming convention - Entire codebase now uses kebab-case for files and directories
- .NET 9 Support - Full support for .NET 9 with .NET 10 Preview compatibility
- Integrated .NET 9 RendererInfo API - Leveraging new render mode detection features
🐛 Bug Fixes
- Fixed CI/CD pipeline failures after kebab-case migration
- Fixed JavaScript imports to use kebab-case file names
- Fixed E2E test failures with component render modes
- Fixed HTTPS/SSL certificate issues in Linux E2E tests
- Resolved Properties folder casing issue for dotnet run
⚡ Performance Improvements
- Optimized Playwright installation to only download Chromium
- Removed 578 build artifact files from version control
- Replaced deprecated UseStaticFiles() with MapStaticAssets()
🔧 Infrastructure
- Updated GitHub Actions workflows for .NET 9 and .NET 10 Preview
- Updated all PowerShell scripts to use kebab-case paths
- Improved .gitignore with kebab-case paths
- Cleaned up test app output directory
📝 Notes
Microsoft's .NET 9 RendererInfo implementation validates our original render mode detection approach - they essentially implemented what we had already built!
🙏 Acknowledgments
Special thanks to all contributors and the community for their patience during this major migration.
Full Changelog: v9.0.0-beta.1...v9.0.0-beta.2
v12.0.0-beta.1
🚀 Migration to TimeWarp.Mediator
Breaking Changes
- Migrated from MediatR 12.4.1 to TimeWarp.Mediator 13.0.0
- Changed service registration from
AddMediatRtoAddMediator - Updated all namespace imports from
MediatRtoTimeWarp.Mediator
Migration Guide
- Update package references from
MediatRtoTimeWarp.Mediator - Change namespace imports from
using MediatR;tousing TimeWarp.Mediator; - Update service registration from
AddMediatR()toAddMediator()
What's Changed
- Updated all package references and namespaces
- Fixed analyzer tests to use TimeWarp.Mediator.Contracts.dll
- Updated all XML comments and documentation
- All existing functionality preserved with full API compatibility
Full Changelog: v11.0.3...v12.0.0-beta.1
Release 11.0.3
What's Changed
Enhancements
- File-scoped namespaces support: Added support for file-scoped namespaces in
GetNamespacemethod (#531) - Improved source generator: Enhanced syntax traversal and readability optimizations
- Better class comparison: Added parent class comparison to
ClassDeclarationSyntaxComparer
Infrastructure
- Updated GitHub Actions workflows for Claude Code Review and PR Assistant
- Updated security scorecard action to v2.4.2
Contributors
- @archiether for file-scoped namespaces support
Full Changelog: 11.0.2...11.0.3
Release 11.0.2
What's Changed
CI/CD Workflow Fixes
- Fixed PowerShell XML parsing in release workflow using SelectSingleNode
- Corrected package publishing to only publish actual NuGet packages:
- TimeWarp.State (includes embedded Analyzer/SourceGenerator)
- TimeWarp.State.Plus
- TimeWarp.State.Policies
- Removed erroneous publishing attempts for Analyzer/SourceGenerator (these are embedded, not separate packages)
- Added tag validation skip for manual workflow dispatch testing
- Updated documentation to clarify package structure
Architecture Documentation
- Enhanced Claude.md with package structure details
- Documented that Analyzer and SourceGenerator are embedded in main package
This release tests the corrected CI/CD workflow that properly handles NuGet package publishing on GitHub Release creation.
Full Changelog: 11.0.1...11.0.2
Release 11.0.1
What's Changed
CI/CD Improvements
- Split NuGet publishing to only occur on GitHub Releases (not master branch merges)
- Added version validation to ensure release tags match package versions
- Improved error handling and package existence checks in publishing workflow
- Enhanced publishing coverage to include all packages (Analyzer, SourceGenerator, etc.)
Workflow Changes
master-build.yml: Builds and tests on master branch (no publishing)release-publish.yml: Publishes NuGet packages only on GitHub release creationci-build.yml: Continues to handle PR validation
This release improves the development workflow by preventing accidental package publishing and ensuring only validated releases reach NuGet.org.
Full Changelog: 11.0.0...11.0.1
Release 11.0.0
uid: TimeWarpState:Release.11.0.0.md
title: Release 11.0.0
Release 11.0.0
Major Changes
Rebranding to TimeWarp.State
We're excited to announce that Blazor-State has been rebranded to TimeWarp.State.
This change reflects our evolving vision and commitment to providing a robust state management solution for Blazor applications.
Breaking Changes
See Migrations for instructions on how to migrate from version 10.0 to 11.0.
TimeWarp.Statenow requires .NET 8.0 or later.- All references to
BlazorStateshould be updated toTimeWarp.State. - The package name has changed from
Blazor-StatetoTimeWarp.State.
You'll need to update your package references and namespaces accordingly.
New Features
- Enabled chained inherits from State<> - so users can make/use their own BaseState<>
- Introduced
TimeWarp.State.PlusNuGet package with additional features:- New Timer system with MultiTimer support and activity-based reset capabilities
- Feature Flag system for managing feature toggles
- Enhanced routing with TwBreadcrumb and TwPageTitle components
- Improved caching with TimeWarpCacheableState
- Added
TimeWarp.State.PoliciesNuGet package for architecture policies:- BeNestedInStateCustomRule for enforcing proper nesting
- HaveInjectableConstructor rule
- HaveJsonConstructor rule
- Action, ActionHandler, ActionSet, and State policies
- Implemented ActionSet source generator for simplified action creation
- Added support for persistent state with
[PersistentState]attribute - Introduced
RenderSubscriptionContextfor improved render subscription management - Added
ActionTrackingStatefor better action tracking capabilities - Enhanced component rendering with new RenderMode and RenderReasons tracking
Improvements
- Optimized CI/CD pipelines for better performance and reliability
- Enhanced caching mechanisms for NuGet packages in GitHub Actions
- Improved logging capabilities with new Logger implementation
- Updated to use the latest MediatR version
- Refactored and improved the test suite:
- Added comprehensive Playwright end-to-end tests
- New architecture tests for enforcing conventions
- Enhanced integration tests
- Optimized TwPageTitle component with improved rendering performance
- Added state initialization pre-processor
- Enhanced JavaScript interop capabilities
Documentation
- Completely revamped documentation structure and content
- Added new tutorials and updated existing ones for TimeWarp.State
- Implemented automated documentation publishing workflow
- Added comprehensive samples demonstrating various features:
- Sample 00: Basic State and Action Handler usage
- Sample 01: Redux DevTools integration
- Sample 02: Action Tracking capabilities
- Sample 03: Advanced routing features
Developer Experience
- Added support for central package management
- Improved developer tooling, including updated EditorConfig and coding standards
- Enhanced source generators for better development productivity
- Added TimeWarp.State.Analyzer for code analysis:
- ActionAnalyzer
- StateImplementationAnalyzer
- StateInheritanceAnalyzer
- StateReadOnlyPublicPropertiesAnalyzer
Other Changes
- Removed time travel debugging feature to optimize performance and reduce complexity
- Updated all dependencies to their latest stable versions
- Improved error handling and exception reporting throughout the library
- Added .ai folder to the repository for prompting AI-generated content
- Reorganized project structure for better maintainability
- Enhanced build and test scripts
Migration Guide
For detailed instructions on how to migrate from Blazor-State to TimeWarp.State, please refer to our Migration Guide.
v5.0.0+6.0.200
Changes:
- 1286996 Merge pull request #287 from TimeWarpEngineering/Cramer/2022-03-23/CleanUpAndDocs
- 997d696 Add Release notes and Migration notes.
- 5e1d224 Bump to release version
- aa7fc06 Update tutorial using Javascript Intializers we no longer need to add the script tag.
- a917b11 remove junk from esproj file
This list of changes was auto generated.
v5.0.0-beta.1+6.0.200
Changes:
- c2513f6 Merge pull request #286 from TimeWarpEngineering/Cramer/2022-03-23/JsAutoInit
- a1f2444 Bump beta number
- b584e04 Add the reference and have it ignore the output.
- b4bb16d Move initialize functionality to beforeStart and remove the window check as this never occurs more than once anyway
- f2f37bf remove the noise from this line wasn't needed just lefto over from refactoring.
- 2e2e657 formating
- a90c9e5 Don't need initialize() function can do it in beforeStart
- dca48a6 Use the new JavaScript initializers
- bae5d5f Update tutorial
- 10b4d0e Switch to a esproj from csproj
This list of changes was auto generated.
v5.0.0-beta.0+6.0.200: Merge pull request #285 from TimeWarpEngineering/Cramer/2022-03-16
Changes:
- 00d644f Merge pull request #285 from TimeWarpEngineering/Cramer/2022-03-16
- 500c64c Update some tags descriptions version
This list of changes was auto generated.
v4.1.0-beta.6+6.0.200: Merge pull request #284 from TimeWarpEngineering/Cramer/2022-03-16
Changes:
- e1d7e34 Merge pull request #284 from TimeWarpEngineering/Cramer/2022-03-16
- 2eb1683 Don't include symbols instead embedding them.
- 17feab0 Merge pull request #283 from TimeWarpEngineering/Cramer/2021-12-23/WIP
- d44c499 dotnet format style
- 1e99465 dotnet format whitespace
- 8c857f8 Update formatting
- f2c81f8 Merge pull request #282 from TimeWarpEngineering/Cramer/2021-12-23/WIP
- c64777c Use embedded debug symbols vs seperate package
- a77c23a Merge pull request #281 from TimeWarpEngineering/Cramer/2021-12-23/WIP
- a045bfe move to emmbedded symbols in source link vs snupkg
See More
- 30dd378 Updated to latest npm packages.
- 616a22b Update version number and the DotnetSDKVersion
- 039ea87 Update Package versions
- 9df297f Replace Shouldly with FluentAssertions
- 7134414 Revert back to functional version
- cbcdcbf Want ESNext here and remove commented code.
- ef422b1 Reverting back to older versions (when they worked)
- 236a08b Start migration from seperate TypeScript project
- 41fde88 Mediatr 10 migration
- c765981 Formatting
- 6a82329 Ignore js and map files in wwwroot because we will use TypeScript
- 64bf276 Convert to FluentAssertions from Shouldly
- 4061d45 Merge branch 'master'
- fed97f8 switch to use Directory.Packages.props
- 367e0be Merge pull request #280 from tmyllymaki/master
- df65108 Update Mediatr to 10.0.1 for .NET 6 support
- 92930a9
- 16520a8 Add this to avoid dotnet format breaking the code
- eb145a5 Remove ConfigureAwait(false)
- b1ba303 dotnet format style
- 6909c95 dotnet format style changes
- c3dcb80 whitespace formatting
- 139ed74 whitespace formatting
- a83df56 explicitly specify the Language verion
This list of changes was auto generated.