Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 44 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

Nothing yet.

## [1.0.0] - 2026-07-28

Initial release. Requires PHP 8.2+.

### Added
- Initial public changelog. Entries land here under `## [Unreleased]` and are
moved into a dated, versioned section when a release is tagged.

[Unreleased]: https://github.com/rtCamp/wp-framework/commits/main
- **Loaders**
- `AssetLoader` — registers scripts, styles and script modules from a build
directory, reading dependencies and versions from the generated
`*.asset.php` manifests, with a `handle()` helper for namespaced handles.
- `TemplateLoader` — locates and renders templates across the child theme,
parent theme and the package's own directory, honouring WordPress'
`locate_template()` precedence, with a per-request location cache.
- `ComponentLoader` — resolves and renders self-contained component packages
across the same hierarchy and registers their assets on demand. Render and
asset hooks are namespaced per loader context, so one package's listeners
never fire for another's.
- **Composition**
- `Container` and the `Loader` trait — instantiate a list of classes, register
hooks for anything `Registrable`, and cache anything `Shareable`.
- Contracts: `Registrable`, `ConditionallyRegistrable`, `Shareable`,
`CLICommand`.
- `Singleton` trait, storing one instance per concrete class so a parent and
subclass never share one.
- **Abstract base classes** — `AbstractModule`, `AbstractFeature`,
`AbstractBlock`, `AbstractPostType`, `AbstractTaxonomy`, `AbstractUserRole`,
`AbstractShortcode`, `AbstractAdminPage`, `AbstractSettingsPage` and
`AbstractRESTController`.
- **Utilities**
- `Cache` — object-cache wrapper with group namespacing and opt-in
stale-while-revalidate.
- `Encryptor` — authenticated encryption (AES-256-GCM by default), injectable
per key domain, with a `key()` seam for sourcing secrets from a KMS or
environment. Secrets of any length are derived to a full cipher-length key.
- `FeatureSelector` and `FeatureSelectorSettingsPage` — feature flags stored in
a single option, overridable by PHP constants for hard locks.
- `Transients` — prefix-namespaced transient access.
- `Timer` — named, multi-scope timing.
- `Logger` — levelled logging.
- Reference documentation under `docs/`, a GPL-2.0-or-later `LICENSE.md`, and a
WordPress integration test suite running against `@wordpress/env`.

[Unreleased]: https://github.com/rtCamp/wp-framework/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/rtCamp/wp-framework/releases/tag/v1.0.0
Loading