Skip to content

21: Packaging and CI hygiene for a 1.0.0 tag - #35

Open
nikolaystrikhar wants to merge 4 commits into
20-plugin-folderfrom
21-packaging-hygiene
Open

21: Packaging and CI hygiene for a 1.0.0 tag#35
nikolaystrikhar wants to merge 4 commits into
20-plugin-folderfrom
21-packaging-hygiene

Conversation

@nikolaystrikhar

Copy link
Copy Markdown
Contributor

What: .gitignore/.gitattributes cover the agent directories, composer.json gains keywords/support and pins the analysis tools to a minor, composer validate moves out of the test matrix into the PHPStan workflow as --strict, and that workflow grows a cspell step.

Usage:

composer validate --strict --no-check-lock
npx cspell@8 lint --no-progress .

Why this way:

A gate that can go red without a commit is not a gate. composer.lock is deliberately uncommitted and static analysis resolves dependency-versions: highest, so phpstan/phpstan: "^1.10" could pull a minor with new level 9 rules onto an untouched branch. ~1.12.0 makes the bump deliberate; tightening the constraint is smaller than committing a lock file the workflow explicitly wants to ignore.

cspell.json was decorative. It was checked in and both workflows carried cspell:ignore directives, so a reader would assume something read it. Nothing did. Curating the forty words the tree already uses costs less than the false impression.

Validation belongs where it does not repeat. composer validate does not vary by PHP or WordPress version, so four lenient runs became one strict one.

.claude/ and .superpowers/ stayed out of the tree only because this machine's
global excludes happen to cover them. On a fresh checkout they are untracked
and one git add away from shipping, with no export-ignore behind them.
composer.lock is deliberately uncommitted and static analysis resolves
dependency-versions: highest, so a phpstan 1.x minor that adds a level 9 rule
turns the gate red on a branch nobody touched. ~1.12.0 makes that a deliberate
bump instead of a surprise. keywords and support are what Packagist renders.
composer validate does not vary by PHP or WordPress version, so running it on
every leg of a 2x2 matrix bought nothing and skipped --strict, which is the
half that promotes what a consumer reads on Packagist to a failure.

Also records why the 8.5 leg has a test harness at all: wp-browser 3.8.1
declares php <8.0 and installs only because config.platform pins resolution to
7.4. Bypassed rather than satisfied, deliberately, and green today.
The file was checked in and both workflows carried cspell:ignore directives, so
a reader would assume a gate existed. None did. Curating the 40 words the tree
already uses costs less than the false impression, and this repository argues
about prose often enough to want the check.
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