Skip to main content

Module scope

Module scope 

Source
Expand description

Out-of-scope detector: decides, BEFORE touching the disk, whether vivacity can install this lock natively or must delegate to composer install (default fallback) / fail explicitly (when Composer is not available).

Principle (plan r1/F3-F5): never a silently divergent vendor/. An unknown plugin, or one that changes the layout, is out of scope. Plugins proven harmless at boot (fixture qualification) are installed like ordinary libraries, with a warning.

Structs§

ScopeReport

Enums§

ScopeIssue

Constants§

BENIGN_PLUGINS
Plugins proven to write nothing at install time under a Composer whose plugins are active (the corpus baseline, docs/corpus/): installed as libraries, reported with a note. A plugin that writes a file is either emulated (EMULATED_PLUGINS) or unknown — never listed here. Removed on the corpus’s evidence (2026-09-16): pestphp/pest-plugin (vendor/pest-plugins.json), phpstan/extension-installer and rector/extension-installer (GeneratedConfig.php), dealerdirect/phpcodesniffer-composer-installer (CodeSniffer.conf).
EMULATED_PLUGINS
Plugins emulated natively by vivacity (identical output, drift test). composer/installers (see layout) is, under conditions checked before any write. drupal/core-composer-scaffold is deliberately absent: its source is GPL-2.0-or-later and cannot be ported here (NOTICE.md).
LAYOUT_PLUGINS
Plugins known to change the install layout or the package contents: always out of scope.

Functions§

analyze
plugins_enabled = no --no-plugins: with the flag, Composer ignores every plugin, composer/installers included; everything goes into vendor/.
config_issues
The config keys of the manifest (or the global config) that vivacity does not honour: a preferred-install asking for source anywhere. (vendor-dir / bin-dir are resolved by dirs::Dirs; the forms it refuses come back as layout issues.)
plugin_issues
Blocking plugin issues alone (unknown or layout-changing plugins in the lock), for commands that do not install but would still let Composer run plugin listeners — dump-autoload and its PRE_AUTOLOAD_DUMP.