Skip to content

Dev - #475

Merged
Brad-Edwards merged 8 commits into
mainfrom
dev
Oct 16, 2026
Merged

Dev#475
Brad-Edwards merged 8 commits into
mainfrom
dev

Conversation

@Brad-Edwards

Copy link
Copy Markdown
Collaborator

Summary

Related issues

Verification

  • python -m unittest discover -s tests
  • raes-pack-validate --repo .
  • raes-pack-release check --all
  • raes-pack-validate --packs-root packs
  • raes-pack-release check --packs-root packs
  • Docs changed: built docs/public/ warning-free (sphinx-build -W).

Checklist

  • Keeps RAES semantics in RAES; hosted pack content stays under packs/.
  • PR title is a Conventional Commit (a required check enforces it).
  • Did not edit the version or CHANGELOG.md — release-please owns them.

github-actions Bot and others added 8 commits October 13, 2026 21:33
* chore(main): release 3.9.0

* chore(main): release 4.0.0

* chore(main): release 4.0.1

* chore(main): release 4.0.2

* chore(main): release 4.0.3

* chore(main): release 5.0.0

* chore(main): release 5.1.0

* chore(main): release 5.2.0

* chore(main): release 6.0.0

* chore(main): release 6.0.1

* chore(main): release 6.1.0

* chore(main): release 6.2.0

* chore(main): release 6.2.1

* chore(main): release 6.3.0

* chore(main): release 6.3.1

---------

Co-authored-by: Brad Edwards <j.bradley.edwards@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…shing raes-pack-release (#450)

* fix(release): report a pack.yaml that is not a mapping instead of crashing raes-pack-release

PackContracts kept a pack.yaml that parses to a list or a scalar and then
called .get on it, so every raes-pack-release subcommand raised
AttributeError, and check stopped before the remaining packs.

PackContracts now treats such a pack.yaml as empty and records a
"pack.yaml is a YAML list/scalar, not a mapping" failure. check reports it
as a failed pack and keeps checking the others; lint, smoke, build and
metadata report it and exit 1. _is_safe_slug rejects a non-string pack
name, so name: 2024 fails the build as "not a path-safe slug" instead of
raising TypeError.

Closes #447

* fix(release): report the malformed pack.yaml from _resolve_release_paths

SonarCloud python:S1142 flagged a fourth return in build_release. The
pack.yaml failure now comes from _resolve_release_paths, which build_release
already returns on, and no profile is derived for such a pack.

Refs #447

* fix(release): reject null manifests and false-valued pack names

---------

Co-authored-by: Brad Edwards <j.bradley.edwards@gmail.com>
…value that is not a list instead of crashing raes-pack-release (#472)
…bind every hosted pack in CI (#471)

* fix: re-bind the AI Escape Lab associated-artifact manifest and byte-bind every hosted pack in CI

#431 changed 12 AI Escape Lab files without re-deriving
packs/ai-escape-lab/associated-artifacts.json, so
validate_pack_content_manifest rejected the pack and verified install failed
at content-binding. Re-derive the manifest with derive_pack_content_manifest
(the pack's export-pack.py idiom): only those 12 members' checksums and sizes
and the set digest change.

Add tests/test_hosted_pack_content_binding.py, run by the tests job, which
calls validate_pack_content_manifest on every directory under packs/ found by
content_ci._packs, so a later content edit that skips the manifest fails CI.

Closes #470

* test: let hosted pack binding errors fail subtests directly

---------

Co-authored-by: Brad Edwards <j.bradley.edwards@gmail.com>
…a mapping instead of crashing raes-pack-release (#469)

* fix(release): report a compatibility or bundles manifest that is not a mapping instead of crashing raes-pack-release

PackContracts kept a compatibility manifest or profiles/bundles.yaml that
parses to a list or a scalar and then called .get on it, so lint, smoke,
metadata and build raised AttributeError, and check either raised (bundles)
or skipped the pack as "not releasable" and passed (compatibility).

PackContracts now reads both files through one _mapping helper, the same
path pack.yaml takes since #450: a non-mapping value (an empty or null
file included, as for pack.yaml) is read as absent and recorded as
"<file> is a YAML <kind>, not a mapping" in manifest_failures, which every
subcommand already reports first. check fails such a pack and keeps
checking the others. An absent or unreadable file is still absent, so a
pack without a compatibility manifest stays an explicit skip.
_yaml_kind moves above PackContracts so all three messages share it.

Closes #448

* test(release): verify combined manifest validation failures

---------

Co-authored-by: Brad Edwards <j.bradley.edwards@gmail.com>
…orkflow's pack input (#467)

The workflow declared a `pack` dispatch input but never passed it on, and
the rehearsal hard-coded TechVault. The run step now passes the input
through a step-level `env:` entry (REHEARSAL_PACK), never `${{ }}` inside
`run:`. The script rehearses that directory (default packs/techvault),
stops before publishing when validate_pack() rejects it, and names the
consumer directories after the built pack's name, which static
validation requires.

Closes #451
@Brad-Edwards
Brad-Edwards merged commit d42a0cd into main Oct 16, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants