Skip to content

Releases: TimeWarpEngineering/timewarp-state

v9.0.0-beta.2

22 Aug 05:02
750ba3f

Choose a tag to compare

v9.0.0-beta.2 Pre-release
Pre-release

🚀 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

20 Aug 01:35
833b369

Choose a tag to compare

v12.0.0-beta.1 Pre-release
Pre-release

🚀 Migration to TimeWarp.Mediator

Breaking Changes

  • Migrated from MediatR 12.4.1 to TimeWarp.Mediator 13.0.0
  • Changed service registration from AddMediatR to AddMediator
  • Updated all namespace imports from MediatR to TimeWarp.Mediator

Migration Guide

  1. Update package references from MediatR to TimeWarp.Mediator
  2. Change namespace imports from using MediatR; to using TimeWarp.Mediator;
  3. Update service registration from AddMediatR() to AddMediator()

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

20 Jun 15:18

Choose a tag to compare

What's Changed

Enhancements

  • File-scoped namespaces support: Added support for file-scoped namespaces in GetNamespace method (#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

Full Changelog: 11.0.2...11.0.3

Release 11.0.2

20 Jun 08:01
b1b6e32

Choose a tag to compare

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

20 Jun 07:12
495b5f8

Choose a tag to compare

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 creation
  • ci-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

10 Dec 10:00
a7b6f31

Choose a tag to compare

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.State now requires .NET 8.0 or later.
  • All references to BlazorState should be updated to TimeWarp.State.
  • The package name has changed from Blazor-State to TimeWarp.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.Plus NuGet 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.Policies NuGet 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 RenderSubscriptionContext for improved render subscription management
  • Added ActionTrackingState for 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

24 Mar 16:02
1286996

Choose a tag to compare

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

23 Mar 08:58
c2513f6

Choose a tag to compare

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

16 Mar 16:31
00d644f

Choose a tag to compare

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

16 Mar 15:34
e1d7e34

Choose a tag to compare

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.