Skip to content

Releases: laravelui5/core

Finalize AbstractManifest and runtime integration

15 Nov 07:29
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

The AbstractManifest has been fully implemented. This version finalizes the manifest lifecycle, ensuring each UI5 module can now generate its own consistent laravel.ui5 fragment.

Changes

  • Renamed AbstractLaravelUi5ManifestAbstractManifest.
  • Added InvalidModuleException when a module slug cannot be resolved.
  • Implemented all missing build* methods:
    buildMeta, buildRoutes, buildRoles, buildAbilities, buildSettings, buildActions, buildResources, buildIntents.
  • Added route name resolution for app routes in buildRoutes().
  • Unified URL construction for actions and resources.
  • getLaravelUi5Fragment() renamed to getFragment() for brevity and alignment with Laravel naming style.
  • All fragment sections now return stable, filtered arrays without empty values.
  • Renamed base TestCaseFeatureTestCase for improved test context clarity.
  • Introduced dedicated unit tests per build* method for granular coverage.
  • The #[Role] attribute now supports an optional $scope property, enabling semantic linkage between roles and domain models.

Compatibility Notes

  • No breaking API changes for consumers using Ui5Registry.
  • Future code should prefer Ui5RuntimeInterface to access manifest data dynamically.
  • getFragment() replaces getLaravelUi5Fragment() – direct migration recommended.

Summary

This release completes the architectural transition of the manifest layer into a stable, runtime-driven foundation for LaravelUi5.
Developers can now rely on consistent manifest fragments, clear test coverage, and an extensible attribute system.

Runtime and Introspection Split

13 Nov 11:46
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Added

  • Ui5RuntimeInterface introduced as a lightweight, read-only contract for deterministic runtime lookups of modules and artifacts.

Changed

  • Ui5RegistryInterface now focuses solely on build-time introspection and metadata discovery.
    Runtime responsibilities (lookup, routing, resolution) have been moved to the new Ui5RuntimeInterface.
  • Method all() has been renamed to artifacts() for clearer semantics and consistency with internal terminology.

Rationale

This architectural split formalizes the distinction between build-time reflection and runtime resolution, mirroring Laravel’s own cache and compilation model.
It improves clarity, performance, and maintainability by ensuring that cached registries only serve deterministic data, while introspection remains part of the development layer.

Impact

  • Update any references to Ui5RegistryInterface::all()Ui5RegistryInterface::artifacts().
  • Classes depending on runtime lookups should now type-hint Ui5RuntimeInterface instead of Ui5RegistryInterface.

Core Registry Simplification Changed

13 Nov 07:21
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Changed

  • Streamlined slugFor() resolution in Ui5Registry to directly use internal lookup tables.
  • Removed redundant mapping methods namespaceToModuleSlug() and artifactToModuleSlug() from the registry interface for cleaner API and reduced duplication.

Rationale

These changes simplify the registry API by removing overlapping methods that duplicated existing responsibilities.
slugFor() now provides a single, consistent entry point for resolving artifact namespaces to slugs, improving clarity and maintainability across layers.

Unified role handling and improved registry consistency

13 Nov 05:08
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

  • Unified Core role declarations using the SettingVisibilityRole enum, ensuring consistent role hierarchy and synchronization between settings, roles, and permissions.
  • Added artifact → module slug mapping for more transparent cross-module referencing.
  • Renamed Ui5Registry::introspect() to Ui5Registry::exportToCache() for clearer semantics.

Include namespace when referencing abilities for roles

12 Nov 08:02
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Include namespace when referencing abilities for roles.

Resolve Referenced Abilities for Roles

12 Nov 06:47
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

This release finalizes the semantic link between roles and abilities in the Core registry and ensures deterministic reflection for all modules.

Added

  • Implemented two-pass reflection to resolve Role and Ability relationships deterministically.
  • Roles in the registry now include an abilities array with all referenced Ability objects.
  • Added validation: Abilities referencing undeclared roles now trigger a LogicException.
  • Extended test coverage for role–ability mappings in the registry.

Changed

  • Simplified internal reflection order: roles are registered before abilities.
  • Unified registry data structure for roles (note + abilities).

Refined Attribute Semantics and Sdk Alignment

11 Nov 08:21
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

This release finalizes the semantic cleanup of Core attributes.

Added

  • Introduced a distinct BaseTestCase class for consistent unit testing.
  • Added note property to the Setting attribute for descriptive metadata.

Changed

  • Enums are now stored as objects in the Ui5Registry for stronger typing and reflection support.
  • Renamed visibilityRolerole in Setting to align with unified naming conventions.
  • Enhanced the Role attribute with refined semantics and documentation.
  • Normalized technical identifiers across all attributes for consistent SDK integration.

Extension Hooks and Core Refinements

09 Nov 14:57
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

This maintenance release introduces a forward-looking extension hook for the Ui5Registry,
making the Core formally extensible for high-level integrations while refining type safety and dependency boundaries.

Added

  • Extension Hook afterLoad() in Ui5Registry.

Changed

  • Refined and standardized PHPDoc type annotations for improved static analysis and IDE integration.
  • Renamed property descriptionnote in the #[Role] attribute for clearer semantics and consistency across attributes.
  • Removed unnecessary laravel/framework dependency to make the Core fully framework-agnostic and reusable in standalone contexts.

Summary

The Core is now formally open for extension while remaining decoupled from Laravel internals. A leaner, cleaner, and more flexible foundation for the LaravelUi5 SDK layer.

Ability Architecture Integration

08 Nov 09:21
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

This release introduces the new Ability System foundation in Core, establishing the backend layer for declarative access control and frontend synchronization.

Highlights

  • Added AbilityType::Access
    Backend-only ability type used to gate entry-level artifacts such as Apps, Dashboards, Reports, Tiles, KPIs, Resources, and Dialogs.
    Complements existing types (Use, See, Act) to provide a complete four-scope permission model.

  • Enhanced Ui5Registry accessors
    Updated abilities() and settings() methods to support flexible filtering and namespace-based retrieval.

Impact

  • No breaking changes for existing consumers.
  • Prepares the foundation for SDK-level ability reflection (manifest.json integration, validation, and context endpoints).
  • Safe to upgrade for all current projects using Core.

Refined Core Introspection and Full Registry Coverage

07 Nov 10:08
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

This release marks a major internal evolution of the LaravelUi5 Core,
introducing full test coverage for the Ui5Registry, expanded introspection capabilities,
and an updated PHP baseline for improved developer ergonomics and reliability.

Added

  • Comprehensive Pest test suite for all Ui5Registry layers
    (Lookup, Introspection, Runtime Resolution, Semantic Discovery)
  • New Settings reflection support within the Registry
  • Extended metadata discovery for manifest.json generation
  • Additional type safety and validation for Roles, Abilities, and SemanticObjects

Changed

  • PHP 8.3 is now the official minimum supported version
  • CachedUi5Registry moved to the SDK package for runtime optimization
  • Ui5RegistryInterface refined with improved semantics and consistent method naming

Summary

This version completes the Core’s introspection layer and stabilizes its runtime logic.