Skip to content

feat: ship marko/log with the file and stream handlers in the skeleton - #642

Merged
markshust merged 2 commits into
developfrom
feature/skeleton-log-handlers
Nov 1, 2026
Merged

markshust merged 2 commits into
developfrom
feature/skeleton-log-handlers

Conversation

@markshust

@markshust markshust commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Since #608 (PR #633) marko/queue requires marko/log, which writes nowhere without a handler, so a new app running a queue worker failed at startup with NoDriverException. The skeleton now ships logging out of the box:

  • packages/skeleton/composer.json requires marko/log, marko/log-file and marko/log-stream (and no longer suggests the two handlers).
  • .env.example sets LOG_HANDLERS=file with a comment: containers/PaaS use stream (stderr), file,stream writes to both.
  • KnownDriversValidator::assertSkeletonSuggestContainsAll() counts a known driver as covered when the skeleton either suggests it (with the verbatim description) or requires it; a required driver that is also suggested fails, since suggesting a required package does nothing.
  • Docs: skeleton page (included dependencies, .env.example block), a new "Logging in Production" section in the logging guide (containers/PaaS use stream, SSH servers use file with rotation, RoadRunner needs the stderr target), a pointer to it from the core "Deploying to production" section, a skeleton note in the logging guide's Setup, and the validator rule in the testing and known-drivers pages.

Decisions

  • No dedicated deploy page exists, so the "Logging in production" section lives in the logging guide (guides/logging.md#logging-in-production) and the deploy section in packages/core.md links to it.
  • Suggest-or-require coverage replaces a special case: the skeleton parity tests and the shared validator accept a driver listed in either suggest or require. The separate "no driver moves into require" guard keeps an explicit, commented allowlist of the two shipped log handlers, so requiring any other driver still fails.

Tests

  • PackageStructureTest: skeleton requires the three log packages; .env.example has LOG_HANDLERS=file and mentions stream / file,stream.
  • KnownDriversSuggestParityTest: suggest-or-require coverage; required drivers must not be suggested.
  • KnownDriversValidatorTest: a required driver passes without a suggest entry; a required and suggested driver fails.
  • composer ci green locally.

Fixes #640

🤖 Generated with Claude Code

https://claude.ai/code/session_017KaHtaJjfe2D38CdEdnmTb

@markshust markshust added the enhancement New feature or request label Nov 1, 2026
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 1, 2026
@markshust
markshust force-pushed the feature/skeleton-log-handlers branch from 6a23a53 to d4b504e Compare November 1, 2026 13:27
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 1, 2026
@markshust
markshust merged commit 09110c4 into develop Nov 1, 2026
6 checks passed
@markshust
markshust deleted the feature/skeleton-log-handlers branch November 1, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skeleton: ship marko/log with the file and stream handlers (LOG_HANDLERS=file by default)

1 participant