In support of my PR <https://github.com/juju/juju/pull/6498> that adds an interactive mode for add-cloud, we needed to add jsonschema for the cloud configurations that can be inspected at runtime to generate the interactive queries.
Unfortunately, the jsonschema package we're currently using (gojsonschema) does not expose the structure of the schema, so it's not able to be inspected by internal code ( https://godoc.org/github.com/xeipuuv/gojsonschema#Schema). In looking for a new jsonschema package, I got recommended github.com/lestrrat/go-jsschema which is actively maintained, and does expose the schema. I have made a wrapper package for go-jsschema at github.com/juju/jsonschema which adds some extra fields to the schema to support our particular use case, but delegates most of the heavy lifting to the underlying package. Currently, importing go-jsschema imports 5 other repos from the same author in support of jsonschema, and one package by a third party (dave's github.com/pkg/errors). I am asking about making a PR to remove one of those dependencies, but it still leaves us with 6 new dependencies (5 of which are from the same author). Here's the additions: github.com/lestrrat/go-jsschema github.com/lestrrat/go-jspointer github.com/lestrrat/go-jsref github.com/lestrrat/go-jsval github.com/lestrrat/go-pdebug github.com/lestrrat/go-structinfo github.com/pkg/errors The pdebug one is the one I can easily remove with a PR. I'd like to remove the structinfo one, but that might be less likely (would require copying a few dozen lines of code, and I doubt the guy would be amenable... but I can ask). However, this shuld be able to be used as a more or less drop in replacement for the existing forks of the gojsonschema package which we're maintaining, which would remove 3 dependencies (albeit ones more or less maintained by us). In theory, we could also remove environschema at some point and replace it with jsonschema, but that's a bigger job. -Nate
-- Juju-dev mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev
