Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doxygen? #11

Closed
coppolachan opened this issue Jun 2, 2015 · 15 comments
Closed

Doxygen? #11

coppolachan opened this issue Jun 2, 2015 · 15 comments

Comments

@coppolachan
Copy link
Collaborator

What is the point of view of the developers on starting to write the doxygen annotations before the code becomes too big?
Any other suggestion about the documentation?

@paboyle
Copy link
Owner

paboyle commented Jun 2, 2015

Personally, I don't like Doxy tagging; it's the sort of thing that doubles the edit work when changing
something and repeating the parameters of a function in comments is just torture for me.

The result is that the tags are always less well maintained than the code, so out of date or missing
and I prefer to not doxy tag and simply aim for maximum clarity and readability in the code.

I think that an API definition document is smart, something in latex that is written in the style of the
present QDP++ manual makes sense. Defining how the code is supposed to behave in a way that
is not simply saying "it is the current implementation" is wise. One of the things on the "TODO" list as far as I recall. Certainly something I have promised to do for RBC.

@mspraggs
Copy link
Contributor

mspraggs commented Jun 2, 2015

I'm strongly in favour of this. The QDP++ manual is an invaluable introduction to the overall structure and design of the package, which is something that is impossible to gain by simply reading the code, and hence essential to newcomers.

@coppolachan
Copy link
Collaborator Author

A good manual is really important for the final user that want to start learning the code. No doubt, and we should definitely write.
About doxygen: I found it really useful to navigate a big code, because the definition and use of classes, variables, methods, can be scattered around. Doxygen provides the tree view, the automatic links and several other things useful to quickly jump among files/definitions. Chroma without doxygen is a nightmare to learn.

@coppolachan
Copy link
Collaborator Author

I rebump this since documentation is becoming necessary.
I remain of the view that an automatic, surfable, documentation of the code is necessary together with a thorough description a la QDP++ (which has the same issue of being up-to-date since depends on us anyway). Especially since we have so many templated classes that really needs navigation in the code to understand the full structure.

@aportelli
Copy link
Collaborator

Just wondering about this issue considering an soonish 0.6 release. Is Doxygen generation working, is there anything to do here?

@paboyle paboyle added this to the 0.6.0 milestone Aug 5, 2016
@paboyle
Copy link
Owner

paboyle commented Aug 5, 2016

we have to make sure doxygen is optional, since not every system will have doxygen
so, adding a configure flag --enable-doxygen to build the html is the best option, with a default of "off".

@coppolachan
Copy link
Collaborator Author

agree on it being optional with a flag.

Doxygen generation has not been tested but it should work as most of the code is just c++.
At least gives the surfable, uncommented, html.

@aportelli aportelli self-assigned this Aug 5, 2016
@aportelli
Copy link
Collaborator

I can take care of that.

@aportelli
Copy link
Collaborator

aportelli commented Aug 5, 2016

Hi Guido,
I managed to create something a bit nicer with Doxygen. You can now use --enable-doxygen-doc with configure to enable the HTML doc. Then make doxygen-doc build the doc. I have put that in feature/doxygen. Could you see if it is ok for you and merge it back to develop when everything is ok?

@coppolachan
Copy link
Collaborator Author

Ok, let me check. Not immediately as I'm concentrating on the hirep stuff, but in time for the 0.6 release.

@aportelli
Copy link
Collaborator

Hi Guido could you please check that the new build options for Doxygen are good for you in feature/doxygen so that I can merge it back to develop?

@coppolachan
Copy link
Collaborator Author

Few things that are not clear (compiling with clang, I have dot and doxygen in my path)

How to compile to get just the html? --enable-doxygen does not seem to work and the configure --help does not say much.

I tried --enable-doxygen-dot and --enable-doxygen-pdf too and in both cases it complains with an error like this in the config.log
configure:8020: error: doxygen-pdf requires doxygen-pdf

@aportelli
Copy link
Collaborator

Have you tried --enable-doxygen-doc as in my original instructions?

@coppolachan
Copy link
Collaborator Author

ok thanks, looks working.
Minor thing: if I modify a file the make doxygen-doc does not recognise the modification and insists that the html is up to date.

I think you can move to the develop at this stage anyway.

@aportelli aportelli modified the milestones: 0.7.0, 0.6.0 Nov 19, 2016
@aportelli
Copy link
Collaborator

Hi Guido I missed that for 0.6, I will merge it with develop and close the issue.

DanielRichtmann pushed a commit to DanielRichtmann/Grid that referenced this issue Aug 24, 2020
chillenzer pushed a commit to chillenzer/Grid that referenced this issue Nov 30, 2022
chillenzer pushed a commit to chillenzer/Grid that referenced this issue Nov 30, 2022
chillenzer pushed a commit to chillenzer/Grid that referenced this issue Nov 30, 2022
chillenzer pushed a commit to chillenzer/Grid that referenced this issue Nov 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants