Skip to content

feat(core): validate extension incompatibleWith combinations - #180

Merged
ulises-jeremias merged 2 commits into
mainfrom
feat/issue-168-incompatible-with
Jul 16, 2026
Merged

feat(core): validate extension incompatibleWith combinations#180
ulises-jeremias merged 2 commits into
mainfrom
feat/issue-168-incompatible-with

Conversation

@ulises-jeremias

Copy link
Copy Markdown
Member

Summary

  • Adds catalog-level incompatibleWith validation before scaffold (slug or URL)
  • Adds cpa.config.json layer validation in the installer after configs load
  • Surfaces a clear fail-fast error from the CLI (exit 2)

Closes#168

CNA reference

  • cna-templates/templates.jsonincompatibleWith pairs
  • cna-templates/docs/MAINTENANCE_TEMPLATES.md §7

Test plan

  • uv run pytest catalog/cli/installer suites covering conflicts
  • uv run ruff check + pyright on touched modules

Made with Cursor

ulises-jeremiasand others added 2 commits July 16, 2026 14:07
Fail fast when selected catalog extensions (or cpa.config.json layers)
declare mutual incompatibility, matching CNA templates.json semantics.
Closes#168
Co-authored-by: Cursor <cursoragent@cursor.com>
Satisfies pyright reportArgumentType for list values in the JSON payload.
Co-authored-by: Cursor <cursoragent@cursor.com>
@ulises-jeremias

Copy link
Copy Markdown
MemberAuthor

Fixed pyright failure in test_installer.py by typing the fixture payload as dict[str, object].

@ulises-jeremias
ulises-jeremias merged commit 804737a into mainJul 16, 2026
9 checks passed
Sign up for freeto 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.

[P2] Validate extension incompatibleWith combinations before scaffold

1 participant

@ulises-jeremias