OpenProject v17.9.7-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/openproject:v17.9.7-CE-ubuntu24.04-r2 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/openproject:v17.9.7-CE-ubuntu24.04-r2 - Index digestsha256:557dd66d2490f4b0d92a07e26f128bd109cab94e764da7f0bc07e88992d3b8c3
- linux/amd64 digestsha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f
- Archive
ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now32680b910331e2ac71059fd895ac60a820bbf72ffa3caeb3686a90b67511f2e2
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-12T22:15:48Z by KitForge release/build_trail.py
- Sections9 sections, 8 fully recorded; 1 item not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductOpenProject (openproject) [MANIFEST.json]
- Release tagv17.9.7-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/openproject:v17.9.7-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:557dd66d2490f4b0d92a07e26f128bd109cab94e764da7f0bc07e88992d3b8c3 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f [ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz (bytes 1062363667) [MANIFEST.json]
- Archive sha256 at publish32680b910331e2ac71059fd895ac60a820bbf72ffa3caeb3686a90b67511f2e2 [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
- Upstream repositoryhttps://github.com/opf/openproject [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv17.9.7 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commita4fb463862e438577949ede592dad5158988f9ce [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashf9e5989d0374f04b99f45e4a0357fbc29382293a3235a27368529c70a6e4dd67 (files 23579) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:5d5408b63f5fe376b8963c7a53ab243a0ba5a96f7d2f3ac65eded1bbeb800cdb [ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1794448267 (utc 2026-11-12T01:51:07Z) [ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.rebuild.json, inputs.source_date_epoch]
- Base images
- ref ubuntu:24.04@sha256:2198e4c65076e9cb0b3d695219df667c0e3b0072da64ca3c2648aca17dcecaf5 · platform digest sha256:77eb101c607d6e3d4f5ad0c8a02c2136c689b98aba1f359e6502ba517e5c57ec
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit d6d7f1aa091cf0be154f9c62ac83dffb55f782cb · dirty yes · first drive 4464
- commit e801370d9f59d1c7c9c152835f7fc8cb6cdfe374 · dirty yes · first drive 4479
Why this release exists
Fully recorded- Chain1038 (created 2026-11-12T20:02:39Z · trigger customer_request · upstream version v17.9.7) [chains, chains #1038]
- Requestbuild request #709 (rebuild) (requested at 2026-11-12T01:51:08Z · requested by kitforge-agent · version v17.9.7) [build_requests, build_requests #709]
- Reasonrevision v17.9.7-CE-ubuntu24.04-r2: same upstream version rebuilt (retarget.py --rev-bump) [build_requests, build_requests #709 request_reason]
- Supersedesreadystack/openproject:v17.9.7-CE-ubuntu24.04-r1 (chain 959) [chains, chains #959]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 1038 release · ready_to_ship
Created 2026-11-12T20:02:39Z, upstream v17.9.7, build request 709 [chains, chains #1038]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 4464 | 2026-11-12T20:03:20Z | 82.9 | build host 1 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4464] |
| 4479 | 2026-11-12T22:02:19Z | — | build host 1 publish-held | not recorded [drive_runs, drive_runs #4479] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-12T20:03:30Z | 2026-11-12T20:03:31Z | 1 | 4
|
order_json 4f82e19df0dc… |
acquire |
2026-11-12T20:03:53Z | 2026-11-12T20:03:56Z | 1 | 12
|
source_tree c28123fad41b…license_file 8ceb4b9ee5ad…custody_inputs 5feb83ba16a2…source_tree_hash c4283cce06de…source_file_manifest ff634c2ff2df… |
plan |
2026-11-12T20:04:30Z | 2026-11-12T20:04:31Z | 1 | 10
|
recon_report 40983cc61894…input_pin_plan 765248351871…toolchain_lock 134eb85252f6… |
assemble_kit |
2026-11-12T20:32:32Z | 2026-11-12T20:32:33Z | 1 | 27
|
dockerfile 1081aefd5db6…build_recipe 6fa4cdd7cbef…system_pinning fabe19a297e1…build_offline_sh 6ab4f08a6ec7…generate_sbom_sh ce0f1e6f1e70…first_boot_health 1731753fd318…verify_offline_sh 3e8184ea230c…base_image_digests f6b682f401cc…dockerfile_offline 1081aefd5db6…first_build_digest 8b91a676b78d… |
remediate |
2026-11-12T20:33:00Z | 2026-11-12T20:33:01Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 3df1656ff921…security_report 6656a2d4a337… |
build_kit |
2026-11-12T20:55:36Z | 2026-11-12T20:55:37Z | 1 | 9
|
cosign_stamp e3b6ca8aa89d…locked_digest 887d0e57faa1…freeze_manifest 0c61ef1e23a8…offline_rebuild_transcript 4ce79e0dfdb9… |
verdict |
2026-11-12T20:58:36Z | 2026-11-12T20:58:36Z | 1 | 8
|
scout_verdict 822b7aba6eba… |
publish_image |
2026-11-12T20:59:57Z | 2026-11-12T20:59:58Z | 1 | 7
|
hub_readme 1b3eb27b7346…promotion_record 6777709c183e… |
boot_instance |
2026-11-12T21:02:02Z | 2026-11-12T21:02:05Z | 2 | 3
|
instance_handle 7677e4546b83… |
sbom |
2026-11-12T21:02:52Z | 2026-11-12T21:02:53Z | 1 | 5
|
sbom_md ecd5d3adcbec…sbom_json 8e88f593f335… |
schema_discovery |
2026-11-12T21:02:55Z | 2026-11-12T21:02:56Z | 1 | 7
|
schema_hash 5cbb51d66fd3…dependency_tree 7f488bcfa3bc…table_classification 498e5868e34b… |
admin_handbook |
2026-11-12T21:03:03Z | 2026-11-12T21:03:04Z | 1 | 7
|
api_map 5f1aeb6c0929…admin_handbook 540ce0db3a51… |
db_handbook |
2026-11-12T21:03:13Z | 2026-11-12T21:03:13Z | 1 | 8
|
db_handbook 12a55d8a07bc…seed_isolation 4336cb14e5d3… |
seed_data |
2026-11-12T21:03:18Z | 2026-11-12T21:03:19Z | 1 | 6
|
seed_data_sql 403d148cad26…seed_cases_json a714694a8358… |
seed_validate |
2026-11-12T21:03:21Z | 2026-11-12T21:03:22Z | 1 | 3
|
seed_data_contract 672e4b4ffec3… |
usecase_validate |
2026-11-12T21:03:39Z | 2026-11-12T21:03:40Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 9bb40cfad9ad…test_results 601d2e2d2350…usecase_contract 101af97eb7f7… |
finalize_docs |
2026-11-12T21:03:45Z | 2026-11-12T21:03:46Z | 1 | 9
|
defects_json 524bc1475aac…release_notes 124fad7f6296…api_integration_guide 56781c13695b… |
package_archive invalidated 2026-11-12T22:01:54Z |
2026-11-12T21:26:11Z | 2026-11-12T21:26:14Z | 1 | 37 (final gate PASS)
|
sale_tar 499cd5bea062…checksums 8bb8506ed5ce…verify_md d5875c9113b6…rebuild_md 95a05e81e5e2…manifest_txt 2c03f4d1427a…actions_jsonl 38c07ee290c1…provenance_md e18df011b252…assetchain_log_md e9eccaec0c0f…assetchain_log_json 3de0a33875f9… |
[stage_runs]
Rewinds
- 2026-11-12T22:01:54Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #34664]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-12T21:26:14Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 9461 | L-A183, L-A15 |
remediate | 2 | 0 | 0 | 1 | 0 | 9392 | L-A183, L-A15 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1526 | L-A59 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.37 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-12T21:29:08Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1838] | $0.37 | 3 rounds, $40.00 | 499cd5bea062… |
Defects
Fully recorded- Ledger entries1 [defects, defects where product_slug=openproject and this tag or chain]
- Disclosed in the archive1 [docs/defects/defects.json, entries]
1 ledger entry: by severity high 1; by status open 1.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-openproject-f2d78e74b8Ships a known default credential (admin) [defects, defects #273740] | high | open | build strategy record | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f · published digest sha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 619) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, thread_exit, trademark_shipped, unpack_files, upgrade_check, vex_shipped) [g8_result.json, result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-12T22:03:09Z · failing Docker Scout counts 157 packages with copyleft licences (CDDL, GPL, LGPL, MPL), 146 of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-12T22:02:29Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3839524811 · transparency-log entry
- log index 3839526078 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3840260440 · transparency-log entry · integrated 2026-11-12T22:13:29Z) [ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:557dd66d2490f4b0d92a07e26f128bd109cab94e764da7f0bc07e88992d3b8c3 · state attached · log index 3840263765 · transparency-log entry
- kind sbom · digest sha256:557dd66d2490f4b0d92a07e26f128bd109cab94e764da7f0bc07e88992d3b8c3 · state attached · log index 3840265147 · transparency-log entry
- kind vsa · digest sha256:557dd66d2490f4b0d92a07e26f128bd109cab94e764da7f0bc07e88992d3b8c3 · state attached · log index 3840266842 · transparency-log entry
- kind provenance · digest sha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f · state attached · log index 3840268319 · transparency-log entry
- kind sbom · digest sha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f · state attached · log index 3840269593 · transparency-log entry
- kind vsa · digest sha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f · state attached · log index 3840271077 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/openproject/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-12T21:29:16Z on build host 1 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:89511224408a345b94e1b4a8638b37ff2a77e8fafa99bfb1adbaa81e26857e7f [clean-room rebuild ledger, runs[806]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-12T20:59:58Z [stage_runs, stage_runs chain 1038 stage publish_image]
- Archive manifests written2026-11-12T22:08:33Z [PUBLISH_MANIFEST.json, published_at]
- Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)
Packages and CPU level
Fully recorded- x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 1254 · probed 2026-11-12T20:45:02Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-12T22:15:48Z generated: by KitForge release/build_trail.py · generator commit 9bf62fc46cb5a4c666ae0d83ee6d1056e96b052a
- 2026-11-12T22:18:29Z publication: promoted at 2026-11-12T22:16:36Z · promoted digest sha256:557dd66d2490f4b0d92a07e26f128bd109cab94e764da7f0bc07e88992d3b8c3 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 522 · checklist status complete · checklist at 2026-11-12T22:18:29Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
Records
25 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/openproject/v17.9.7-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/openproject/v17.9.7-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/openproject/v17.9.7-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-openproject-v17.9.7-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/openproject/v17.9.7-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/openproject/v17.9.7-CE-ubuntu24.04-r2/), as staged for publishing | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 709 |
chains | sadb, ReadyStack's engine database (not published) | 1038 |
defects | sadb, ReadyStack's engine database (not published) | openproject v17.9.7-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 1038 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 1038 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 1038 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 1038 |
release_images | sadb, ReadyStack's engine database (not published) | openproject v17.9.7-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 1038 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 1038 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
g8_result.json | the chain's workspace on the controller (not published) | — |