Skip to content

Move conformance tests into the per-module tree under plain_modules - #258

Closed
NejcS wants to merge 4 commits into
mainfrom
impr/move_conf_tests_to_modules
Closed

Move conformance tests into the per-module tree under plain_modules#258
NejcS wants to merge 4 commits into
mainfrom
impr/move_conf_tests_to_modules

Conversation

@NejcS

@NejcS NejcS commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Each module now renders into a single folder: plain_modules/<module>/ with code/ (implementation, git repo), tests/ (conformance tests, git repo — only created when a conformance tests script is configured), and .codeplain/ + .memory/ at module level outside git.

The --conformance-tests-folder CLI argument and config key are removed. Outputs from older versions re-render from scratch automatically; the old top-level conformance_tests/ folder can be deleted by hand.

NejcS added 4 commits July 22, 2026 14:42
Each module now renders into a single folder under the build folder:

  plain_modules/<module>/
    .codeplain/   module_metadata.json (module level, not in any git repo)
    .memory/      conformance test memory (module level, not in any git repo)
    code/         git repo with the implementation code
    tests/        git repo with the conformance tests

The tests/ folder is only created when a conformance tests script is
configured. The metadata file is no longer tracked in a git repo, so the
renderer now trims the stored functionalities list itself whenever it
reverts the code repo to an earlier functionality.
Conformance tests now always live in <build-folder>/<module>/tests, so
the setting no longer means anything. Old config files that still set
the key fail with a clear 'Invalid configuration key' error.

The --copy-conformance-tests / --conformance-tests-dest options stay;
a new guard prevents --conformance-tests-dest from pointing at the
build folder (the dist copy wipes its destination first).

The CLI reference files are regenerated from the parser; the docs/ copy
also picks up previously missing --status and --version entries.
The example run scripts and the e2e tests now look for generated code
in plain_modules/<module>/code. The project-structure docs describe the
per-module tree.
task-manager.plain requires task-model.plain, demonstrating a requires
dependency chain: the base module is rendered first and the top module
builds on top of its generated code.
@NejcS NejcS closed this Jul 23, 2026
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.

1 participant