diff --git a/building/configlet/format.md b/building/configlet/format.md index 7bf9a254..88fc86d5 100644 --- a/building/configlet/format.md +++ b/building/configlet/format.md @@ -85,6 +85,7 @@ The canonical key order for an exercise `.meta/config.json` file is: - exemplar (Concept Exercises only) - example (Practice Exercises only) - [editor] + - [invalidator] - [language_versions] - [forked_from] (Concept Exercises only) - [icon] (Concept Exercises only) diff --git a/building/configlet/lint.md b/building/configlet/lint.md index 2c250394..4754d814 100644 --- a/building/configlet/lint.md +++ b/building/configlet/lint.md @@ -92,17 +92,21 @@ The `config.json` file should have the following checks: - The `"files.example`" value must be an array - The `"files.example`" values must be valid patterns⁵ - The `"files.example`" values must not have duplicates -- The `"files.exemplar`" key is optional -- The `"files.exemplar`" value must be an array -- The `"files.exemplar`" values must be valid patterns⁵ -- The `"files.exemplar`" values must not have duplicates +- The `"files.exemplar"`" key is optional +- The `"files.exemplar"`" value must be an array +- The `"files.exemplar"`" values must be valid patterns⁵ +- The `"files.exemplar"`" values must not have duplicates - The `"files.editor`" key is optional - The `"files.editor`" value must be an array - The `"files.editor`" values must be valid patterns⁵ - The `"files.editor`" values must not have duplicates -- Patterns can only be listed in either the `"files.solution"`, `"files.test"`, `"files.example"`, `"files.exemplar"` or `"files.editor"` array (no overlap) +- The `"files.invalidator`" key is optional +- The `"files.invalidator`" value must be an array +- The `"files.invalidator`" values must be valid patterns⁵ +- The `"files.invalidator`" values must not have duplicates +- Patterns can only be listed in either the `"files.solution"`, `"files.test"`, `"files.example"`, `"files.exemplar"`, `"files.editor"` or `"files.invalidator"` array (no overlap) - If the track is `d` or `plsql`, the `"files.solution"` and `"files.test"` files _can_ overlap - - The `"files.example` and `"files.exemplar` files _can_ overlap + - The `"files.example` and `"files.exemplar"` files _can_ overlap - The `"test_runner.average_run_time"` key is required if `status.test_runner` is equal to `true` - The `"test_runner.average_run_time"` value must be a floating-point number > 0 with one decimal point of precision - The `"exercises"` key is required @@ -228,11 +232,15 @@ The `config.json` file should have the following checks: - The `"files.editor"` key is optional - The `"files.editor"` value must be an array - The `"files.editor"` values must not have duplicates +- The `"files.invalidator"` key is optional +- The `"files.invalidator"` value must be an array +- The `"files.invalidator"` values must not have duplicates - The files listed in the `"files.solution"` must exist - The files listed in the `"files.test"` must exist - The files listed in the `"files.exemplar"` must exist - The files listed in the `"files.editor"` must exist -- Files can only be listed in either the `"files.solution"`, `"files.test"` or `"files.exemplar` array (no overlap) +- The files listed in the `"files.invalidator"` must exist +- Files can only be listed in either the `"files.solution"`, `"files.test"`, `"files.exemplar"` or `"files.invalidator"` array (no overlap) - If the track is `d` or `plsql`, the `"files.solution"` and `"files.test"` files _can_ overlap - The `"forked_from"` key is optional - The `"forked_from"` value must be an array @@ -299,11 +307,15 @@ The `config.json` file should have the following checks: - The `"files.editor"` key is optional - The `"files.editor"` value must be an array - The `"files.editor"` values must not have duplicates +- The `"files.invalidator"` key is optional +- The `"files.invalidator"` value must be an array +- The `"files.invalidator"` values must not have duplicates - The files listed in the `"files.solution"` must exist - The files listed in the `"files.test"` must exist - The files listed in the `"files.example"` must exist - The files listed in the `"files.editor"` must exist -- Files can only be listed in either the `"files.solution"`, `"files.test"` or `"files.example` array (no overlap) +- The files listed in the `"files.invalidator"` must exist +- Files can only be listed in either the `"files.solution"`, `"files.test"`, `"files.example` or `"files.invalidator"` array (no overlap) - If the track is `d` or `plsql`, the `"files.solution"` and `"files.test"` files _can_ overlap - The `"language_versions"` key is optional - The `"language_versions"` value must be a string diff --git a/building/tracks/concept-exercises.md b/building/tracks/concept-exercises.md index 02c94daf..002deaf0 100644 --- a/building/tracks/concept-exercises.md +++ b/building/tracks/concept-exercises.md @@ -290,6 +290,7 @@ This file contains meta information on the exercise: - `test`: the [test file(s)](./#filetests) (required) - `exemplar`: the [exemplar implementation file(s)](./#fileexemplarimplementation) (required) - `editor`: other files shown as read-only in the editor (optional) + - `invalidator`: files that when changed, cause a solution to become out-of-date (optional) - `language_versions`: Language version requirements (optional) - `blurb`: A short description of this exercise. Its length must be <= 350. Markdown is _not_ supported (required) - `source`: The source this exercise is based on (optional) diff --git a/building/tracks/practice-exercises.md b/building/tracks/practice-exercises.md index f37e7e55..2c66193e 100644 --- a/building/tracks/practice-exercises.md +++ b/building/tracks/practice-exercises.md @@ -253,6 +253,7 @@ This file contains meta information on the exercise: - `test`: the [test file(s)](./#filetests) (required) - `example`: the [example implementation file(s)](./#fileexampleimplementation) (required) - `editor`: additional files shown as read-only in the editor (optional) + - `invalidator`: files that when changed, cause a solution to become out-of-date (optional) - `language_versions` Language version requirements (optional) - `blurb`: A short description of this exercise. Its length must be <= 350. Markdown is _not_ supported (required) - `source`: The source this exercise is based on (optional)