Skip to content

Add new schema definition#164

Open
olafmersmann wants to merge 9 commits intomainfrom
push-zmvqzzrwnlup
Open

Add new schema definition#164
olafmersmann wants to merge 9 commits intomainfrom
push-zmvqzzrwnlup

Conversation

@olafmersmann
Copy link
Copy Markdown
Collaborator

@olafmersmann olafmersmann commented Apr 21, 2026

Adds a formal schema definition for problems, generators, suites and implementations. These are packaged in a bare bones python module named opltools. A minimal usage example is located in examples/demo.py.

To check if a given yaml file adheres to the schema, there's an included cli tool. Run

uv run opl validate my-file.yaml

to check it.

Adds a formal schema definition for problems, generators, suites and
implementations. These are packaged in a bare bones python module named
opltools. A minimal usage example is located in examples/demo.py.

To check if a given yaml file adheres to the schema, there's an included cli
tool. Run

  uv run opl validate my-file.yaml

to check it.
Add a minimal (AI generated) set of unit tests for opltools. Run the tests on
push and for pull requests.
Variables and constraints are now lists (technically sets) with a description
of each type. This is more flexible than the previous approach and allows
iterative refinement.
Manual translation of the EMDO problem from the old problems.yaml file to the
new format to check if schema supports storing all information from old format.
Comment thread .github/workflows/check_python_package.yaml
@CIGbalance CIGbalance mentioned this pull request Apr 22, 2026
Rudimentary design document and reference for the new schema that attempts to
summarize the discussion at the OPL hackathon in April. The core structure was
written by the author, then fleshed out using Claude and finally reviewed by
again the author.

Co-Authored-By: Claude Opus 4.7
@olafmersmann olafmersmann force-pushed the push-zmvqzzrwnlup branch 2 times, most recently from 1d059cd to 240bfa7 Compare April 22, 2026 20:54
@olafmersmann
Copy link
Copy Markdown
Collaborator Author

PRs #172, #180, and #181 depend on this one and we need to either temporarily disable the HTML rebuild or also commit @Dvermetten's changes to the build scripts for this PR to land.

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.

Schema: Make all fields in a Reference optional Schema: Improve evaluation_time property

2 participants