* feat(config): add `overrideDescription` option
Presets which extend many other presets used an `ignoreDeps: []` sentinel
to keep their own one-line summary in the onboarding PR instead of one line
per extended preset. Replace that hack with an explicit `overrideDescription`
option, which is consumed and removed while presets are resolved.
The resolved descriptions are unchanged. Repositories which set
`ignoreDeps: []` in their own config no longer lose all preset descriptions
in their onboarding PR.
* fixup! feat(config): add `overrideDescription` option
* fixup! feat(config): add `overrideDescription` option
* fixup! feat(config): add `overrideDescription` option
As noted in #38749, we need to upgrade to draft-07 of JSON Schema to
upgrade our dependency on AJV.
To do so, we "just" need to update the `$schema`, as we're not using
anything that's been deprecated/removed/changed as part of draft-07.
This doesn't impact anything user-facing (as these are schemas for
internal data files), and the schema doesn't change.
This appears to be supported by `vscode-json-languageservice`, which is
used by several IDEs (including VSCode) and editors to perform JSON
Schema validation in-editor.
To ensure that our `lib/data` files match the JSON schemas that we have
defined, we can also introduce these into the `tools/validate-schema.ts`
file.
This loops through the known files and the JSON Schema that defines
them, then validates them with AJV.
Note that this also requires the following schema changes:
- using draft-04 everywhere (for ease, as we're not using draft-07
functionality)
- using a consistent `$schema` identifier, to match the document `$id`
- make sure that the top-level `all` key doesn't get matched by
`patternProperties`
The core of this - as little code as it is - was generated via GPT-4.1,
based on existing code in this file.
Co-authored-by: gpt-4.1 <jamie.tanna+github-copilot@mend.io>