Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Render options JSON schema to Readthedocs #999

Merged
merged 4 commits into from
Mar 13, 2023
Merged

Render options JSON schema to Readthedocs #999

merged 4 commits into from
Mar 13, 2023

Conversation

sim642
Copy link
Member

@sim642 sim642 commented Feb 22, 2023

Uses json-schema-for-humans to render the options JSON schema to HTML and adds it into Readthedocs (options reference link in the left menu bar).

Docs preview for this PR: https://goblint--999.org.readthedocs.build/en/999/.

@sim642 sim642 added the documentation Documentation, comments label Feb 22, 2023
@sim642 sim642 self-assigned this Feb 22, 2023
@sim642 sim642 marked this pull request as ready for review February 22, 2023 11:49
@vesalvojdani
Copy link
Member

This would be quite useful, so might be worth making this link more prominent. Typically a link like this.c just links to the file. But more importantly, what is the Markdown output like? Would it be rendered better and directly on readthedocs/github? I'm just not at all a fan of these super-padded modern designs, such as https://cs.ut.ee, where it's no longer possible to find anything.

@sim642
Copy link
Member Author

sim642 commented Feb 27, 2023

This would be quite useful, so might be worth making this link more prominent. Typically a link like this.c just links to the file.

It's also separately in the docs side bar.

But more importantly, what is the Markdown output like? Would it be rendered better and directly on readthedocs/github?

Markdown doesn't allow such arbitrarily nested structure, so it'd be more or less flat, at which point you might as well search the original schema file directly like we've been doing so far.

Also, I don't know if the Markdown flavor used by json-schema-for-humans is the same one as the one used by Readthedocs (which has some oddities).
There's no nice way of rendering it directly on GitHub because the rendered version would have to be committed into the repository then, but that requires keeping it in sync.

I'm just not at all a fan of these super-padded modern designs, such as https://cs.ut.ee, where it's no longer possible to find anything.

The CSS for this can be customized to have less padding.

@sim642
Copy link
Member Author

sim642 commented Feb 27, 2023

I added a Markdown version into the Readthedocs preview now. It's mostly boilerplate and less actually useful information.

Maybe the best option would be to at some point write our own custom Markdown conversion for it (in OCaml), which can omit the irrelevant parts of JSON schemas and emphasize the parts we do use.

@sim642
Copy link
Member Author

sim642 commented Mar 13, 2023

The question is, which version do we want to have right now: HTML or Markdown? Both would be rather redundant.

@michael-schwarz
Copy link
Member

I personally prefer the HTML version, but am happy with either one!

@sim642 sim642 merged commit 9d793a5 into master Mar 13, 2023
@sim642 sim642 deleted the docs-jsfh branch March 13, 2023 15:22
@sim642 sim642 added this to the v2.2.0 milestone Apr 5, 2023
sim642 added a commit to sim642/opam-repository that referenced this pull request Sep 13, 2023
CHANGES:

* Add `setjmp`/`longjmp` analysis (goblint/analyzer#887, goblint/analyzer#970, goblint/analyzer#1015, goblint/analyzer#1019).
* Refactor race analysis to lazy distribution (goblint/analyzer#1084, goblint/analyzer#1089, goblint/analyzer#1136, goblint/analyzer#1016).
* Add thread-unsafe library function call analysis (goblint/analyzer#723, goblint/analyzer#1082).
* Add mutex type analysis and mutex API analysis (goblint/analyzer#800, goblint/analyzer#839, goblint/analyzer#1073).
* Add interval set domain and string literals domain (goblint/analyzer#901, goblint/analyzer#966, goblint/analyzer#994, goblint/analyzer#1048).
* Add affine equalities analysis (goblint/analyzer#592).
* Add use-after-free analysis (goblint/analyzer#1050, goblint/analyzer#1114).
* Add dead code elimination transformation (goblint/analyzer#850, goblint/analyzer#979).
* Add taint analysis for partial contexts (goblint/analyzer#553, goblint/analyzer#952).
* Add YAML witness validation via unassume (goblint/analyzer#796, goblint/analyzer#977, goblint/analyzer#1044, goblint/analyzer#1045, goblint/analyzer#1124).
* Add incremental analysis rename detection (goblint/analyzer#774, goblint/analyzer#777).
* Fix address sets unsoundness (goblint/analyzer#822, goblint/analyzer#967, goblint/analyzer#564, goblint/analyzer#1032, goblint/analyzer#998, goblint/analyzer#1031).
* Fix thread escape analysis unsoundness (goblint/analyzer#939, goblint/analyzer#984, goblint/analyzer#1074, goblint/analyzer#1078).
* Fix many incremental analysis issues (goblint/analyzer#627, goblint/analyzer#836, goblint/analyzer#835, goblint/analyzer#841, goblint/analyzer#932, goblint/analyzer#678, goblint/analyzer#942, goblint/analyzer#949, goblint/analyzer#950, goblint/analyzer#957, goblint/analyzer#955, goblint/analyzer#954, goblint/analyzer#960, goblint/analyzer#959, goblint/analyzer#1004, goblint/analyzer#558, goblint/analyzer#1010, goblint/analyzer#1091).
* Fix server mode for abstract debugging (goblint/analyzer#983, goblint/analyzer#990, goblint/analyzer#997, goblint/analyzer#1000, goblint/analyzer#1001, goblint/analyzer#1013, goblint/analyzer#1018, goblint/analyzer#1017, goblint/analyzer#1026, goblint/analyzer#1027).
* Add documentation for configuration JSON schema and OCaml API (goblint/analyzer#999, goblint/analyzer#1054, goblint/analyzer#1055, goblint/analyzer#1053).
* Add many library function specifications (goblint/analyzer#962, goblint/analyzer#996, goblint/analyzer#1028, goblint/analyzer#1079, goblint/analyzer#1121, goblint/analyzer#1135, goblint/analyzer#1138).
* Add OCaml 5.0 support (goblint/analyzer#1003, goblint/analyzer#945, goblint/analyzer#1162).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Documentation, comments
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants