|
AWK Minifier
Conservative AWK source minification
|
Accepted
ADR-025 supersedes this ADR only for shared coding-standards acquisition and lifecycle. This ADR remains governing for bashdeps-managed executable repository tools and their explicit network and offline-verification boundaries.
The project needs reproducible repository tooling such as awk-doxygen, adrctl, and a previously released AWK Minifier. It also consumes shared coding and documentation standards maintained in wesley-dean/coding_standards.
Bootstrap demonstrates the desired executable dependency lifecycle: Make directly bootstraps only bashdeps, validates its committed digest before execution, and uses bashdeps manifests for every other repository-managed executable dependency. Network convergence and offline verification are deliberately separate operations.
ADR-020 originally extended that dependency model to shared standards through a second manifest and dedicated Make targets. ADR-025 later supersedes that portion of this decision. Shared standards are now ordinary committed repository content beneath doc/standards/ and do not participate in the dependency manager.
The Makefile SHALL follow the Bootstrap dependency pattern for executable repository tools.
Make directly owns only the bootstrap of vendor/bashdeps.bash. The bootstrap recipe SHALL validate the committed SHA-256 digest, reuse a valid cached copy, download to a temporary file when repair is necessary, validate the candidate, and move it atomically into place. verify-bashdeps SHALL be offline and non-repairing.
Repository-managed executable tools SHALL be declared in dependencies.txt. make deps MAY access the network and SHALL use bashdeps sync to converge those dependencies. make deps-check SHALL use bashdeps verify, SHALL NOT repair state, and SHALL not intentionally access the network.
Expected tool dependencies include:
awk-doxygen for AWK source reference filtering;adrctl for generated ADR navigation; andA tool SHALL NOT remain in the manifest merely because template-bash previously used it. In particular, Bash-Minifier and bash-doxygen are removed unless a current maintained source path actually requires them.
The standards-management requirements originally contained in this ADR are historical and superseded by ADR-025.
This ADR originally required dependencies-standards.txt, make standards, and make standards-check to synchronize individually pinned files beneath doc/standards/. Those mechanisms are removed.
ADR-025 now requires the complete shared standards snapshot to be committed as ordinary repository content beneath doc/standards/. AWK Minifier contains no dedicated standards-fetching mechanism. Imported shared standards are not edited locally; changes belong in wesley-dean/coding_standards and are adopted through an intentional repository update.
Ordinary build, test, and docs targets SHALL NOT invoke standards acquisition or silently refresh normative documentation.
make deps.deps-check is offline and non-repairing.make build on an unprepared checkout does not promise to acquire missing executable tools.Rejected because it duplicates acquisition, checksum, destination, and verification logic already centralized in bashdeps.
Rejected because standards are shared governance documents rather than executable repository tools. ADR-025 supersedes the earlier separate-manifest design with a committed snapshot that is maintained through ordinary repository changes.
Rejected by ADR-025. A consumer-side updater adds configuration, network logic, credentials or CI authority, and archive or checksum handling to perform an operation an authorized maintainer or coding agent can already propose directly as a reviewed Git change.
Rejected because local edits would create ambiguous authority and drift from the canonical coding_standards repository. The committed doc/standards/ files are snapshots, not an independent fork.
Rejected because build should remain an offline consumer of prepared and committed state. The higher-level all target can explicitly compose executable dependency preparation without changing the meaning of build itself.
The Makefile retains the Bootstrap-style bashdeps bootstrap and manifest lifecycle for executable tools only. Shared standards travel with the repository checkout as committed documentation and require no Make target or dependency manifest.
This ADR refines ADR-003 by specifying the Make target and network semantics used by this product.
This ADR refines ADR-005 and ADR-015. Their dependency-boundary and attack-surface principles remain governing; this ADR replaces template-specific dependency choices with AWK Minifier's actual executable tools.
ADR-025 supersedes this ADR's standards-specific requirements.