Prepares (does not cut) the first published release of Record Files, so GG Forge can replace its development pin com.kingsrook.qbits:qbit-record-files:0.1.0-forge.162af9a7b8cd-archive1 with an artifact from the Gitea Maven registry.
Version
0.1.0-RC.1, published by the shared KofTwentyTwo/ci-workflows Maven workflow (PR 2) from a release/0.1 branch; pom.xml keeps <revision>0.1.0-SNAPSHOT</revision> on develop because the workflow computes the RC number and commits the bump back. Nothing is tagged, released or published by this PR.
What changed
ArchiveSecurity.digest: tolerate host customizers that run only on insert/update/delete (MUTATION_ROLES); query/get/personalization customizers still refuse the capture. This is the source form of the delta that Forge carried as the -archive1 suffix: the only difference between its 0.1.0-forge.162af9a7b8cd and -archive1 JARs is this class (recovered from the bytecode in C:\Users\james\.cache\gg-forge-authentik-qualification\m2; no source or patch for it existed in the Forge handoff). Covered by the new ArchiveTest.mutationCustomizersAreToleratedWhileVisibilityCustomizersRefuseCapture.
Test-only Forge patchesrecord-files-postgres-diagnostics.patch and record-files-linux-fixture.patch applied verbatim (FixtureEndpoint, FixtureEndpointTest, fixture health reporting); the resulting files are byte-identical to Forge's record-files-linux qualification tree. These let the PostgreSQL suite run on the shared container-build runners (TESTCONTAINERS_HOST_OVERRIDE).
CHANGELOG.md (new), docs/RELEASE-STATUS.md (publication path, step-by-step first RC, relationship to the Forge pin), README status banner and Maven-publication section, docs/KNOWN-ISSUES.md.
.gitignore no longer ignores .gitea/, so PR 2's caller is tracked normally; docs/release/qrun-release.reference.yaml marked superseded.
./mvnw verify against develop's qbit-collaboration:0.1.0-SNAPSHOT fails to compile: the local/public Collaboration lacks the attachment lifecycle SPI. Built instead against Collaboration commit 53bd8f00 (the commit PR 1 was verified against; Collaboration PR 59) installed locally as 0.1.0-rf53bd8f00-SNAPSHOT: ./mvnw -Dqbit-collaboration.version=0.1.0-rf53bd8f00-SNAPSHOT verify -> 284 tests, 0 failures, 0 errors, 58 skipped (the opt-in PostgreSQL/MySQL suites), Checkstyle 0 violations, BUILD SUCCESS.
Opt-in database suites (-DpostgresRecordFilesTests=true -DmysqlRecordFilesTests=true): 64 tests, 1 failure, 1 error. MySQL 15/15, PostgresTrackedDownload 3/3, PostgresRetainedUploadRecovery 5/5 and FixtureEndpoint 5/5 pass; POSTGRES_FIXTURE_HEALTH reports running=true oom=false restarting=false endpointMatches=true after all 22 intake cases. The two failures pre-date this branch: PostgresIntakeAndRetentionTest.unmanagedTablesKeepOrdinaryAttachmentBehavior dies in Collaboration's AttachmentsService.storeUpload with NoSuchMethodError QBackendTransaction.supportsRollbackCallbacks() (the documented QQQ core after-rollback-callback gap: public 4.1.0-RC.21 lacks it, Forge builds against 4.1.0-forge.33464d37e815-echo1), and PostgresRecordFilesTest.refusesLabelsAndPhysicalDrift fails its isDurableBackend re-check after ALTER COLUMN at TYPE TIMESTAMPTZ (line 258), a physical-drift probe untouched by this change.
Merge order and dependencies
Collaboration PR 59 merged and published as an RC (registry must hold a Collaboration with the SPI).
PR 2 (shared CI caller), then this PR, into develop.
PR 1 (quarantineCapturedFiles) into develop; no overlap with this branch.
Pin qbit-collaboration.version to the published Collaboration RC on develop, then git push origin develop:release/0.1 -> 0.1.0-RC.1.
See docs/RELEASE-STATUS.md for the full steps and the drop-in analysis.
Prepares (does not cut) the first published release of Record Files, so GG Forge can replace its development pin `com.kingsrook.qbits:qbit-record-files:0.1.0-forge.162af9a7b8cd-archive1` with an artifact from the Gitea Maven registry.
## Version
`0.1.0-RC.1`, published by the shared `KofTwentyTwo/ci-workflows` Maven workflow (PR 2) from a `release/0.1` branch; `pom.xml` keeps `<revision>0.1.0-SNAPSHOT</revision>` on `develop` because the workflow computes the RC number and commits the bump back. Nothing is tagged, released or published by this PR.
## What changed
- **`ArchiveSecurity.digest`**: tolerate host customizers that run only on insert/update/delete (`MUTATION_ROLES`); query/get/personalization customizers still refuse the capture. This is the source form of the delta that Forge carried as the `-archive1` suffix: the only difference between its `0.1.0-forge.162af9a7b8cd` and `-archive1` JARs is this class (recovered from the bytecode in `C:\Users\james\.cache\gg-forge-authentik-qualification\m2`; no source or patch for it existed in the Forge handoff). Covered by the new `ArchiveTest.mutationCustomizersAreToleratedWhileVisibilityCustomizersRefuseCapture`.
- **Test-only Forge patches** `record-files-postgres-diagnostics.patch` and `record-files-linux-fixture.patch` applied verbatim (`FixtureEndpoint`, `FixtureEndpointTest`, fixture health reporting); the resulting files are byte-identical to Forge's `record-files-linux` qualification tree. These let the PostgreSQL suite run on the shared `container-build` runners (`TESTCONTAINERS_HOST_OVERRIDE`).
- `CHANGELOG.md` (new), `docs/RELEASE-STATUS.md` (publication path, step-by-step first RC, relationship to the Forge pin), README status banner and Maven-publication section, `docs/KNOWN-ISSUES.md`.
- `.gitignore` no longer ignores `.gitea/`, so PR 2's caller is tracked normally; `docs/release/qrun-release.reference.yaml` marked superseded.
## Verification (Java 21, Maven wrapper, Docker 29.9.2)
- `./mvnw verify` against `develop`'s `qbit-collaboration:0.1.0-SNAPSHOT` fails to compile: the local/public Collaboration lacks the attachment lifecycle SPI. Built instead against Collaboration commit `53bd8f00` (the commit PR 1 was verified against; Collaboration PR 59) installed locally as `0.1.0-rf53bd8f00-SNAPSHOT`:
`./mvnw -Dqbit-collaboration.version=0.1.0-rf53bd8f00-SNAPSHOT verify` -> **284 tests, 0 failures, 0 errors, 58 skipped** (the opt-in PostgreSQL/MySQL suites), Checkstyle 0 violations, BUILD SUCCESS.
- Opt-in database suites (`-DpostgresRecordFilesTests=true -DmysqlRecordFilesTests=true`): 64 tests, 1 failure, 1 error. MySQL 15/15, PostgresTrackedDownload 3/3, PostgresRetainedUploadRecovery 5/5 and FixtureEndpoint 5/5 pass; `POSTGRES_FIXTURE_HEALTH` reports `running=true oom=false restarting=false endpointMatches=true` after all 22 intake cases. The two failures pre-date this branch: `PostgresIntakeAndRetentionTest.unmanagedTablesKeepOrdinaryAttachmentBehavior` dies in Collaboration's `AttachmentsService.storeUpload` with `NoSuchMethodError QBackendTransaction.supportsRollbackCallbacks()` (the documented QQQ core after-rollback-callback gap: public 4.1.0-RC.21 lacks it, Forge builds against `4.1.0-forge.33464d37e815-echo1`), and `PostgresRecordFilesTest.refusesLabelsAndPhysicalDrift` fails its `isDurableBackend` re-check after `ALTER COLUMN at TYPE TIMESTAMPTZ` (line 258), a physical-drift probe untouched by this change.
## Merge order and dependencies
1. Collaboration PR 59 merged and published as an RC (registry must hold a Collaboration with the SPI).
2. PR 2 (shared CI caller), then this PR, into `develop`.
3. PR 1 (`quarantineCapturedFiles`) into `develop`; no overlap with this branch.
4. Pin `qbit-collaboration.version` to the published Collaboration RC on `develop`, then `git push origin develop:release/0.1` -> `0.1.0-RC.1`.
See `docs/RELEASE-STATUS.md` for the full steps and the drop-in analysis.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Prepare, without cutting, the first artifact to be published from this
repository through the shared ci-workflows Maven workflow (push of
develop to release/0.1 publishes 0.1.0-RC.N to the Gitea Maven registry).
Add CHANGELOG.md, rewrite docs/RELEASE-STATUS.md with the publication
path, the first-RC steps, the dependency cohort and the relationship to
the GG Forge development pin 0.1.0-forge.162af9a7b8cd-archive1, and
update the README banner, Maven-publication section and known issues.
Carry the two Forge test-only PostgreSQL fixture patches verbatim
(FixtureEndpoint resolves the reachable container endpoint instead of
127.0.0.1; fixture health is reported after each intake case).
Recover the "-archive1" delta: the only class that differs between
Forge's 162af9a7b8 and 162af9a7b8cd-archive1 JARs is
ArchiveSecurity, whose digest guard now tolerates insert/update/delete
customizers and still refuses query/get/personalization customizers.
Express that in source with a focused ArchiveTest case.
Stop ignoring .gitea/ so the shared CI caller is tracked normally and
mark the retired platform-ci caller reference as superseded.
Verification: ./mvnw verify against Collaboration 53bd8f00 installed as
0.1.0-rf53bd8f00-SNAPSHOT: 284 tests, 0 failures, 0 errors, 58 skipped,
Checkstyle clean. Opt-in PostgreSQL/MySQL suites: 64 run, two
pre-existing failures (public QQQ 4.1.0-RC.21 lacks
QBackendTransaction.supportsRollbackCallbacks; the physical-drift probe
in PostgresRecordFilesTest), neither introduced here.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Prepares (does not cut) the first published release of Record Files, so GG Forge can replace its development pin
com.kingsrook.qbits:qbit-record-files:0.1.0-forge.162af9a7b8cd-archive1with an artifact from the Gitea Maven registry.Version
0.1.0-RC.1, published by the sharedKofTwentyTwo/ci-workflowsMaven workflow (PR 2) from arelease/0.1branch;pom.xmlkeeps<revision>0.1.0-SNAPSHOT</revision>ondevelopbecause the workflow computes the RC number and commits the bump back. Nothing is tagged, released or published by this PR.What changed
ArchiveSecurity.digest: tolerate host customizers that run only on insert/update/delete (MUTATION_ROLES); query/get/personalization customizers still refuse the capture. This is the source form of the delta that Forge carried as the-archive1suffix: the only difference between its0.1.0-forge.162af9a7b8cdand-archive1JARs is this class (recovered from the bytecode inC:\Users\james\.cache\gg-forge-authentik-qualification\m2; no source or patch for it existed in the Forge handoff). Covered by the newArchiveTest.mutationCustomizersAreToleratedWhileVisibilityCustomizersRefuseCapture.record-files-postgres-diagnostics.patchandrecord-files-linux-fixture.patchapplied verbatim (FixtureEndpoint,FixtureEndpointTest, fixture health reporting); the resulting files are byte-identical to Forge'srecord-files-linuxqualification tree. These let the PostgreSQL suite run on the sharedcontainer-buildrunners (TESTCONTAINERS_HOST_OVERRIDE).CHANGELOG.md(new),docs/RELEASE-STATUS.md(publication path, step-by-step first RC, relationship to the Forge pin), README status banner and Maven-publication section,docs/KNOWN-ISSUES.md..gitignoreno longer ignores.gitea/, so PR 2's caller is tracked normally;docs/release/qrun-release.reference.yamlmarked superseded.Verification (Java 21, Maven wrapper, Docker 29.9.2)
./mvnw verifyagainstdevelop'sqbit-collaboration:0.1.0-SNAPSHOTfails to compile: the local/public Collaboration lacks the attachment lifecycle SPI. Built instead against Collaboration commit53bd8f00(the commit PR 1 was verified against; Collaboration PR 59) installed locally as0.1.0-rf53bd8f00-SNAPSHOT:./mvnw -Dqbit-collaboration.version=0.1.0-rf53bd8f00-SNAPSHOT verify-> 284 tests, 0 failures, 0 errors, 58 skipped (the opt-in PostgreSQL/MySQL suites), Checkstyle 0 violations, BUILD SUCCESS.-DpostgresRecordFilesTests=true -DmysqlRecordFilesTests=true): 64 tests, 1 failure, 1 error. MySQL 15/15, PostgresTrackedDownload 3/3, PostgresRetainedUploadRecovery 5/5 and FixtureEndpoint 5/5 pass;POSTGRES_FIXTURE_HEALTHreportsrunning=true oom=false restarting=false endpointMatches=trueafter all 22 intake cases. The two failures pre-date this branch:PostgresIntakeAndRetentionTest.unmanagedTablesKeepOrdinaryAttachmentBehaviordies in Collaboration'sAttachmentsService.storeUploadwithNoSuchMethodError QBackendTransaction.supportsRollbackCallbacks()(the documented QQQ core after-rollback-callback gap: public 4.1.0-RC.21 lacks it, Forge builds against4.1.0-forge.33464d37e815-echo1), andPostgresRecordFilesTest.refusesLabelsAndPhysicalDriftfails itsisDurableBackendre-check afterALTER COLUMN at TYPE TIMESTAMPTZ(line 258), a physical-drift probe untouched by this change.Merge order and dependencies
develop.quarantineCapturedFiles) intodevelop; no overlap with this branch.qbit-collaboration.versionto the published Collaboration RC ondevelop, thengit push origin develop:release/0.1->0.1.0-RC.1.See
docs/RELEASE-STATUS.mdfor the full steps and the drop-in analysis.🤖 Generated with Claude Code