svenevs / exhale

Automatic C++ library api documentation generation: breathe doxygen in and exhale it out.
BSD 3-Clause "New" or "Revised" License
219 stars 51 forks source link

Fixup packaging requirements #191

Closed svenevs closed 9 months ago

svenevs commented 1 year ago

followup to #179.

Rotzbua commented 1 year ago

I would currently recommend:

clalancette commented 1 year ago
* Drop sphinx 4

Please don't drop Sphinx 4. It is what is shipped in Ubuntu 22.04, and what we are using to generate our documentation with https://github.com/ros-infrastructure/rosdoc2 .

Rotzbua commented 1 year ago

@clalancette You still can use release 0.3.6, which still works with sphinx 4.

For cross OS interoperability and reproduction pip and venv should be chosen as the installation method for sphinx anyway and not the OS package repository.

Meanwhile sphinx7 is released. In my experience, supporting more than 3 versions of a dependency can quickly become a development hassle.

svenevs commented 1 year ago

We will continue to support jammy until Rosdoc updates. That project contributed heavily to exhale, but the ros ecosystem takes time to update (for good reason). While it may be old, the things exhale has to do with sphinx directly are minimal and we should be able to keep that support around.

I'm hoping to get to this tomorrow and start looking at what can be done to patch this project up for a new release.

Rotzbua commented 1 year ago

According to: https://packages.ubuntu.com/jammy/sphinx-common No support for sphinx<4.3 required.

svenevs commented 1 year ago

I haven't forgotten about this. I'll be on vacation soon and will be able to carve out some time to give this project a small facelift. Thanks for your patience, I look forward to help testing things 😅

svenevs commented 1 year ago

@clalancette could you please help me understand your minimum requirements?

I'm planning to require:

Rotzbua commented 1 year ago

sphinx>=4

There was a historical reason why I made the sphinx versions pinned to breathe releases, but I don't even remember it anymore. This project has very very little to do with sphinx directly, the breathe version will constrain as it sees fit since they're the ones emitting nodes. This project dumps the same thing regardless of the breathe version...

The early v4.0 v4.1 versions of sphinx are bugged with python3.10. https://github.com/breathe-doc/breathe/blob/42d731b67d71df05596163554d8dd6815ebe980b/.github/workflows/unit_tests.yml#L22-L30

So I would recommend to not support them, since it normally easy for users to migrate minor versions.