Fork tooling: a build check and a rename pass in the strip, a notice check in CI #21

Merged
jcoffey-dev merged 1 commits from fork/strip-build-check-and-notices into main 2026-09-23 04:10:32 +00:00
Owner

strip.py compiles the stripped tree, so a dual-licensed file that only
serves an Enterprise feature fails the import instead of the merge, as
v0.16.23's tests/src/directory/issuer.rs does. Upstream's tests of the
features the fork rebuilt are expected not to compile there and are listed
in build-check-known.txt; an error anywhere else fails the run. Checked
against both imports: v0.16.22 passes with its 16 expected errors, v0.16.23
fails on issuer.rs alone. Imports the strip leaves unused are reported.

It also renames the upstream name where clients, users or operators meet
it as an identifier, from tools/fork/renames.py: wire-protocol names, the
web interface's client id, store keys, configuration defaults and the
served schema. main is renamed with the same module, so a re-import
arrives purged and those lines don't conflict.

notice-check.py fails CI when an upstream file the fork changed, measured
against the upstream branch, lacks its AGPL 5(a) notice; --fix adds it.
It runs beside the name check in a renamed fork-checks job.

Also commits v0.16.23's strip report under docs/fork/strip-reports/, which
the import in #18 left out.

Summary

Related issues

Upstream files

Clean room

Testing

strip.py compiles the stripped tree, so a dual-licensed file that only serves an Enterprise feature fails the import instead of the merge, as v0.16.23's tests/src/directory/issuer.rs does. Upstream's tests of the features the fork rebuilt are expected not to compile there and are listed in build-check-known.txt; an error anywhere else fails the run. Checked against both imports: v0.16.22 passes with its 16 expected errors, v0.16.23 fails on issuer.rs alone. Imports the strip leaves unused are reported. It also renames the upstream name where clients, users or operators meet it as an identifier, from tools/fork/renames.py: wire-protocol names, the web interface's client id, store keys, configuration defaults and the served schema. main is renamed with the same module, so a re-import arrives purged and those lines don't conflict. notice-check.py fails CI when an upstream file the fork changed, measured against the upstream branch, lacks its AGPL 5(a) notice; --fix adds it. It runs beside the name check in a renamed fork-checks job. Also commits v0.16.23's strip report under docs/fork/strip-reports/, which the import in #18 left out. <!-- Thanks for contributing to INBUXA. CONTRIBUTING.md has the full guide; this is the short version. Delete any section that does not apply. --> ## Summary <!-- What changes, and why. The why is the part that is hard to recover later. --> ## Related issues <!-- e.g. Closes #123. Leave blank if there are none. --> ## Upstream files <!-- Does this touch files that came from Stalwart? If so: is the change as small as it can be, and is it marked with an `inbuxa:` comment saying which requirement it serves? Every edit to an upstream file is a conflict waiting at the next import, so it should be worth one. --> ## Clean room <!-- Only for changes to the rebuilt features in `crates/features`, or to the hooks that serve them. Confirm one: - [ ] I have not read Stalwart's Enterprise-licensed source, and worked from the specification in `docs/spec/features/`. - [ ] I have read it. (Say so -- the change will be reviewed with that in mind, or declined for the parts it touches. The project's claim of independent creation is a record, and the record has to be true.) --> ## Testing <!-- What you ran. `cargo test -p tests` covers what needs nothing but a store; say so if you ran any of the `#[ignore]`d suites from docs/spec/container-tests.md, and which. -->
jcoffey-dev added 1 commit 2026-09-23 02:58:11 +00:00
Fork tooling: a build check and a rename pass in the strip, a notice check in CI
ci / fork-checks (pull_request) Successful in 18s
ci / build (pull_request) Successful in 7m11s
4799d191a0
strip.py compiles the stripped tree, so a dual-licensed file that only
serves an Enterprise feature fails the import instead of the merge, as
v0.16.23's tests/src/directory/issuer.rs does. Upstream's tests of the
features the fork rebuilt are expected not to compile there and are listed
in build-check-known.txt; an error anywhere else fails the run. Checked
against both imports: v0.16.22 passes with its 16 expected errors, v0.16.23
fails on issuer.rs alone. Imports the strip leaves unused are reported.

It also renames the upstream name where clients, users or operators meet
it as an identifier, from tools/fork/renames.py: wire-protocol names, the
web interface's client id, store keys, configuration defaults and the
served schema. main is renamed with the same module, so a re-import
arrives purged and those lines don't conflict.

notice-check.py fails CI when an upstream file the fork changed, measured
against the upstream branch, lacks its AGPL 5(a) notice; --fix adds it.
It runs beside the name check in a renamed fork-checks job.

Also commits v0.16.23's strip report under docs/fork/strip-reports/, which
the import in #18 left out.
jcoffey-dev merged commit 79f54add2f into main 2026-09-23 04:10:32 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: inbuxa/inbuxa-server#21