Skip to content

chore: onboard webware-validator from the Webware skeleton - #2

Merged
tyrsson merged 1 commit into
1.0.xfrom
chore/onboard-webware-validator
Oct 2, 2026
Merged

tyrsson merged 1 commit into
1.0.xfrom
chore/onboard-webware-validator

Conversation

@tyrsson

@tyrsson tyrsson commented Oct 2, 2026

Copy link
Copy Markdown
Member

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • An issue has been created for this pull request.
  • I have added tests for my changes.
  • All new and existing tests passed.
  • Documentation has been updated accordingly.
  • This pull request targets the correct branch.

Description

Onboards webinertia/webware-validator (T0 of webware-usermanager/docs/agent-plan-admin-create-user.md), which was the unrenamed webware/skeleton.

  • composer.json — name webware/webware-validator, new description and keywords, extra.laminas.config-provider → Webware\Validator\ConfigProvider, both PSR-4 roots (Webware\Validator\ → src/, WebwareTest\Validator\ → test/unit/, WebwareTestIntegration\Validator\ → test/integration/).
  • src/, test/ — namespaces, use statements and file headers.
  • .github/copilot-instructions.md — title line.
  • README.md — title, description and the real (un-fenced) badge block; the skeleton's "Using this template" checklist is dropped, as it documents the template rather than this package.
  • composer.json / composer.lock — webware/webware-tools ^1.0.0-beta.3 → ^1.0.0-beta.8.
  • test/unit/ConfigProviderTest.php — one added test that calls ConfigProvider::getDependencies() directly.

Motivation and Context

webware-validator must exist as a real package before PasswordRequirement (T1) can be added to it.

The test is not cosmetic: Infection generates a PublicVisibility mutant on ConfigProvider::getDependencies() (public → protected) that the existing __invoke() test cannot kill, leaving Covered Code MSI at 75% against the 95 floor declared in webware-ci.json. Asserting the public accessor directly kills it.

How has this been tested?

All gates run on the WSL host with mago 1.51.0, the version pinned by webware-tools 1.0.0-beta.8:

Gate Exit Result
mago fmt --check 0 all files formatted
mago lint 0 no issues
mago analyze 0 no issues
mago guard 0 no issues
composer test 0 2 tests, 2 assertions
composer test-integration 0 1 test, 1 assertion
composer mutation-test 0 100% mutation code coverage, 100% covered MSI (4/4 killed)

git grep -i skeleton returns nothing outside composer.lock.

Screenshots (if appropriate):

n/a

- rename the package to webware/webware-validator (composer name,
  description, keywords, extra.laminas.config-provider)
- move both PSR-4 roots to Webware\Validator, WebwareTest\Validator and
  WebwareTestIntegration\Validator, with namespaces and file headers
- update the copilot-instructions title and rebuild the README header
  with the real badges
- require webware/webware-tools ^1.0.0-beta.8
- add a direct getDependencies() assertion so the public accessor is not
  an escaped PublicVisibility mutant (MSI 95 floor in webware-ci.json)

Signed-off-by: Joey Smith <jsmith@webinertia.net>
@codecov

codecov Bot commented Oct 2, 2026

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered ☂️

@tyrsson
tyrsson merged commit c24addf into 1.0.x Oct 2, 2026
@tyrsson
tyrsson deleted the chore/onboard-webware-validator branch October 2, 2026 22:40
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