Thanks for all the feedback. I'm going to try to respond to points of critique on the guide in this mail. 2007/3/20, Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>:
But I also have a few remarks: 1) is there any need to deviate from the standard license header that looks like this: /* * Copyright 2007, Haiku ... * Distributed ... * * Authors: * ... */
My thoughts were that it should look different from the doxygen blocks. Alas, I have no problem with this format, and I think it's a good idea to adopt this one.
Also, I think the "Corresponds To" is redundant, and already determined by the name of the file and its location
The corresponds is more to keep track of changes that might happen to the code. In case some changes are made, between releases, the API docs can be kept up to date by doing SVN diffs between the revision the docs were written for and the new revision. (Of course this doesn't cover all changes, for example in servers, but at least it works like a manual check to keep the docs up to date).
2) Is there any need to enforce mirroring the header files? I mean, is it a doxygen restriction or is that something you think would make more sense? At least as long as we get warnings for missing documentation, the order shouldn't be important (even though it makes sense to follow the header, there might be useful deviations for grouping, ie. if a virtual was added and is therefore not declared in the group of functions it would be expected).
Well, the reason is that I feel it is easier to keep the docs up to date in case of changes in the headers, however, your argument for grouping is quite strong. Perhaps it should be rephrased to something like 'Mirror the order of the headers, except when you need to group members." I had a thought that it might be a good idea to group headers (and source), but I just realized that this is not always possible due to binary incompatibility if virtual members move (right?). 2007/3/20, Ingo Weinhold <bonefish@xxxxxxxxxxxxxxx>:
Personally I'm very much in favor of inline documentation (though not in the headers for obvious reasons). If for some reason a documentation becomes lengthy I don't have a problem with moving it to a separate file, but in general I'd prefer it to stay with the implementation.
There are arguments for and against inline documentation, and I don't think it's my call. I'm fine with doing the docs in separate files, I'll also be fine with doing docs inline in source. The only thing is that creating member groups in source files might prove to be a bit more dificult, since you either fysically need to rearrange the members, or you need to put the docs in another place. But that's not my call to make. I do think that we should choose one or the other. I don't want mixins of some kits being documented inline and some being done in separate files, or even that some kits have it all. (There is one argument why I really like to have separate files though, and I mention this one from experience with my investigations so far, I feel that it's best to mirror header files in separate dox files as much as possible, because headers contain all the information (enums, typedefs, etc.)) 2007/3/20, Tyler Akidau <haiku@xxxxxxxxxx>:
On 3/20/07, Tyler Akidau <haiku@xxxxxxxxxx> wrote: Some minor typos I forgot to mention: "Doxygen, the tool that we use to generate the marked up documentation with," I don't think the word "with" is entirely correct or necessary in this sentence:
No, it an mistake indeed, it's a Dutchism combined with a logic error. Fixed on my hard drive
"Every documentation file will begin with the header block. It's basically a copyright block, with a reference to the author and with the revision against which the documentaton was written." Should that say "reference to the author(s)"?
Fixed. Niels