# \[ANN\] odoc 3.2.1 release

**URL:** https://discuss.ocaml.org/t/ann-odoc-3-2-1-release/18088
**Category:** Community
**Tags:** announce
**Created:** [May 12, 2026, 2:12pm UTC](https://discuss.ocaml.org/t/ann-odoc-3-2-1-release/18088 "2026-05-12T14:12:54Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![jonludlam](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/jonludlam/32/101_2.png) [@jonludlam](https://discuss.ocaml.org/u/jonludlam)
#### Post date: [May 12, 2026, 2:12pm UTC](https://discuss.ocaml.org/t/ann-odoc-3-2-1-release/18088/1 "2026-05-12T14:12:55Z")

</div>

The odoc team is pleased to announce the release of odoc 3.2.1!

## Highlights

### OCaml 5.5.0 support

odoc now compiles against, and produces documentation for, OCaml 5.5.0 (@panglesd, @xvw, [#1406](https://github.com/ocaml/odoc/issues/1406)).

### OxCaml support

odoc now supports OxCaml natively, thanks to @lukemaurer and @art-w ([#1399](https://github.com/ocaml/odoc/issues/1399)). Right now this is very bare-bones, but full support for the various features of OxCaml is already in progress. If you’re interested, check out the [PRs](https://github.com/ocaml/odoc/pulls)!

One thing worth flagging: because OxCaml is moving much faster than upstream OCaml, each odoc release will likely support only a single OxCaml release, in contrast to our usual policy of supporting every OCaml back to 4.08. If you’re documenting an OxCaml project, please use a matched pair of odoc and oxcaml-compiler.

## Added

- Persistent LaTeX macros in the HTML/KaTeX backend (@dlesbre, [#1391](https://github.com/ocaml/odoc/issues/1391)).
- The `markdown-generate` command now accepts multiple `.odocl` files in a single invocation, so you no longer need to wrap it in a shell loop (@davesnx, [#1387](https://github.com/ocaml/odoc/issues/1387)).

## Changed / Fixed

- Fixed two long-standing compile-time crashes, [#930](https://github.com/ocaml/odoc/issues/930) and #1385 (@jonludlam, [#1400](https://github.com/ocaml/odoc/issues/1400)).
- The Markdown backend now assumes `ocaml` as the language id on declarations, and collects code snippets into a single block with comments rather than splitting variants/records per constructor/field.
- URL remapping now works correctly for page references (@jonludlam, [#1395](https://github.com/ocaml/odoc/issues/1395)).
- Incremental builds no longer break under the conditions described in [#1396](https://github.com/ocaml/odoc/issues/1396) (@jonludlam, [#1402](https://github.com/ocaml/odoc/issues/1402)).
- `--warn-error` now reliably promotes all warnings to errors (@jonludlam, [#1402](https://github.com/ocaml/odoc/issues/1402)).
- Polymorphic arguments are no longer missing their parentheses (@art-w, [#1404](https://github.com/ocaml/odoc/issues/1404)).
- Fixed a regression that broke docs for packages depending on `base `under OCaml 5.5.0 (@jonludlam, [#1426](https://github.com/ocaml/odoc/issues/1426), [#1427](https://github.com/ocaml/odoc/issues/1427)).
- Fixed a regression that broke docs for packages depending on `merlin-lib` (@jonludlam, [#1429](https://github.com/ocaml/odoc/issues/1429), [#1430](https://github.com/ocaml/odoc/issues/1430)).

## Installation

```auto
opam update
opam install odoc

```

## Use

Please use [odoc\_driver](https://ocaml.github.io/odoc/odoc-driver/index.html) to build and test your package’s docs locally and to see how they will look on [ocaml.org](http://ocaml.org).

Odig and Dune continue to work as before, no changes required. Full support for all of the features of odoc 3.x is being worked on in Dune.

## Thanks

Thanks to everyone who contributed code, reviews, bug reports, and testing for this release: @art-w, @davesnx, @dlesbre, @jonludlam, @lukemaurer, @panglesd, and @xvw, and anyone else I’ve forgotten!

As always, please report any issues on [github](https://github.com/ocaml/odoc/issues).

---

_[View the full topic](https://discuss.ocaml.org/t/ann-odoc-3-2-1-release/18088)._
