documentation icon indicating copy to clipboard operation
documentation copied to clipboard

Version Picker Issues on Dev Manual

Open Bibo-Joshi opened this issue 2 months ago • 1 comments

Hi there,

I've noticed some confusing behavior of the version picker in the lower left corner of the dev manual.

  • clicking on any link to the dev maunal on https://docs.nextcloud.com/ will open the desired version, but the version picker in the lower left corner will always say "latest" independent of the actual version. the only way to check which version you're currently reading is checking the URL. This is my main source of confusion
  • In the version picker, only the last few versions are available, never the complete history back to version 12. This may not be critical, but it's still surprising IMO.
  • the stable version is available only as stable in the version picker, not through the explicit version number. At the time of writing the issue that means: In the version picker, I see latest, stable, 31, 30, 29, but not 32. Replacing stable with 32 in the url does work, however. This, too, might not be too bad at first glance, but makes permalinking harder and IMO can also make it less transparent what stable refers to

What I already saw is that you build the dev manual with sphinx, but didn't quite understand the configuration and how the hosting is done. In this workflow builds are run, but uploads only go to artifact-storage, no actual deployment IISC. In the sphinx config, I found

https://github.com/nextcloud/documentation/blob/96a9c541be91db2f777d90a2ba96dc290e149ccd/developer_manual/conf.py#L66-L70

which looks a bit surprising to me. The available versions apparently are defined at

https://github.com/nextcloud/documentation/blob/96a9c541be91db2f777d90a2ba96dc290e149ccd/conf.py#L50-L65

so my points 2 & 3 would likely be relatively easy to address. If you agree with my suggestions, then I'd be happy to send a PR for that. I couldn't find anything about point 1 though. If you have pointers on what'd need to be addressed, I'd also be happy to PR.

Looking forward to your reply.

Best Hinrich

PS: I chose the "blank issue" rather than the "Documentation Improvement" issue template as this is more of a meta/configuration-bug, not about the actual content. If you prefer to have the issue in the template, I'm happy to re-create.

Bibo-Joshi avatar Oct 28 '25 11:10 Bibo-Joshi

I agree—these issues annoy me too! And they impact all the manuals (dev, admin, user) essentially similarly. šŸ˜‚

I think your suspicions are ā€œin the ballparkā€ (though I might be wrong as well!).

There are likely various possible solutions.

When I've looked a bit, the challenges tend to pop up in three areas:

  • URL building/mapping

  • Cross-branch matters[^1]

    • Builds and deploys for different manual versions happen from within the context of the relevant branch (or version).
    • i.e. configuration differences, like static version ranges/mapping embedded in conf.py.
  • Static docs

    • The distributed HTML docs (effectively static artifacts, either embedded within Nextcloud or distributed separately) may have a different perspective on what is ā€œlatest,ā€ compared to the live website.
    • Same goes for PDF documentation.

(I'm personally less concerned about this last one.)

P.S. These matters overall are (presumably) mingled in with a roadblock I recently encountered while trying to automatically have the end-of-support banner appear on older branches as they age out.


[^1]: The way docs for different release trees are managed and built interacts with conf.py's perspective in each build context. For example, the master branch always represents whatever is truly latest. Builds from that branch are considered ā€œlatestā€ (at build time). In contrast, the stable32 branch represents the most recent iteration of the v32 manual—but at build time, the context doesn’t inherently ā€œknowā€ that it’s not the latest for v32. :)

joshtrichards avatar Nov 28 '25 07:11 joshtrichards