Capture more metadata about crates and stop using json for dependencies #1062
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The goals of this pr are simple: Get some more data about crates so that I can implement a features display, and stop using json to represent dependencies within the
releases
table.The structs that parse out info from
cargo metadata
's output got a little refactor and now get everything we need, so that part is done. The part I'm not having a fun time with is the database side of things, migrating the old json columns into the new table. There's also some only vaguely finished stuff (e.g. dependency versioning, the idea is that we'll have an enum on our side that tells us if it's the old and limited-in-data picture of the dependency or the new rich one, this is only actually mentioned in the migration query atm). The type-unsafe nature of our current database interactions is also a source of annoyance since I now have to manually hunt down points of interaction with the dependencies column, which as of now has not been done.