Open jameslamb opened 4 months ago
Thinking more about this this morning.... all of the examples I gave are generic YAML-formatting things and not specific to rapids-dependency-file-generator
. Maybe just yamllint
or similar could be used to enforce those things if we wanted, with no changes to rapids-dependency-file-generator
.
Description
I just manually updated a LOT of
dependencies.yaml
files across RAPIDS (https://github.com/rapidsai/build-planning/issues/31), and found myself looking for some things manually that should be possible to enforce with a linter.This issue proposes adding a
--strict
argument torapids-dependency-file-generator
, which enforces more standardization acrossdependencies.yaml
files.Benefits of this work
dependencies.yaml
files should reduce the effort to do all-of-RAPIDS migrations (either manually or withrapids-reviser
)Acceptance Criteria
rapids-dependency-file-generator
enforces some linting checks ondependencies.yaml
files.pre-commit-config.yaml
configurations usingrapids-dependency-file-generator
as a hookApproach
I'm proposing that if a flag
--strict
is passed torapids-dependency-file-generator
, it check the content of the YAML file passed to--config
and raise a non-0 exit code if any of a set of opt-in linting rules are violated.I'll list some initial ideas I have here. I'm sure others will have more. For most of these, I have lightly-held opinions about which should be the preferred pattern, and care more that there be some preferred pattern and a tool to automatically enforce that preference.
[]
lists{}
maps: null
to implicit (which might catch some mistakes)Notes
This proposal is inspired by
mypy --strict
(mypy docs).And by conversations like this: https://github.com/rapidsai/rmm/pull/1627#discussion_r1690501031