## What's been going on?
PRs merged: 1283 1281 1282 1280 1278 1279 1277 1276 1275
PRs opened: 1284
## suppress_warnings
turn this into a string tag rather than a boolean
Merged PRs:
New PRs:
Menhir work:
TODO before release:
Release plan:
New PRs:
Merged PRs:
Add odoc3 features in odoc's doc
Add '–suppress-warnings' to avoid inheriting warnings
New PRs:
Merged PRs:
Uniform treatment of sidebar
By @panglesd - we now have a reasonable approach to having a global sidebar in odoc!
driver: Update to –home-breadcrumb new name
A last minute change to the above sidebar PR changed the name of a CLI parameter and this wasn't changed everywhere. Oops! Thanks, @julow
2.4.4 release:
The futher-voodoo PR has been rebased and some more commits from the docs-ci branch pulled in.
Consensus:
Take core engine of sherlodoc into the odoc repo, and out of the sherlodoc repo, which will only retain the frontend code.
The versions of all packages will the same , ie., we will release sherlodoc-3.0.0 soon!
could move the indexing code clientside to save on space when transferring the javascript blob.
@doc-json
The issue discussed last week of errors from dependency packages was investigated by @jonludlam, and a PR will be incoming soon. The change involves putting a suppress-warnings
field here. This is set when initially reading the cmt/cmti/cmi file, and is preserved when doing expansions. We then use it while resolving references to decide whether or not to keep the warnings.
This will largely solve https://github.com/ocaml/odoc/issues/1127 and, along with the html-remap
branch, will also solve https://github.com/ocaml/odoc/issues/1120.
As an 'experience report' I used this to check the build of odoc's documentation, and found a bunch of real errors that I could actually do something about, and now on my branch there are no errors!
--as-json
outputIssue #1134 requests more fields in the json output.
Easy ones:
Trickier ones:
In odoc, doesn't look like much has been going on:
Merged PRs:
Opened PRs:
New issues:
Because the focus has been on ocaml.org integration:
Also
to fix this issue
map.mli reference to bindings
is ambiguous here
set.mli reference to elements
is ambiguous here
might be worth taggin the location with whther warnings are enabled or not
multiple roots can be enabled!
source files are now also in the sidebar
is always broken!
## What's been going on?
…
Merged PRs:
dune
unless you're using one of dune's libraries, whereas the latter would almost certainly produce docs for dune.New PRs:
Url.from_identifier
can fail. The reason being that we don't have a canonical URL for something like int
. Is there another solution?implicitly ended tags
PR.Ongoing work:
Usability improvements for odoc_driver
Deliver to JS a mode of odoc_driver
that can run on 'minijane' and produce reasonable output. This has to include handling of markdown docs within the tree with links between pages.
Produce a version of ocaml.org on the staging server (https://staging.ocaml.org/ or similar) with a beta version of odoc 3 that can be tried by the community.
By the end of the quarter :-)
As discovered by @panglesd when implementing the new tag behaviour, lists already had a mode where they were ended by a blank line, tag or heading. A consequence of this was a slightly odd interaction between the new 'one block item only' behaviour and the behaviour of lists. Consequently he suggested we reuse this behaviour for the ending of tags, and has made PR 1239 implementing this.
Everyone is happy with the idea of ending tags in the same way that list items are ended.
Much discussion on the tags issue.
Suggestion 7: curly brace immediately after the tag
@return{ foo bar
this is a longer return tag
}
@raise Failure if it fails
..
}
Suggestion '6' adds new extensible blocks and inlines {%% block %}
and {% inline %}
but custom tags is the previously existing feature that satisfies this problem (not inlines though). It was noted that {%...%}
is currently used for inline HTML and the like.
General agreement that it's quite nice not to have to alter the beginning of your tag in order to have it span multiple blocks.
Also remaining greppable is good, so no @{return
.
There are issues with parsing - we need to make sure that error reporting works well - in particular the importance of the whitespace here:
@tag{ [verbatim] this is an extended tag}
@frontmatter {[ code block, not an extended tag ]}
for e.g. base
ocaml.org/p/base/latest/index.html <- index.mld from the package docs
ocaml.org/p/base/latest/base/Base/index.html <- module Base
Looks like we should go ahead with the simpler structure.
odoc
namespaced tags for these internal use casesx-extra-doc-deps: [
"core" {= "0.17.1"}
]
- Backport of the OCaml 5.3 fix to the odoc 2.4 branch
- Should release odoc 2.4.4 soon
- Occurrences is working at JS!
Some notes here: https://hackmd.io/HGi28Ga1SCOIBppfkgG7kw
(children
tutorial
file1
examples/
examples)
(open Stdlib)
---
{0 Title}
blabla
e.g. request from Vesa:
So… If I have a single dune-project that specifies multiple packages
picos -(depends on)-> exn_bt
picos_std -(depends on)-> picos
picos_stdio -(depends on)-> picos
picos_stdio_cohttp -(depends on)-> picos_stdio
picos_lwt -(depends on)-> picos
then how do I reference modules defined in one package from the documentation in another package?
These packages and modules are designed to work together. So, for example, to provide an example that uses a specific module from a specific package, e.g. picos_std, I want to use, in the documentation, modules from other packages, e.g. picos_stdio , even though there is no transitive dependency between those packages (that is actually the magic juice of the whole thing - that these things interoperate without depending on each other - and the main reason this whole thing even exists).
I can do that easily with the dune mdx stanza (I just specify the libraries used), but how do I provide links for the reader of the documentation?
odoc-config.sexp
in <opam root>/doc/pkgname/
Odoc 3:
General work:
Odoc 3:
General work:
https://hackmd.io/dzznXP17Tj-ybUbuxdKwPw
(taken from linked page above, copied here for convenience)
-P
with driver-generated names.-P
/-L
to generate a not clickable breadcrumbs with "Lib: <library name>
"Package: <package name> >> Lib: <library name> >>
?"Top" >>
at the beginning for odoc driver/dune docs/odig/Jane Street usecases? Not for now?! If we do it, it should depends on options passed to the html driver.--current-package
to have Package: <package name>
for package landing page and library lists.--current-package
and maybe -L
or --current-lib
to have Package: <package name> >> Library: <libname>
for library landing page.Odoc 3:
General work:
][
in code//
references)compile-impl
Paul-Elliot has written up some suggestions: https://hackmd.io/ETSOAmetTI-E3vrDk3Bfrw
Problem:
module Foo : struct
type t
module type Bar = sig
(** Reference to {!t} *)
end
end
module Baz : Foo.Bar
Currently as references are resolved only at link time, the reference in Bar
won't resolve inside the expansion in Baz
.
To fix this, I think we need to be resolving references more like paths, at compile time. For example, in the above, we'd resolve {!t}
during the compilation of Bar. At the point we then expand Baz
, we'd look up Foo
in the environment, which at that point would contain the compiled signature for Foo
(and so Foo.Bar
as well).
However: what do we do with forward references? e.g.:
module Foo : struct
module type Bar = sig
(** Reference to {!t} *)
end
type t
end
module Baz : Foo.Bar
I don't think I entirely got where this metadata block is supposed to be and what exactly has to be mentioned. But it's likely that if I'm making references on other packages I don't want to repeat that information in every mld document. Shouldn't this simply contain toc for .mld pages and the other field rather live in a global metadata file, e.g. at the root of odoc-pages, or even, in META files (which are extensible) ?
As a driver author I don't want to parse this metadata block. If the driver will need that info odoc should be able to extract it for me in a simple from like e.g. we have for deps (I don't mind lines based, json or sexp).
I'm wondering if, rather than installing .mld we should not start installing some form of compiled, say .mldt, files, this could help for example with issue
Warnings to unresolved references make odoc unusable #1120
I'm not sure I fully understood the discussion about libraries and bread crumbs. But just bear in mind that most of the time having people go through index page -> library page -> module is going to be horribly clicky and unsusable1. In 95% of the cases it will be more than enough to have one section per library on the package landing page with and their module indexes here. Here are a few examples of what I consider reasonably usable landing pages brr, webs, zipc, bytesrw.
Before:
{!/pkgname/something}
{!//this/is/my/root}
After "Now, ":" is used to separate the named root from the actual path":
Rule is :
- There is a / -> path
- There is no / -> local search
- There is a "pkgname:" -> do the resolving inside pkgname
- There is no ":" -> same as "yourpkg:"
{!pkgname:page-global}
{!pkgname:/path/page-local}
{!/this/is/my/root}
{!pkgname:foo} -> local search within package
## Ordering of work
Figures vs images
https://hackmd.io/08MIstgdRWOLVlLFFJJEvQ
Agreed on slightly lighter syntax
Images/Videos/Audio always block elements
Remove the 'href' bit
Agreement that being able to consume standalone gfm pages is a good thing.
Could possibly lint for markdown-ish comments?
Argument against - adding links to API docs from gfm pages will be annoying
[link](odoc:module-Foo.type-bar)
[link][!module-Foo.type-bar]
[!module-Foo.type-bar]
Use 'full' reference syntax rather than 'asset path'
cmarkit comes with a ocaml 4.14 lower bound, and we're happy with that for odoc, helps with maintenance!
2.4 will probably live on for a while with critical bug fixes only, and retain the lower bound of 4.02
Let's try this:
(* *)
first, and if it's too annoying let's do this:
`{@comment[
]}
`
https://hackmd.io/08MIstgdRWOLVlLFFJJEvQ
-
and .
)https://hackmd.io/c6u6V9NORH6c3K_DyR3NVg
Current direction is to support handling of markdown files and nothing else (yet).
The use of cmarkit is being trialled, and this is bringing some constraints on the version of ocaml supported (cmarkit currently requires ocaml >= 4.14)
Paul-elliot to do some more investigation
Wait for https://github.com/ocaml/ocaml/pull/13001 which might make API changes to OCaml's shapes.
odoc:module-Foo
or similar{!toc ... }
directives in index.mld){{0 Short title}Longer title can go here}
)md
/mdx
files? See Daniel's PRHints of some unexpected output differences with 2.3.1 maybe? Will investigate and report back
module type of
fixes progressHow to reference a module in a package?
Can't do just page-pkg.module-A as this isn't the hierarchy that ocaml.org uses
Perhpas the sidebad for navigation might help?
Handle differences in sig_class for OCaml 5.1. (to master branch)
Doc: parent-child convention for installed packages
Move the sidebar to be stuck to left of the content
Collect occurrences information
HTML: Match rendering of polymorphic variant with normal variants
Preformatted elements fallback to UA monospace
Include missing preformatted text elements
Remove expansion from "unexpanded" module type of
Fix references to extension declarations
Fix rendering of references to label
Allow to omit parent type in constructor reference
Don't release 2.3 until we have reliable anchors
Release 2.2.1 with OCaml 5.1 compat ASAP
Probably do need the location map from the shapes for the feature.
Dune rules PR sent: https://github.com/ocaml/dune/pull/7840
Tables PR merged: https://github.com/ocaml/odoc/pull/893
when processing cmt files, we sometimes get hidden types that dnt go through the canonical aliases. We could try to keep track of moule aliases so we can have another go at finding a non-hidden path for a resolved hidden path.
@jonludlam
@emile
Discussed the difficulty of searching within module aliases, as these are not expanded by odoc
Sherlodoc prototype:
https://github.com/EmileTrotignon/odoc/commit/7320faa82780f2cab7acd308cccc5aa0352318a3
https://github.com/art-w/sherlodoc/commit/f7765ff2e2efc7f0ffde79fa115d501c5371221e
@jonludlam
@julow
@sabine
@panglesd
@lubegasimon
@lukemaurer
Metadata came up during the discussions about tables. @jonludlam wanted a more generic way to declare metadata rather than coming up with a new mechanism every time we need something.
We have metadata! @-tags!
ocamldoc has extensible @-tags! https://v2.ocaml.org/manual/ocamldoc.html#sss%3Aocamldoc-custom-tags
Looks to me like they're 'block' tags, ie, can only come at the end of a block of text. ie:
type ocamldoc_tag =
...
| `Custom of string * nestable_block_element with_location list
so perhaps not so good for alignment, where you want to have alignment at the start of the contents of the tag?
Suggestion: @foo{ blah blah }
to delimit the content?
Concretely, for tables, we could do:
{td @meta{left} hello}
`Tag (`CustomTag ("meta", [`Paragraph (`Word "left")]))
alternatively:
{td @left hello}
`Tag (`Custom ("left", [`Paragraph (`Word "hello")])) :: []
`Tag `Left :: `Paragraph (`Word "hello") :: []
Suggestions from julow:
How about explicitly attaching to the tags:
{{!ref}markup}
{{td attr=value} ...}
avoids the problem of the scope of the tag being not obvious.
Tags become attributes that can be used for future syntaxes (eg. images).
Code blocks are currently:
{@ocaml[
...code here...
]}
this is annoying when your code has ]}
in it! e.g.:
{@ocaml[
type t = {x:int list}
let v = {x=[1;2;3]}
]}
solution - similar to custom string delimiters in OCaml - let s = {hi| "|} |hi}
:
{foo@ocaml[
type t = {x:int list}
let v = {x=[1;2;3]}
]foo}
can then also have the metadata:
{foo@ocaml env=e1 nondeterministic[
]foo}
mdx now supports mld files
mdx has always had a problem putting errors in:
{[
|let x = {
]}
becomes:
{[
let x = {
]}```mdx-error
Line 2, characters 1-3:
Error: Syntax error
```
and then mdx fails to parse the updated file!
File "_none_", line 64, characters 2-14:
Paragraph should begin on its own line.
Need a way to put an error in in such a way that we can take it out again when the problem is fixed!
Additional thoughts: Did an experiment with mdx where we could output more interesting stuff than just text, e.g. images/tables/math/etc. Similar problem, need to be able to associate the output with the input so when the output changes we know what to delete.
Solution: delimited custom tags :-)
{@ocaml[
let x = {
]}
@output{
{@mdx-error[
Line 2, characters 1-3:
Error: Syntax error
]}
}
Probably best to go with plan A - extend the code block with the output:
{delim@ocaml env=e1[ ...code... ]@delim@[ ...results... ]@}
[@@hidden]
attributeexperimenting with json output
todo: sabine/paul-elliot to put quick-n-dirty identifier list into voodoo.
@jonludlam
@panglesd
@lukemaurer
@jonludlam, @julow, @gpetiot, @lukemaurer, @panglesd
@jonludlam @lukemaurer @panglesd @gpetiot
Issue with source parents:
-I foo --parent page-bar
Question to answer: Why didn't we specify by filename in the first place?
Solutions:
Backup plan:
New release 2.2 almost there, 1 bug found last minute
Delayed working coming after 2.2
Transparent ascription work on hold until JS is on 4.14
source rendering
There was some discussion on discuss: https://discuss.ocaml.org/t/outreachy-december-2022/10336
Which mentioned the math syntax PR. I'd like to follow up the math PR with some more missing syntax. What follows is a not-deeply-considered-yet starting point for discussion:
Possibilities:
Path to image taken to be the same as the parent page of the topmost module. Need alt text?
body of the image starts with [a-z]+:
so it's treated as a URL (?)
No idea about syntax yet
We have markup for source:
{@ocaml[ ]}
and a PR to ocaml-mdx
to evaluate these. It might be nice to have a results
section too:
{@ocaml[ print_endline "Hello, world" ]@result[ Hello, world! ]}
which mdx could then correct as necessary, or print error messages?
Delayed branch: https://github.com/ocaml/odoc/compare/master…jonludlam:odoc:wip-memory2
Next test probably should be an LRU cache of top-level modules, and to avoid memoising of lookups of top-level modules.
alias chain shortcut - it should be possible to correctly skip to the end of a chain of aliases when finding expansions
Delayed improvements - needs more work
Thursday September 8th?
Several PRs made, some reviewed and merged, some still under review, 1 more to come
handle comments on class constraint and inherit
v3 html
math support
tried to push through the Delayed
changes
Backed out the hash-consing work
tools.ml
Coalesced expand_tools.ml
into tools.ml
Overall picture, a bit disappointing on all but the pathological cases.
include sig ... end
were handled by simply inlining the contents. This is incorrect in the presence of shadowed items.The above has all been tested, there's currently still an issue with the include sig ... end
fix, which I'd like to fix before making the PR.
Further (untested) optimisation in progress:
v3 html PR
shadowing bugfix
@julow's PR on class inherit and constraint
@jonludlam to be working less on odoc
CI problems - cmdliner / dune / opam lint
Fix for overly aggressive optimisation
math odoc-parser PR given gentle prod, updated since
deprecated/alert tags PR merged
Improved layout for datatypes
markdown?
v3 - style output
deprecation of ocamldoc
Most items merged. Missing:
I've been experimenting a little with support for inlining expansions in their parent page: https://github.com/ocaml/odoc/issues/564.
I have implemented an inlining supporting both the summary and the inlined expansion, via a foldable item: see here for a version of Base docs where everything is inlined. (The expansion page is kept even when inlined)
However, I'm a little bit concerned about giving the authors the ability to (foldably) inline without constraint: some will use it all the time, other will never use it, and that might confuse the reader.
I came up with the following idea (see here for the Base docs compiled with this solution):
Additional information:
open
now rendered (as floating comments) (@panglesd) (https://github.com/ocaml/odoc/pull/797)Proposal from @panglesd:
"Do you think that having modules both:
in a dedicated page,
inlined in the parent page, with the inlining hidden by default, but "unfoldable" in a similar way include can be folded and unfolded.
This way, no links are broken (they always refer to the dedicated page), and the decision of how to read the doc is up to the reader.
The problem I see with that is that clicking on a link in the inlined module would link to the dedicated page."
Project here: https://github.com/ocaml/odoc/projects/5
Anything missing from this release? Support for language tags and mdx metadata in code blocks?
Tags for multicore safety - @octachron to find some examples
Project here: https://github.com/ocaml/odoc/projects/7
Main items:
There is an 'odoc-dev' team whose membership is:
and 'external contributors':
Notable, @drup is missing
ie. {1 Heading}
can be referenced by {!heading}
- should this work? (vs {1:anchor Heading}
and {!anchor}
)?
Question has arisen in the context of warning about linking to ambiguous labels.
Issues tracked here: https://github.com/ocaml/odoc/projects/6
Issues tracked here: https://github.com/ocaml/odoc/projects/5
https://github.com/ocaml/odoc/issues/750
Issue is that when making an expansion, all references are resolved in the context of that expansion rather than the original definition site. Therefore all references to things outside of the expansion currently need to be fully qualified to ensure they point to the intended place. Example:
https://github.com/ocaml/ocaml/blob/45612f14afc1abaa19d8585ec1f48c3cbbfbc652/stdlib/map.mli#L242
Possible solutions:
Resolve references in expansions in the context of their original definition point (ie, fix the problem)
Require references resolved in expansions to be either resolved to a point within the expansion or to be fully qualified (ie, detect the problem)
Make references more like paths in the loader - resolve the identifier at the bottom of the reference.
also might have to resolve root modules later as well
Issues tracked here: https://github.com/ocaml/odoc/projects/6
Issues tracked here: https://github.com/ocaml/odoc/projects/5
bugs found, 2.0.1 to be released when they're fixed
need to avoid merging anything but bugfixes for a bit, to avoid having to branch
need to have an index.mld file of some sort!
2.0.0 released! Announcement made on discuss.ocaml.org
Project board made to track issues, started to populate it:
https://github.com/ocaml/odoc/projects/5
Intended to be a (much) smaller release (~3 months?)
Main features:
Outreachy project has been submitted, waiting for applicants now. Project text:
"Create a tool to show differences in the output of odoc.
Odoc is a documentation generator for OCaml code. It works by analysing the compilation artefacts of a library, extracting specially formatted documentation comments and producing output in a variety of formats, most commonly HTML.
The recent refresh of the OCaml website has included a goal of producing documentation for all versions of all packages, which has involved creating a CI pipeline that runs odoc on all packages it can compile. The output of this effort can be seen on the documentation tabs of the packages available on https://v3.ocaml.org/packages.
This project is to produce a tool to work on the output of this pipeline primarily to find differences between different versions of the same package. The tool will be built as a library with a command-line interface in the first instance. This will eventually be used to highlight differences between versions in the OCaml website, and thus a stretch goal is to begin the design and integration of this tool into the website."
--generate-links
option to enable rendering of links in markdown. (links are disabled by default)end
keyword was treated as not part of source code rather plain text, but it's now treated right, and indented right for submodulesMarkup
and the rest of module content by making t abstract. (Thanks Jules for the suggestion)1.
rather that 1)
because the former is a known convention. (Thanks Gabriel for the suggestion)Generally the markdown generator is still a work in progess. More things being/to be worked on, following their of priority are;
labels
A more comprehensive demo of the current state is ocamlary.md
Thanks Gabriel and Jules for the review comments, more reviews and suggestions are much appreciated.
More suggestions:
 
(by @lpw25).--generate-links
option (by @lpw25)announced as part of OCaml Workshop talk
some bugs/lack of features noted, no showstoppers so far
Roadmap wiki page: https://github.com/ocaml/odoc/wiki/Roadmap
Aim to have smaller, more frequent releases
Please feel free to suggest new items for the roadmap
New item for roadmap: 'query tool' - possibly more than one new CLI tool to query odocl files, resolve references on the command line, print docs for specified items, etc
Thursday 9th September
#460 (reference driver needed) - in progress - @lubega-simon (previously @jonludlam) and #573 (docs are bad)
#685 (odoc-parser package
#692 (Aggregate "root" lookup failures) - addresses #635 (odoc too noisy on partial docsets) - merged
#693 (Fix shadowing of values and externals) - more reduction in noise! extends fix for shadowing (#648) - merged
#698 (Improvements to help tests) - to help out with the improved test infrastructure @lubegasimon is working on. - merged
#664 - Failures when resolving references are not reported - @julow assigned (part of #557)
#701 - Wrong link in table of contents due to duplicate generated name
#694 Inclusion of Google Fonts by default might create a legal hazard due to GDPR
Planning meeting next time?
For general discussion today:
vs
#565 - Long module types and types need better line breaks
Tracking of uses / rendering source code with links #567 / #566
Inlining expansions #564
@jonludlam
@Drup
@octachron
@lubega-simon
#651 (Improve tests for generators (html, man, and latex)) - @lubega-simon – PR open #665
#460 (reference driver needed) - in progress - @lubega-simon (previously @jonludlam) and #573 (docs are bad)
#685 (odoc-parser package
odoc-parser
into a separate repo (for now at least) - stems from continued difficulties with testing. Proposal: github.com/ocaml-doc/odoc-parser#692 (Aggregate "root" lookup failures) - addresses #635 (odoc too noisy on partial docsets)
#693 (Fix shadowing of values and externals) - more reduction in noise! extends fix for shadowing (#648)
#698 (Improvements to help tests) - to help out with the improved test infrastructure @lubegasimon is working on.
#664 - Failures when resolving references are not reported - @julow assigned (part of #557)
#650 (Need ModuleType 'aliases') - @jonludlam
@jonludlam
@lpw25
@octachron
@lubega-simon
@julow
#557 (Command to extract errors from odocl files) - @julow (previously @jonludlam)
#601 (Type extensions are no anchorable and should be classified as type) - @julow - PR
#651 (Improve tests for generators (html, man, and latex)) - @lubega-simon – PR open #665
#460 (reference driver needed) - in progress - @lubega-simon (previously @jonludlam) and #573 (docs are bad)
#685 (odoc-parser package) - Review comments being addressed.
#664 - Failures when resolving references are not reported - @julow assigned (part of #557)
#650 (Need ModuleType 'aliases') - @jonludlam
#635 (odoc too noisy on partial docsets) - @Julow working on it.
odoc markup!™ (roughly a superset of ocamldoc markup)
@jonludlam
@lpw25
@lubega-simon
@julow
#651 (Improve tests for generators (html, man, and latex)) - @lubega-simon – PR open #665
#557 (Command to extract errors from odocl files) - @julow (previously @jonludlam)
#648 (Warnings about ambiguous references are bogus) - PR
#460 (reference driver needed) - in progress - @lubega-simon (previously @jonludlam) and #573 (docs are bad)
#664 - Failures when resolving references are not reported - @julow assigned (part of #557)
#650 (Need ModuleType 'aliases') - @jonludlam
#601 (Type extensions are no anchorable and should be classified as type) - @julow
#635 (odoc too noisy on partial docsets) - unassigned
Parser library will now be exposed as 'odoc-parser' after discussions with Anton.
Idea: new dune rule to dump errors into a file
@jonludlam
@lubega-simon
@lpw25
#651 (Improve tests for generators (html, man, and latex)) - @lubega-simon – PR open #665
#557 (Command to extract errors from odocl files) - @julow (previously @jonludlam)
#664 - Failures when resolving references are not reported - @julow assigned (part of #557)
#650 (Need ModuleType 'aliases') - @jonludlam
#648 (Warnings about ambiguous references are bogus) - @julow
#460 (reference driver needed) - in progress - @lubega-simon (previously @jonludlam)
#573 (docs are bad) - in progress - @lubega-simon (previously @jonludlam)
#601 (Type extensions are no anchorable and should be classified as type) - @julow
PR open, includes patch to allow metadata in code blocks:
(**
{@ocaml env=f1 version>=4.06 [
(* code goes here *)
]}
*)
The PR disables all ppx_expect tests, as ppx_js_style depends upon octavius.
It would be useful to release this soon, would allow ppx_js_style to be fixed and get our tests back.
Put it into octavius.git?
Conclusion: Jon to decide
type t
module M : sig
val x : t
(** {!t} *)
type t
(** {!t} *)
val y : t
end
We are allowed to have forward references, so both references above ought to point at M.t, whereas x and y point at different types.
If we want to allow open
to allow shortening of paths (like for the Stdlib PR above), it will apply to the paths before the open.
e.g:
val v : X.t
open X
val w : t
the RHS of val v, w cannot be distinguished from the cmti (AFAIK), and the way the shortening
works currently will cause the RHS of both v
and w
to be rendered as t
Desirable?
Decision: We want to handle opens for 2.0
what about:
open X (* including a type t *)
type t
(** {!t} <- what does this resolve to? *)
maybe have a separate environment with the 'opened' modules in - search the normal one first, then the extended one
No intern this time around for odoc - 2 working on the website though.
For odoc, the candidate who showed most 'ocaml' promise (unintentionally!) did not apply. The applicants that did, through no fault of their own, had not done a lot of OCaml work in the initial contribution period. The reason was that we directed all candidates at the ocaml.org project for initial contributions as they were well set up with beginner instructions and there were more 'starter' issues.
Lessons learned. Next round starts in September/October.
@jonludlam
@lubega-simon
@avsm
@lpw25
@julow
Current we often produce docs like this:
val ok : 'a -> ('a, 'e) Stdlib.result
let's get rid of the Stdlib
here - possibly via an 'initially opened module' on the link (for references), and by fixing the canonical
handling.
#658 - Resolve some references in synopses in {!modules} lists – PR open #662
#651 (Improve tests for generators (html, man, and latex)) - @lubega-simon – PR open #665
#557 (Command to extract errors from odocl files) - @julow (previously @jonludlam)
#664 - Failures when resolving references are not reported - @julow assigned (part of #557)
#659 (Resolution bug for sections) – assigned to @julow
#650 (Need ModuleType 'aliases') - @jonludlam
#648 (Warnings about ambiguous references are bogus) - @julow
#460 (reference driver needed) - in progress - @lubega-simon (previously @jonludlam)
#573 (docs are bad) - in progress, on hold - @lubega-simon (previously @jonludlam)
#601 (Type extensions are no anchorable and should be classified as type) - @julow
https://discuss.ocaml.org/t/diataxis-documentation-structure/7750/22
ACTION: @jonludlam to reply to the thread
Current state: http://193.193.115.46:8000/packages/
@jonludlam
@julow
@lpw25
@lukemaurer
@Drup
@lubega-simon
#664 - Failures when resolving references are not reported - @julow assigned (part of #557)
#666 - Initial stop comment hinders output - Proposal: not for 2.0
#658 - Don't resolve references in synopses in {!modules} lists – PR open #662
#650 (Need ModuleType 'aliases') - @jonludlam
#648 (Warnings about ambiguous references are bogus) - @julow
#651 (Improve tests for generators (html, man, and latex)) - @lubega-simon – PR open #665
#460 (reference driver needed) - in progress - @lubega-simon (previously @jonludlam)
#573 (docs are bad) - in progress, on hold - @lubega-simon (previously @jonludlam)
#557 (Command to extract errors from odocl files) - @julow (previously @jonludlam)
#601 (Type extensions are no anchorable and should be classified as type) - @julow