Skip to content

chore: Release 1.1.0#15

Merged
nfebe merged 9 commits into
mainfrom
dev
Jun 7, 2026
Merged

chore: Release 1.1.0#15
nfebe merged 9 commits into
mainfrom
dev

Conversation

@nfebe

@nfebe nfebe commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

No description provided.

kofimokome and others added 9 commits October 2, 2025 19:01
The package can now be installed and tested without PHP or Composer on
the host, matching the setup used by sibling packages. Common workflows
are exposed as make targets.
Discovery logging now goes through an injected logger with a
configurable channel and minimum level (warning by default), so
consuming applications no longer get debug noise in their logs and can
route or silence plugin engine output independently of application
logging.

A missing plugins directory now means no plugins: it is treated as a
normal state logged at debug instead of producing a warning on every
request, and a discovery scan emits a single summary line instead of
one line per directory entry. The configured plugins path is now
honored instead of being hardcoded.
Discovery results can now be compiled to a cache file that is loaded on
boot, removing the filesystem scan and manifest parsing from every
request. Deploys opt in the same way they cache configuration and
routes, and clearing the cache returns to live discovery.

Enabling, disabling, or rediscovering plugins refreshes an existing
cache so it never goes stale.
These files predate the linter check and were failing it, blocking CI
on any branch. No behavior change.
Bumps the package to 1.1.0 with changelog entries for configurable
logging, the compiled plugin cache, and the dockerized development
environment. Generalizes the package description and drops the stale
unreleased notes that duplicated the 1.0.0 entry.
feat: Add configurable logging with channel and level filtering
@sourceant

sourceant Bot commented Jun 7, 2026

Copy link
Copy Markdown

Code Review Summary

Release 1.1.0 introduces significant performance and observability improvements, specifically a plugin caching system and granular logging control.

🚀 Key Improvements

  • Introduced plugin:cache and plugin:clear for optimized plugin discovery.
  • Added configurable logging with channel and level filtering via LevelFilteringLogger.
  • Containerized the development environment using Docker and Makefile.

💡 Minor Suggestions

  • Consider using a safer default for unknown log levels.
  • Add defensive checks when requiring the cache file.

@sourceant sourceant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. See the overview comment for a summary.

public function log($level, string|\Stringable $message, array $context = []): void
{
// Unknown levels pass through so the inner logger can decide how to handle them
$severity = static::SEVERITY[strtolower((string) $level)] ?? PHP_INT_MAX;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Defaulting to PHP_INT_MAX for unknown levels might cause unexpected behavior if a custom level is intended to be 'low priority'. While standard levels are handled, explicitly documenting this behavior or allowing a default level for unknown types would be safer.

Suggested change
$severity = static::SEVERITY[strtolower((string) $level)] ?? PHP_INT_MAX;
$severity = static::SEVERITY[strtolower((string) $level)] ?? -1;

@nfebe nfebe merged commit dc421fb into main Jun 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants