Erlang/OTP documentation versions and navigation problems

I found the following odd while navigating the Erlang documentation pages:

  1. I start at https://www.erlang.org/doc . The page says Erlang/OTP version v29.0.1 (which is the latest)
  2. I click on Module Indexatomics. It still shows Erlang/OTP v29.0.1 (which makes sense, I still want the latest Erlang documentation available). However, I don’t see a function listing for the module (to reproduce this, you need to navigate from the documentation front page and go the same way I did, not click the links above directly)
  3. If I reload the atomics page, I now see erts version v17.0.1. This is confusing to me. I immediately assumed I ended up on the documentation page for Erlang 17 via a broken link, but it is actually the erts version (very misleading IMO).
    • I get that sub applications inside OTP have different versions, but most other documentation pages I know of let’s you always select the major version (so you can make sure you’re on the latest version, see e.g. Postgres). This assumption breaks here since sometimes it is the major language version shown, and sometimes the sub application version in the same dropdown.
    • That the same page URL renders differently with some menus/views missing when being navigated to versus being reloaded/visited directly is problematic (and probably a bug?)
    • I actually searched for “erlang atomics” and ended up on the erts v17 page first, which led me to believed I got old results for the Erlang 17 documentation, with no way to navigate to the Erlang 29 documentation (since the erts version dropdown only lists 17 as the highest version).

It would be nice with a consistent top-level Erlang/OTP version dropdown that is always available on the page so one can switch between Erlang releases

This is a bad interaction/bug of ExDoc using swup to make page navigation nicer and the Erlang docs having a bit of a strange layout that we did not know about. It should show 17.0.1 when you click there (as things are now any way).

Its on my todo list to fix this, but I haven’t gotten there yet. The code that does this lives here: erlang-org/_scripts/otp_flatten_ex_docs at e8177e51ba2c35066653b0b7e4c148b1f5e238b8 · erlang/erlang-org · GitHub.