01: Repo bootstrap - #1
Merged
Merged
Conversation
- php-stubs/wordpress-stubs ^6.4 floated to 6.9, so PHPStan would accept APIs newer than the WordPress 6.4 floor the README promises. Pinned to ~6.4.0 (resolves v6.4.7); the stubs are the only enforcement point available, since WordPress is not a Composer dependency. - phpstan/phpstan declared explicitly: test:analysis invokes the binary, which previously arrived only transitively via szepeviktor. - Dropped the phpstan/extension-installer allow-plugins entry. The installer is not required and nothing else in the tree is a composer-plugin, so the entry was dead config that implied extension auto-registration was wired. phpstan.neon.dist includes extension.neon manually, as the plan specifies. - Added a Tests\Unit\ => tests/unit mapping. The Tests\ => tests/ root implies tests/Unit, which only resolves on case-insensitive filesystems. - README license grant, so GPL-2.0-or-later is backed by an actual or-later statement rather than the bare GPLv2 text. - .gitattributes eol=lf and cspell case-duplicate cleanup.
d4mation
reviewed
Jul 31, 2026
The manifest carried eric_defore@vendor.stellarwp.com, which is not a real address -- the vendor. subdomain is the mailbox the authoring tool was configured with. Switch to the shared dev@stellarwp.com used by db, schema, assets, arrays, superglobals, shepherd and pup, so the published author does not go stale when someone changes teams.
d4mation
reviewed
Jul 31, 2026
Packagist protects a vendor prefix once anyone publishes under it, and the nexcess vendor is already held by nexcess/magento-turpentine under a maintainer account outside our control. The stellarwp vendor is already ours across 38 packages, so this ships without chasing third-party access. Packagist does not require the vendor to match the GitHub org, so either name was legal; ownership is what decided it. The PHP namespace stays Nexcess\PluginAbsorber\ -- Composer does not require the vendor name and the namespace to match.
d4mation
approved these changes
Jul 31, 2026
nikolaystrikhar
added a commit
that referenced
this pull request
Aug 11, 2026
README keeps the docs-index structure from 08-registrar; this branch's notices documentation moves to docs/notices.md rather than growing the README back. In the plan, the Task 11 teardown takes one line from each side: all_admin_notices is this branch's deliberate hook change, and Loader_State::reset() is 08-registrar's fix for the no-test-seams rule. Tasks 1-6 shipped in PRs #1-#6, so their plan sections are removed and the rule for doing so is recorded in CLAUDE.md. CLAUDE.md's collaborator table, boot lifecycle and Keys section are corrected to match the split Notices\ classes and the option-backed queue.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What: composer manifest, GPL-2.0 license, dotfiles, cspell dictionary, README skeleton.
Usage:
Why this way:
nexcess/plugin-absorberoversub-plugin-loader— Packagist returns 21 hits forplugin-loaderand the top five are WordPress mu-plugin autoloaders, so the term is taken and misleading;plugin-absorberreturns zero. Dropping-loaderalso kills thePluginAbsorber\Loaderstutter.stellarwp/container-contractis the only production dependency, matching uplink.Verify:
composer validate --no-check-lock. No tests — nothing here has behavior. The test harness lands in the next PR and CI goes green in the one after.