Skip to content

History / 2023 09 Template Schemas

Revisions

  • "docs: correct wiki doc behavior on queue env Signed-off-by: AlexTranAmz <167144297+AlexTranAmz@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Aug 25, 2026
  • "fix: do not cap <IntRangeExpr> expansion at the list-form limit Signed-off-by: David Leong <leongdl@amazon.com>"

    @client-software-ci client-software-ci committed Aug 15, 2026
  • "fix: Make WRAP_ACTIONS fixtures cross-platform via python; include variables: in WrappedAction.Environment Remove the runOn: [posix] gate from seven WRAP_ACTIONS job fixtures and switch them — plus the two ungated env_template validation fixtures — from bash/echo to python one-liners, the suite's portable interpreter (the convention every other ungated fixture in the conformance suite already follows — plain `echo` and `bash` are not reliably on PATH for Windows test runners). The WRAP_ACTIONS README's platform note now documents that convention: gated fixtures use POSIX shell, ungated fixtures use python. Clarify WrappedAction.Environment to carry ALL session-defined variables: `openjd_env` exports and entered environments' declarative `variables:` maps, both of which the runtime applies to the real subprocess environment. A wrap script forwarding the session's variables into a container must see everything the wrapped process would have received, however it was declared; splitting the two mechanisms made reusable wrappers silently drop `variables:`-declared values. Update RFC 0008, the 2023-09 Template Schemas wiki, and rename the pinning fixture wrap-environment-excludes-variables-map → wrap-environment-includes-variables-map with inverted assertions. Signed-off-by: Mark <399551+mwiebe@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jul 22, 2026
  • "test: Add 13 WRAP_ACTIONS conformance fixtures from the coverage audit (#153) * test: Add 13 WRAP_ACTIONS conformance fixtures Close the conformance coverage gaps identified by the RFC 0008 deep review and element-by-element coverage audit. Every High-severity divergence found across the review's five passes lived on a spec-mandated path that no fixture exercised; each new fixture pins one of those normative statements so cross-runtime divergences surface in CI instead of in review probes. Run-time cancelation validation (Template Schemas 5.3, "the runtime MUST fail the action" — previously zero fixtures; each derives its invalid value from WrappedAction.*, seeded per-action at host evaluation time, so the value is unknowable statically or at job creation and cannot be constant-folded away by an eager validator): - wrap-cancelation-mode-resolves-invalid-fails - wrap-cancelation-terminate-with-period-fails - wrap-cancelation-period-over-cap-fails Instantiation-time forwarding deferral (round-trip forwarding with the wrap env in jobEnvironments; every existing round-trip fixture used external env templates and never passed through job creation): - wrap-cancelation-roundtrip-job-environment Environment-template scope carried to wrap hooks (parameters and lets resolve in hooks; the wrapped step's symtab cannot supply them): - wrap-env-template-parameters-in-hooks - wrap-env-let-bindings-in-hooks WrappedAction.Environment is openjd_env-only (4.3.1; declarative variables: map excluded): - wrap-environment-excludes-variables-map Session-level single-layer rule (two wrap envs as SEPARATE environment templates — no single template is invalid, so only the runner can reject; the existing fixture stacks both inside one job template): - wrap-two-wrap-env-templates-rejected Cleanup guarantee and failure semantics (RFC scenario table, previously zero fixtures; now expressible with the runner's taskFailure assertion): - wrap-failed-enter-still-runs-wrap-exit Interception edge (nothing to replace means the hook must not fire): - wrap-inner-env-without-on-exit-skips-exit-hook Macro propagation beyond openjd_env (wrapped process's openjd_fail recognized through the wrap script's forwarded stdout): - wrap-openjd-fail-from-wrapped-process Variable-scope rule beyond action args (env-side validation fixtures): - 4--wrappedaction-in-cancelation-outside-hook.invalid - 4--wrappedaction-in-embedded-file.invalid Suite grows 59 -> 72. Current implementation status (expected, matches the audit's open findings): openjd-rs with OpenJobDescription/openjd-rs PR 265 passes 69/72 (fails lets-in-hooks, variables-map exclusion, cleanup guarantee = audit F12/F9/F15); openjd-sessions-for-python's RFC 0008 branch passes 68/72 (fails the three runtime cancelation-validation fixtures and the jobEnvironments round-trip = audit F5/F2). The conformance CI workflows tolerate implementation failures by design. Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com> * docs: State the wrap-hook nothing-to-replace rule explicitly Review feedback on the wrap-inner-env-without-on-exit-skips-exit-hook fixture: the behavior it pins — a wrap hook runs only in place of an action the inner entity actually defines, so an inner environment with no onExit (or no script at all) gets no onWrapEnvExit — was implicit in the spec's "runs instead of" phrasing rather than stated. Make it explicit in both places implementers read: - Template Schemas: new WRAP_ACTIONS constraint 5 (nothing-to-replace rule), including the variables:-only environment case and the note that onWrapTaskRun always runs because every <StepScript> defines onRun. - How-Jobs-Are-Run: one sentence in the wrap interception paragraph. - The fixture's header comment now cites the new constraint instead of deriving the behavior. The RFC document is left unchanged as the historical design record; the wiki pages are the living specification. Conformance suite re-run: matrix unchanged (the edited fixture passes on both implementations). Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com> * docs: State the nothing-to-replace rule in RFC 0008 as well Follow-up to the previous commit, which made the rule explicit in the wiki pages: mirror it in the RFC document itself so all three spec sources agree. - "Wrap ordering with multiple environments" gains a normative Nothing-to-replace rule paragraph (MUST NOT run a hook when the inner environment defines no matching action or no script at all), with the rationale that a hook is a replacement rather than a lifecycle notification, and the note that onWrapTaskRun always runs because every <StepScript> defines onRun. - The "Modifications to How Jobs Are Run" diff block is updated to match the sentence now present in the actual How-Jobs-Are-Run page, keeping the RFC's quoted diff in sync with the published text. Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com> --------- Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jul 21, 2026
  • "feat: Finalize RFC 0008 wrap-hook spec and nullable variable types Resolve review feedback deferred at RFC 0008 merge time, on PR #148, and on openjd-rs PR #261. - Make the wiki authoritative: copy RFC 0008 normative content (the WrappedAction/WrappedEnv/WrappedStep variable tables, timeout and cancelation semantics, failure and cleanup guarantees, and stdout macro rules) into 2023-09-Template-Schemas and How-Jobs-Are-Run, linking the RFC for attribution only. - Add WrappedAction.Cancelation.NotifyPeriodInSeconds (int?) so wrap scripts can honor the wrapped action's full cancelation semantics. - Retype WrappedAction.Timeout as int? and Cancelation.Mode as string? — null when the wrapped action declares no timeout or <Cancelation>, following EXPR semantics for optional data instead of 0/empty-string sentinels. Breaking change to the Timeout contract introduced earlier on this branch; both runtimes update in lockstep. - Specify round-trip forwarding under FEATURE_BUNDLE_1: a wrap hook can adopt the wrapped action's timeout and cancelation via whole-field format strings. Declared values forward verbatim; null drops the field (for mode, the entire cancelation object, since mode is the required discriminator). A format-string mode otherwise behaves like any normal format string: partial interpolation is valid, and the resolved value must be a valid mode name at run time. - Fix the RFC Basic Example (format-string timeouts require FEATURE_BUNDLE_1 and 0 is out of range), correct the WRAP_ACTIONS README timeout-sentinel bullet, and add EXPR to wrap-partial-hooks-rejected so the missing-EXPR rule cannot mask the all-or-nothing defect it tests. - Conformance: add fixtures covering cancelation mode and notify-period injection, schema-default forwarding, null sentinels with observable coalescing assertions, the round-trip cases, partial-interpolation mode, and invalid fixtures pinning the FEATURE_BUNDLE_1 gating. Round-trip and null-sentinel fixtures pin target behavior for openjd-rs 30cdf37, openjd-model-for-python 71fd0d3, and openjd-sessions-for-python 0295e21. Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jul 17, 2026
  • "fix(spec): allow Task.File.* in <StepScript>.let, matching Env.File.* in environments The Let Binding Scope Summary granted Env.File.* to <EnvironmentScript>.let but omitted Task.File.* from <StepScript>.let. The rationale for the Env case — embedded file paths are determined before let evaluation — applies identically to step scripts, and implementations already validate and evaluate Task.File.* in step-script let bindings (OpenJobDescription/openjd-rs#260). - Add Task.File.* to the <StepScript>.let scope row and generalize the embedded-file note to cover both contexts (2023-09 Template Schemas 3.6.2) - Align RFC 0005's ScriptTemplate let description, which granted embedded file symbols to environment scripts via example but never stated the step-script side - Exercise Task.File.* in the 3.6 let-host-context-symbols validation fixture (its header comment already claimed this coverage) and add a 7.3 runtime test mirroring the existing Env.File one Signed-off-by: Mark <399551+mwiebe@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jul 17, 2026
  • "test: add conformance tests for environment template validation Environment templates share the format-string, EXPR, and FEATURE_BUNDLE_1 rules with job templates, but the suite had no coverage for them; implementations could skip those passes for environment templates entirely and still pass. - base/env_templates: undefined variable references in actions, variables, and embedded files must be rejected; Session.* and Env.File.* references are valid; Job.Name, let bindings, and complex expressions require EXPR. - EXPR/env_templates (new): let bindings valid/duplicate/undefined, complex expressions, Job.Name available, Step.Name not available, type errors caught at validation time. - FEATURE_BUNDLE_1/env_templates (new): endOfLine on embedded files requires the extension. - EXPR/job_templates: environment script let bindings and complex expressions in job/step environments require EXPR (previously only step-level let was covered). Also cover the @fmtstring stage rule (spec 7.4) for timeout and notifyPeriodInSeconds: they resolve at job creation, before any session exists, so Session.*, Env.File.*, and host functions like apply_path_mapping must be rejected in them even though the same references are valid in the surrounding action's command/args (@fmtstring[host]). Covered for step actions, environment actions in job templates, and environment templates. Signed-off-by: Mark <399551+mwiebe@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jul 14, 2026
  • "rfc: Environment Wrap Actions (#130) * feat(RFC): Environment Wrap Actions Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jul 13, 2026
  • "fix: mark userInterface control as @optional, add conformance tests (#129) * Mark userInterface control as @optional, add conformance tests Signed-off-by: Stephen Crowe <6042774+crowecawcaw@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Apr 17, 2026
  • ""

    @client-software-ci client-software-ci committed Mar 24, 2026
  • "fix: specify that amount and attribute names must be unique (#110) Signed-off-by: Stephen Crowe <6042774+crowecawcaw@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Mar 6, 2026
  • "chore: Apply recent feedback bumping job param count to 200, add RFC 4 accepted date Signed-off-by: Mark <399551+mwiebe@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jan 30, 2026
  • "feat(rfc): Write RFC 004 to propose a grab bag of extensions (#95) Signed-off-by: Cody Edwards <edwards@amazon.com>"

    @client-software-ci client-software-ci committed Jan 9, 2026
  • "docs: Clarify a few details of task chunking Signed-off-by: cherie-chen <58997764+Cherie-Chen@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Jan 7, 2026
  • "docs: REDACTED_ENV_VARS should be in the extensions list Signed-off-by: Mark Wiebe <399551+mwiebe@users.noreply.github.com>"

    @client-software-ci client-software-ci committed Oct 29, 2025
  • feat: Merge RFC 0003 into the 2023-09 template schema wiki Signed-off-by: Brian Axelson <86568017+baxeaz@users.noreply.github.com>

    @client-software-ci client-software-ci committed May 15, 2025
  • docs: Clarify a few details of task chunking (#73) * In a step parameter space, only one task parameter can be chunked. This was explained in the RFC rationale, but not made explicit in the specification language. * The minimum value of defaultTaskCount is 1. * The minimum value of targetRuntimeSeconds is 0, and the value 0 is equivalent to not specifying a value. Signed-off-by: Mark Wiebe <399551+mwiebe@users.noreply.github.com>

    @client-software-ci client-software-ci committed Feb 24, 2025
  • fix!: amend default timeout for environment exit actions (#72) Signed-off-by: Josh Usiskin <56369778+jusiskin@users.noreply.github.com>

    @client-software-ci client-software-ci committed Feb 19, 2025
  • feat: Merge RFC 0001 into the 2023-09 template schema wiki (#65) Signed-off-by: Mark Wiebe <399551+mwiebe@users.noreply.github.com>

    @client-software-ci client-software-ci committed Jan 30, 2025
  • feat: Merge RFC 0002 into the 2023-09 template schema wiki (#64) Signed-off-by: Mark Wiebe <399551+mwiebe@users.noreply.github.com>

    @client-software-ci client-software-ci committed Jan 29, 2025
  • fix: Fixed a format string value reference table entry refering to 'Attachments' instead of 'Embedded Files' (#61) Signed-off-by: Evan Spearman <evans@amazon.com>

    @client-software-ci client-software-ci committed Jan 3, 2025
  • feat(wiki): disambiguate amount.worker.gpu.memory for multi-GPU hosts (#51) Signed-off-by: Josh Usiskin <56369778+jusiskin@users.noreply.github.com>

    @client-software-ci client-software-ci committed Oct 8, 2024
  • fix: remove colon from filename (#26) A file has a colon in a filename. This makes it impossible to checkout this repository on windows systems. So, we remove the colon. Signed-off-by: Daniel Neilson <53624638+ddneilson@users.noreply.github.com>

    @client-software-ci client-software-ci committed Feb 13, 2024