01/08/2024 15:03, Juraj Linkeš:
> On 30. 7. 2024 15:51, Thomas Monjalon wrote:
> > 12/07/2024 10:57, Juraj Linkeš:
> >> The tool used to generate DTS API docs is Sphinx, which is already in
> >> use in DPDK. The same configuration is used to preserve style with one
> >> DTS-specific configuration (so that the DPDK docs are unchanged) that
> >> modifies how the sidebar displays the content.
> > 
> > What is changed in the sidebar?
> > 
> 
> These are the two changes:
> html_theme_options = {
>      'collapse_navigation': False,
>      'navigation_depth': -1,
> }
> 
> The first allows you to explore the structure without needing to enter 
> any specific section - it puts the + at each section so everything is 
> expandable.
> The second just means that each section can be fully expanded (there's 
> no limit).

OK interesting, you may add a comment # unlimited depth


> >> +# A local reference must be relative to the main index.html page
> >> +# The path below can't be taken from the DTS meson file as that would
> >> +# require recursive subdir traversal (doc, dts, then doc again)
> > 
> > This comment is really obscure.
> 
> I guess it is. I just wanted to explain that there's not way to do this 
> without spelling out the path this way. At least I didn't find a way.
> Should I remove the comment or reword it?

May be removed I think.

> >> +cdata.set('DTS_API_MAIN_PAGE', join_paths('..', 'dts', 'html', 
> >> 'index.html'))
> > 
> > Oh I think I get it:
> >     - DTS_API_MAIN_PAGE is the Meson variable
> >     - dts_api_main_page is the Doxygen variable
> > 
> 
> Yes, this is a way to make it work. Maybe there's something else (I'm 
> not that familiar with Doxygen), but from what I can tell, there wasn't 
> a command line option that would set a variable (passing the path form 
> Meson to Doxygen) and nothing else I found worked.
> 
> Is this solution ok? If we want to explore something else, is there 
> someone with more experience with Doxygen who could help?

Yes it's OK like that.


> >> +dts_root = environ.get('DTS_ROOT')
> > 
> > Why does it need to be passed as an environment variable?
> > Isn't it a fixed absolute path?
> 
> The path to DTS needs to be passed in some way (and added to sys.path) 
> so that Sphinx knows where the sources are in order to import them.
> 
> Do you want us to not pass the path, but just hardcode it here? I didn't 
> really think about that, maybe that could work.

I think hardcode is better here.


> >> +To build DTS API docs, install the dependencies with Poetry, then enter 
> >> its shell:
> > 
> > I don't plan to use Poetry on my machine.
> > Can we simply describe the dependencies even if the versions are not 
> > specified?
> 
> The reason we don't list the dependencies anywhere is that doing it with 
> Poetry is much easier (and a bit safer, as Poetry is going to install 
> tested versions).
> 
> But I can add references to the two relevant sections of 
> dts/pyproject.toml which contain the dependencies with a note that they 
> can be installed with pip (and I guess that would be another 
> dependency), but at that point it's that not much different than using 
> Poetry.

I want to use my system package manager.
I am from this old school thinking we should have a single package manager in a 
system.

> >> +.. code-block:: console
> >> +
> >> +   poetry install --no-root --with docs
> >> +   poetry shell
> >> +
> >> +The documentation is built using the standard DPDK build system.
> >> +After executing the meson command and entering Poetry's shell, build the 
> >> documentation with:
> >> +
> >> +.. code-block:: console
> >> +
> >> +   ninja -C build dts-doc
> > 
> > Don't we rely on the Meson option "enable_docs"?
> 
> I had a discussion about this with Bruce, but I can't find it anywhere, 
> so here's what I remember:
> 1. We didn't want to tie the dts api doc build to dpdk doc build because 
> of the dependencies.

Sure
But we could just skip if dependencies are not met?

> 2. There's a way to build docs without the enable_docs option (running 
> ninja with the target), which is what we added for dts. This doesn't tie 
> the dts api doc build to the dpdk doc build.

Yes

> 3. We had an "enable_dts_docs" Meson option in the past (to keep it 
> separate from dpdk doc build), but decided to drop it. My memory is hazy 
> on this, but I think it was, again, because of the additional steps 
> needed to bring up the dependency (poetry shell) - at that point, 
> supporting just the ninja build way is sufficient. Bruce may shed more 
> light on this.


> >> +   Make sure to fix any Sphinx warnings when adding or updating 
> >> docstrings,
> >> +   and also run the ``devtools/dts-check-format.sh`` script and address 
> >> any issues it finds.
> > 
> > It looks like something to write in the contributing guide.
> > 
> 
> I could add it there, where is the right place? In patches.rst, section 
> "Checking the Patches"?

Yes


Reply via email to