Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate benchcomp.yaml documentation from schema #2593

Closed
wants to merge 10 commits into from

Conversation

karkhaz
Copy link
Contributor

@karkhaz karkhaz commented Jul 10, 2023

Description of changes:

This PR adds a validation schema for the benchcomp configuration file format, as well as code to emit that schema into the Kani book. This is in preparation for further PRs that will add similar schemas for the format that a benchcomp parser should emit, and the format that benchcomp visualizers should expect, both of which will also be rendered in the book.

Here is a rendered version.

Resolved issues:

Resolves #2592

Related RFC:

None

Call-outs:

N/A

Testing:

  • How is this change tested?[

Rendered version](https://karkhaz.github.io/kani/benchcomp-conf.html) on my fork

  • Is this a refactor change?

No

Checklist

  • Each commit message has a non-empty body, explaining why the change was made
  • Methods or procedures are documented
  • Regression or unit tests are included, or existing tests cover the modified code
  • My PR is restricted to a single feature or bugfix

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@karkhaz karkhaz requested a review from a team as a code owner July 10, 2023 16:44
@karkhaz
Copy link
Contributor Author

karkhaz commented Jul 11, 2023

Here is how it looks, the text is slightly out of date (I've since made the example shorter)

Screen Shot 2023-07-10 at 17 45 07

To make filenames in a future commit less ambiguous.
This commit switches the data validation package from `cerberus` to
`schema`. This is because schema is able to emit the schema in a
standardized format that can later be rendered into HTML. This will be
implemented in a future commit.
This commit adds the schema of benchcomp.yaml to the Kani book to
document how benchcomp configuration files are written. The code will be
used in future commits for documenting the parser and visualizer
formats.
Copy link
Contributor

@qinheping qinheping left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


{{#include ../gen_src/BenchcompYaml.md}}

A minimal example of such a file is:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be great to have a paragraph to explain the workflow of a variant in this configuration.

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.

Create schema for benchcomp.yaml
5 participants