Skip to content

Package with the same Composer as new, and silence SKERNEL's scan report - #10

Merged
wheakerd merged 2 commits into
mainfrom
package-composer-lookup
Nov 4, 2026
Merged

wheakerd merged 2 commits into
mainfrom
package-composer-lookup

Conversation

@wheakerd

@wheakerd wheakerd commented Nov 4, 2026

Copy link
Copy Markdown
Member

Summary

Composer for package

  • package now finds Composer the way new does: --composer or the package.composer setting, used unchecked, or else the first working Composer 2 in PATH or the user's usual locations, or else SKERNEL's own.
  • A machine without Composer can now package a project, so Composer is no longer listed as a requirement.

Scan report

  • Every command of a packaged SKERNEL opened with a warning that the annotation scan had skipped classes, such as optional Symfony bundles whose dependencies are not installed. StderrLogger now drops records whose event is an annotation scan's, and writes the rest as before.
  • No framework component changes. A project that SKERNEL builds still reports its own scan through its own logger.

Compatibility

  • package no longer fails when composer is not in PATH. It uses a Composer from the user's usual locations or SKERNEL's own instead, which builds a managed PHP the first time.
  • Other commands behave as before, apart from the removed warning.

Validation

  • composer test passes 121 tests and composer format:check passes. A test requires an empty STDERR from --version.
  • A packaged SKERNEL wrote nothing to STDERR for --version.
  • That binary, with an empty environment and no Composer available, packaged a real project with its own Composer. The resulting binary served /index and /user, answered /missing with a 404, and exited with status 0 on SIGTERM.

Merge this before #11, which starts from this branch.

🤖 Generated with Claude Code

wheakerd and others added 2 commits November 4, 2026 01:42
Every command of a packaged SKERNEL opened with a warning that the
annotation scan had skipped classes, such as optional Symfony bundles
whose dependencies are not installed. Nothing in it is something a
SKERNEL user can act on.

StderrLogger now drops records whose event is an annotation scan's, and
writes the rest as before. A project that SKERNEL builds still reports
its own scan through its own logger.

A test requires an empty STDERR from --version, and a real packaged
SKERNEL wrote nothing to STDERR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
package looked only for a composer binary in PATH, while new also tries
the user's usual locations and falls back to SKERNEL's own Composer. Now
that both need Composer the same way, package asks ComposerLocator too,
so a machine without Composer can package a project. --composer and the
package.composer setting still choose a binary, and are used unchecked.

The README and the schema describe the new default, and Composer is no
longer listed as a requirement. The README also stops mentioning scan
summaries on STDERR, which the previous commit removed.

A real package with an empty environment and no Composer used SKERNEL's
own, and the resulting binary served requests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wheakerd
wheakerd merged commit 079ea54 into main Nov 4, 2026
@wheakerd
wheakerd deleted the package-composer-lookup branch November 5, 2026 01:46
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.

1 participant