Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Restructures error handling, getting rid of the weird structure where we used class variables in
ProblemAspect
to keep track of the number of errors encountered. This also fixed bugs with error counts, where errors occuring insetup()
were not included in error counts aftercheck()
had been called, and where --werror and --bail_on_error didn't work on errors insetup()
. I feel like further refactoring of setup and component interaction is needed, but I didn't want to blow up this PR.Adds fatal errors, where the error is severe enough that it makes more sense to stop validation than to proceed. This happens when we fail to parse config, or when graders/output validators are missing or fail to compile (when it feels better to just stop instead of burning CPU for submissions just to get judge error).
Also adds a check of all file and directory names in the package, per https://www.kattis.com/problem-package-format/spec/2023-07-draft.html#general-requirements . There are no requirements on directory names in
legacy
, but I made it a warning if directory names in a legacy package do not comply with 2023-07.