mirror of
https://github.com/FOSSBilling/FOSSBilling.git
synced 2026-11-02 18:17:02 +09:00
* Lock module manifests to spec v1
Backfill all module manifests to the locked v1 format:
manifest_version/type/id/name/version/description/author/license/
homepage_url/icon_url/requires. Versions align to the release
version, stamped at build time in the release-tree stage alongside
Version::VERSION and verified by the release workflow.
Brand mirrors FOSSBilling/modules byte-identically; adds a
vendored manifest validator (tools/manifest) run in CI on every
module manifest, and aligns content.sql seed versions with the
manifest versions.
Module manifest v1 (summary):
- manifest_version: 1, type: module
- requires as composer/semver ranges (fossbilling, php, modules)
- SPDX license expressions
- author as {name, url}
* Drop redundant recast flagged by Rector
* Format manifest validator to repo style
* Address manifest PR review: normalize v1 author/project_url, harden validator
* Enforce v1 manifest requires constraints at install time
Check requires.fossbilling (skipped on preview builds where the
running version is a placeholder), requires.php, and
requires.modules (presence plus installed version) in
installModule() before any install hook runs. Manifests without a
requires object pass through unchanged. Promotes composer/semver
to a production dependency and adds activate() unit coverage for
satisfied, unmet, missing-dependency, and invalid-constraint cases.
* Use spellcheck-clean fixture names and wording
* Review validator feedback: placeholder message style, guard non-array requires.modules
* Update job name to 'Validate Manifests'
* Resolve review: missing constraint placeholder, name-only author link
* Review follow-ups: nameless author fallback, core dependency version test
* Use spellcheck-clean fixture name
* Use neutral author fallback for nameless v1 authors
* Point requires enforcement at ExtensionType after enum merge
* Sync legacy seeded module versions on update
* Guard version sync on partial schemas, bump seeded patch level
* Allow version-sync SQL in strict patcher test doubles
* Address review: strict requires, preview parsing, manifest versions, drift-path sync
* Remove duplicated requires tests
* Use spellcheck-clean wording in docblock
* Address review: strict requires, preview parsing, manifest versions, drift sync
* Reject unversioned dependencies at install time
* Spellcheck-clean fixture name
* Block deactivation of modules with installed dependents
* Strict prerelease validation; seeded-sync integration test
* Address review: strict requires, preview parsing, manifest-gated sync, semver inputs
* Review followups: spellcheck-clean fixtures, integration test mock scope
* Deslop: clarify deactivate guard scope, merge duplicate version checks
* Address review: strict requires, manifest-gated sync, semver inputs, deactivate guard
* Fail closed on undeclared or non-string dependency versions
* Skip seeded-version updates that would rewrite the same value
* Real-method hasDeclaredVersion tests; honest stub comment
* Spellcheck-clean fixture name