check-jsonschema icon indicating copy to clipboard operation
check-jsonschema copied to clipboard

Warn when using schema features annotated with `"deprecated": true`

Open edgarrmondragon opened this issue 2 years ago • 4 comments

New in draft 2019-09 The deprecated keyword is a boolean that indicates that the instance value the keyword applies to should not be used and may be removed in the future.[1]

It'd be nice if the CLI could emit warnings regarding deprecated features.

edgarrmondragon avatar Sep 27 '23 19:09 edgarrmondragon

Cool idea. I'll need to look into how we could gather up this info. I'm not sure when I could prioritize working on this, but certainly I'd be open to a PR or useful info about how to implement it on top of jsonschema.

sirosen avatar Sep 27 '23 20:09 sirosen

Ha, I don't know why I didn't think of first opening an issue over there. Thanks!

UPDATE: https://github.com/python-jsonschema/jsonschema/issues/1170

edgarrmondragon avatar Sep 28 '23 00:09 edgarrmondragon

I'm removing the label for requiring an upstream change after the pretty productive thread on jsonschema. Short term, it's probably wiser not to wait for an ideal solution but to try to do something as a client of that lib.

The main questions I have coming out of that is

  • is erroring on deprecations acceptable?
  • what's the right interface for also supporting other advisory annotations as errors?

If erroring out isn't okay, it's going to be extremely hard to support this (I'd say infeasible). If it is, then just to consider and play around with a phrasing...

check-jsonschema --reject deprecated,readOnly

Looks decent to me. I like the brevity of --reject as a name for it, but it could also be something like --error-on.

sirosen avatar Oct 01 '23 17:10 sirosen

The main questions I have coming out of that is

  • is erroring on deprecations acceptable?

My expectation would be that they're warnings by default (and could become errors in a strict mode).

That is also generally the use case for deprecations: Using the feature isn't an error, but will likely become so in the future, and it is desirable for users of the feature to find some alternate solution.

emilal avatar Mar 07 '24 09:03 emilal