git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Documentation/CodingGuidelines: How to document new APIs

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 28, 2018, 16:50 UTC
Message-ID
<xmqq5zypefcp.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20180928011129.GD11281@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 25 quoted lines
> On Thu, Sep 27, 2018 at 04:27:32PM -0700, Jonathan Nieder wrote:
>
>> > There are different opinions on how to document an API properly.
>> > Discussion turns out nobody disagrees with documenting new APIs on the
>> > function level in the header file and high level concepts in
>> > Documentation/technical, so let's state that in the guidelines.
>> 
>> I disagree with this.  I think we should put all the API docs in the
>> header file, like we're already doing in e.g. strbuf.h.
>
> Me too.
>
> I think other high-level concepts that are _not_ APIs (e.g., file
> formats, protocol, etc) could go into technical/.
>
> (Though actually, those are the thing that I would not mind at all if
> they get formatted into real manpages and shipped to end users. We do
> not expect most users to dissect our file-formats, but they could at
> least be useful to somebody poking around).
>
>> Do you have a link to where in the discussion this split-docs strategy
>> was decided?
>
> I think the purpose of this patch is to spur people towards a decision.
> :)
OK.
-- >8 --
Subject: CodingGuidelines: document the API in *.h files

It makes it harder to let the API description and the reality drift apart if the doc is kept close to the implementation or the header of the API. We have been slowly migrating API docs out of the Documentation/technical/api-* to *.h files, and the development community generally considers that how inline docs in strbuf.h is done the best current practice.

We recommend documenting in the header over documenting near the implementation to encourage people to write the docs that are readable without peeking at the implemention.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 Documentation/CodingGuidelines | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index 6d265327c9..e87090c849 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -385,7 +385,11 @@ For C programs:
    string_list for sorted string lists, a hash map (mapping struct
    objects) named "struct decorate", amongst other things.
 
- - When you come up with an API, document it.
+ - When you come up with an API, document it the functions and the
+   structures in the header file that exposes the API to its callers.
+   Use what is in "strbuf.h" as a model to decide the appropriate tone
+   in which the description is given, and the level of details to put
+   in the description.
 
  - The first #include in C files, except in platform specific compat/
    implementations, must be either "git-compat-util.h", "cache.h" or
Previous: Jeff KingNext: Stefan Beller
Message 32 of 51 in “[PATCHv3 0/8] fetch: make sure submodule oids are fetched”
  1. Stefan BellerSep 21, 2018
  2. 1/8 sha1-array: provide oid_array_filterStefan Beller, Sep 21, 2018
  3. Ævar Arnfjörð BjarmasonSep 22, 2018
  4. Stefan BellerSep 25, 2018
  5. Jeff KingSep 26, 2018
  6. Junio C HamanoSep 26, 2018
  7. Ævar Arnfjörð BjarmasonSep 26, 2018
  8. Junio C HamanoSep 26, 2018
  9. Jeff KingSep 26, 2018
  10. Ævar Arnfjörð BjarmasonSep 26, 2018
  11. Jeff KingSep 26, 2018
  12. Stefan BellerSep 26, 2018
  13. Junio C HamanoSep 26, 2018
  14. Stefan BellerSep 26, 2018
  15. Junio C HamanoSep 26, 2018
  16. Jeff KingSep 26, 2018
  17. Stefan BellerSep 26, 2018
  18. On shipping more of our technical docs as manpagesÆvar Arnfjörð Bjarmason, Sep 26, 2018
  19. Junio C HamanoSep 26, 2018
  20. Stefan BellerSep 26, 2018
  21. Ævar Arnfjörð BjarmasonSep 27, 2018
  22. Jeff KingSep 27, 2018
  23. Jonathan NiederSep 27, 2018
  24. Jeff KingSep 27, 2018
  25. Junio C HamanoSep 27, 2018
  26. Jeff KingSep 27, 2018
  27. Documentation/CodingGuidelines: How to document new APIsStefan Beller, Sep 27, 2018
  28. Junio C HamanoSep 27, 2018
  29. Ævar Arnfjörð BjarmasonSep 27, 2018
  30. Jonathan NiederSep 27, 2018
  31. Jeff KingSep 28, 2018
  32. Junio C HamanoSep 28, 2018
  33. strbuf.h: format according to coding guidelinesStefan Beller, Sep 28, 2018
  34. Junio C HamanoSep 28, 2018
  35. Junio C HamanoSep 28, 2018
  36. Junio C HamanoSep 28, 2018
  37. Jeff KingSep 29, 2018
  38. Junio C HamanoSep 28, 2018
  39. Stefan BellerSep 28, 2018
  40. Martin ÅgrenSep 28, 2018
  41. Jeff KingSep 29, 2018
  42. Stefan BellerSep 28, 2018
  43. Jeff KingSep 29, 2018
  44. Jeff KingSep 27, 2018
  45. 2/8 submodule.c: fix indentationStefan Beller, Sep 21, 2018
  46. 3/8 submodule.c: sort changed_submodule_names before searching itStefan Beller, Sep 21, 2018
  47. 4/8 submodule: move global changed_submodule_names into fetch submodule structStefan Beller, Sep 21, 2018
  48. 5/8 submodule.c: do not copy around submodule listStefan Beller, Sep 21, 2018
  49. 6/8 submodule: fetch in submodules git directory instead of in worktreeStefan Beller, Sep 21, 2018
  50. 7/8 fetch: retry fetching submodules if needed objects were not fetchedStefan Beller, Sep 21, 2018
  51. 8/8 builtin/fetch: check for submodule updates for non branch fetchesStefan Beller, Sep 21, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.