Repository navigation
Conversation
|
Great work, thank you. Slight misunderstanding about the relationship of this work to LilRAE. Env-packs carries no downstream dependency and is agnostic to any backend. Acceptance criteria are with respect to successful planning by the validator and runtime (upstream code from OpenRAE/rae). |
|
The fix for #414 requires a RAES change: OpenRAE/rae#1481. RAES cannot retain typed authority for configurable string parameters in runtime collections. Fixed |
Review on #433: #414 needs a RAES change (OpenRAE/rae#1481), and fixed allowed_values restrict kit configuration. The four kit releases keep only the #413 change, an open compute substrate. - module.sdl.yaml no longer bounds api_base_path, database_name, route_prefix or mail_domain with allowed_values, and the "Author parameter" line in assets/integration.md no longer lists them. - Without the bound no breaking change remains, so the releases are 1.1.0 instead of 2.0.0, matching the open-substrate releases of the other Linux kits. Each is cut from 1.0.0: version, released_at and posture: open are the only authored differences, and README.md, assets/integration.md, assets/seed.yaml and tests/composition.yaml are byte-identical to 1.0.0. - associated-artifacts.json is derived from the 1.0.0 manifest: manifest_version, created_at and source, checksums and sizes from the new bytes, the canonical SDL parent digest and the set digest. load_kit_release() verifies each release. - tests/test_kit_runtime_parameters.py becomes tests/test_kit_compute_substrate.py. It checks that every compute node of the four newest releases declares an open compute substrate, and that planning them where no virtual machine is offered reports no compute-substrate diagnostic. The only diagnostic left is realization.authority-bound-unavailable, which OpenRAE/rae#1481 tracks, so the test asserts that exact set instead of a valid plan. Refs #413
Every published kit declared an exact virtual-machine compute substrate, carried over from the mechanical type: vm conversion. A backend that realizes nodes as containers rejects all of them with realization.compute-substrate-not-admitted. Release 1.1.0 of the 39 Linux kits not covered by #433 declares every compute-substrate constraint as posture: open with no domain, so the backend chooses the substrate. The other edits are the version, released_at and the regenerated associated-artifact manifest; the 1.0.0 releases stay untouched. The three Windows kits keep the exact virtual-machine substrate and get no new release. docs/public/kits.md gains a section on when a kit requires a virtual machine. The published-kit test and the manual author walkthrough count 89 releases. Closes #413
…chine The compute-substrate test from #433 covered four kits. It now covers the newest release of every kit. Every compute node of each Linux kit must declare an open compute-substrate constraint with no domain. Planning each Linux kit with both declared parameter sets, against the manifest whose realization envelope offers in-process emulation and not a virtual machine, must report no compute-substrate diagnostic. Every Linux kit plans valid there except the four runtime-collection kits from #433, whose only diagnostic is realization.authority-bound-unavailable (OpenRAE/rae#1481). Every compute node of the Windows kits keeps the exact virtual-machine constraint. docs/public/kits.md now says that only the Windows kits need a virtual machine, and that the examples on the page pin 1.0.0 releases, which still require one. Refs #413
|
Done. #433 no longer carries the #414 change. The Under
|
application-api-service, postgresql-database, reverse-proxy-api-gateway and smtp-imap-mail-service each get a 1.1.0 release whose compute-substrate constraint is posture: open with no domain, so the backend chooses the substrate (#413). Their 1.0.0 releases, which declare an exact virtual-machine substrate, stay published unchanged. - Each 1.1.0 release is cut from 1.0.0: version, released_at and posture: open are the only authored differences, and README.md, assets/integration.md, assets/seed.yaml and tests/composition.yaml are byte-identical to 1.0.0. - associated-artifacts.json is derived from the 1.0.0 manifest: manifest_version, created_at and source, checksums and sizes from the new bytes, the canonical SDL parent digest and the set digest. load_kit_release() verifies each release. - tests/test_kit_compute_substrate.py checks that every compute node of the four newest releases declares an open compute substrate, and that planning them with both declared parameter sets, where no virtual machine is offered, reports no compute-substrate diagnostic. RAES 6.0.1 still reports realization.authority-bound-unavailable for each kit's runtime-collection parameter (OpenRAE/rae#1481), so the test asserts that the plan is not valid and that this is its only diagnostic. - tests/test_published_kits.py counts releases instead of kits (EXPECTED_RELEASE_COUNT = 50 for 46 kits) and composes each module at its own version. The manual author walkthrough expects 50 entries. Refs #413
0959271 to
9db0f22
Compare
Every published kit declared an exact virtual-machine compute substrate, carried over from the mechanical type: vm conversion. RAES planning therefore rejects all of them with realization.compute-substrate-not-admitted when the backend's realization envelope offers no virtual machine. Release 1.1.0 of the 39 Linux kits not covered by #433 declares every compute-substrate constraint as posture: open with no domain, so the backend chooses the substrate. The other edits are the version, released_at and the regenerated associated-artifact manifest; the 1.0.0 releases stay untouched. The three Windows kits keep the exact virtual-machine substrate and get no new release. docs/public/kits.md gains a section on when a kit requires a virtual machine. The published-kit test and the manual author walkthrough count 89 releases. Closes #413
…chine The compute-substrate test from #433 covered four kits. It now covers the newest release of every kit. Every compute node of each Linux kit must declare an open compute-substrate constraint with no domain. Planning each Linux kit with both declared parameter sets, against the manifest whose realization envelope offers in-process emulation and not a virtual machine, must report no compute-substrate diagnostic. Every Linux kit plans valid there except #433's four kits: their plans are not valid, and their only diagnostic is realization.authority-bound-unavailable (OpenRAE/rae#1481). Every compute node of the Windows kits keeps the exact virtual-machine constraint. docs/public/kits.md now says that only the Windows kits need a virtual machine, and that the examples on the page pin 1.0.0 releases. Refs #413
Summary
This PR publishes 1.1.0 of application-api-service, postgresql-database, reverse-proxy-api-gateway and smtp-imap-mail-service, cut from 1.0.0. The only change is an open compute substrate (#413). Each
compute-substrateconstraint goes fromposture: exactwithdomain: {kind: exact, value: virtual-machine}toposture: openwith no domain, so the backend chooses the substrate. #434 makes the same change for the other 39 Linux kits.Acceptance is judged by the RAES 6.0.1 validator and planner. Each 1.1.0 release composes with both of its parameter sets, and planning it no longer reports a compute-substrate diagnostic (see "Planning results").
The releases are 1.1.0, not 2.0.0, because removing the
allowed_valuesbounds removed the only breaking change, and #434 ships the same substrate change as 1.1.0.Changes
kits/infrastructure.<kit>/1.1.0/**for the four kits.diff -r kits/<kit>/1.0.0 kits/<kit>/1.1.0shows only these edits:module.sdl.yaml:versionandmodule.versionare 1.1.0, andposture: openreplaces the exact virtual-machine block.kit.yaml:versionandreleased_at: '2026-10-09T00:00:00Z'.associated-artifacts.json: these fields change:manifest_version, each artifact'screated_atandsource, the checksums ofkit.yamlandmodule.sdl.yaml, the size ofmodule.sdl.yaml,parent_ref.ref_digestandset_digest. They are recomputed from the release bytes withcanonical_sdl_digestandassociated_artifact_set_digest, the functionsload_kit_release()verifies them with. Every release loads withload_kit_release().README.md,assets/integration.md,assets/seed.yamlandtests/composition.yamlare byte-identical to 1.0.0.tests/test_kit_compute_substrate.py(new), two tests on the newest release of each of the four kits:defaultandvariationparameter sets reports norealization.compute-substrate-*diagnostic. The tests' manifest is the RAES stub manifest with its in-process realization envelope, which offers no virtual machine. It also declares exact and constrained support, with an observation capability, for every RAES realization concern, the way RAES's own planner tests do. It claims no backend behavior. RAES 6.0.1 still reportsrealization.authority-bound-unavailablefor each kit's runtime-collection parameter (fix(planner): preserve configurable parameters in runtime collection authority rae#1481). The test therefore asserts that the plan is not valid and that this code is its only diagnostic.tests/test_published_kits.py:EXPECTED_KIT_COUNT = 46becomesEXPECTED_RELEASE_COUNT = 50(46 kits, 50 releases), and the composition test imports each module at its own version.tests_integration/kit_author_walkthrough.py: the manual harness's discovery check expects 50 entries.Commits: one, 9db0f22, whose message describes the change above. It replaces the earlier commits 1a55132, b024f7f and 0959271. The Changes list above is its diff against
dev.Planning results
Harness:
raes==6.0.1, the env-packs pin. Each kit is composed alone with both parameter sets from itstests/composition.yamland parsed withparse_sdl_file, then planned withcompile_scenario_runtime_modelandraes_processor.planner.plan. Both parameter sets give the same result for every release. All codes arerealization.*.create_stub_manifest()authority-bound-unavailable,compute-substrate-not-admittedauthority-bound-unavailable,compute-substrate-not-admitted,unsupported-constraint-requirementauthority-bound-unavailable,compute-substrate-envelope-required,unsupported-constraint-requirementauthority-bound-unavailableauthority-bound-unavailable,unsupported-constraint-requirementauthority-bound-unavailable,unsupported-constraint-requirementcreate_reference_backend_manifest(driver_mode="oci-container"), whose realization envelope offersoperating-system-container.authority-bound-unavailableremains on all three manifests. RAES 6.0.1 cannot retain typed authority for a configurable string parameter inside a runtime collection (fix(planner): preserve configurable parameters in runtime collection authority rae#1481).unsupported-constraint-requirementnames each kit's runtime concern:runtime-applications,runtime-database-servicesorruntime-mail-services. The stub and the OCI reference backend declare no constrained support for these concerns, and the tests' manifest does. This is a declared limit of those two manifests, not a kit defect.Related issues
Refs #413. This PR releases the open substrate for these four kits. #434 releases it for the other 39 Linux kits and documents when a kit requires a virtual machine, which completes #413.
#414 is blocked by OpenRAE/rae#1481, and this PR no longer addresses it. #435 tracks the mailbox addresses that ignore
mail_domain.Verification
python -m unittest discover -s tests: CI run 38077468329,testsjob at 9db0f22, reportsRan 951 tests in 1357.166sandOK. Locally (macOS, Python 3.12.13) only the kit modules were run:python -m unittest tests.test_kit_compute_substrate tests.test_published_kitsran 7 tests, OK.raes-pack-validate --repo .:ENVIRONMENT-PACK CONTENT CI: PASS.raes-pack-release check --all:PACK RELEASE GATE: PASS.raes-pack-validate --packs-root packs:ENVIRONMENT-PACK CONTENT CI: PASS.raes-pack-release check --packs-root packs:PACK RELEASE GATE: PASS.docs/public/change. The warning-strict build (python -m sphinx -W -b html docs/public <out>, sphinx 9.1.0 fromrequirements/docs.txt) andtools/check_docs_publication_boundary.pystill pass locally.Also run:
python -m compileall src tests: exit 0.kits/from unmodifieddev(9ce449d), where the newest release of each kit is 1.0.0, the new test fails 12 subtests. The open-substrate check fails for the four kits. The planning check fails for 8 cases (4 kits by 2 parameter sets), each withrealization.compute-substrate-not-admitted. Against the bounded 2.0.0 releases of the earlier head b024f7f, whose plans are valid, the planning check fails the same 8 cases atassertFalse(is_valid). It passes on this branch (9db0f22).raes-pack-kit list . --source-id openrae-env-packs --source-revision "$(git rev-parse HEAD)" --jsonlists 50 releases of 46 kits (46 at 1.0.0, 4 at 1.1.0).raes-pack-kit inspectsucceeds for each 1.1.0 release.testsjob runs it);pip-audit, because no dependency changed (CI'sauditjob runs it); andtests_integration/kit_author_walkthrough.py, because its wizard step needs Linuxrenameat2.Checklist
packs/. The releases use RAES's ownposture: openform, and the test plans through RAES's own validator and planner.tools/check_pr_title.pypasses locally.CHANGELOG.md— release-please owns them.