gnunet-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNUnet-developers] proposal: changes to documentation


From: Florian Dold
Subject: Re: [GNUnet-developers] proposal: changes to documentation
Date: Sun, 16 Sep 2018 04:35:07 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0

I'm not the biggest fan of texinfo either, but it works.

mandoc looks like a terrible replacement, and I strongly disagree with
your proposal of switching to it.

When comparing the documentation of mandoc/mdoc

  http://mandoc.bsd.lv/man/mandoc.1.html
  http://mandoc.bsd.lv/mdoc/

to GNUnet or even the parts of GNU Taler documented in Sphinx (only used
for HTTP API docs)

  https://docs.gnunet.org/
  https://docs.taler.net/api/index.html

there are several crucial things missing in mandoc, just off the top of
my head:

1. cross-referencing inside a document
2. indices and a table of contents
3. easy navigation to other parts of the document (sidebar or
next/prev/top links)
4. the ability to include images (I disagree that our documentation is
somehow "not a real book" and should not include them)

Long-form manuals are not really what man pages are for.

There are some other reasonable alternatives to texinfo that are widely
used, such as Sphinx or gitbook, but I don't really see the benefit of
switching to them, and neither of them supports viewing docs on a
terminal nor has great output for printing.  Sphinx can actually
generate texinfo as output, so in theory it has all the same benefits,
but some people don't like the markdown-like syntax.

The tools for texinfo are widely available, arch doesn't even have a
package for mandoc.

If build failures caused by the docs are really a problem, then there
are other solutions, such as telling the build system to just warn if
docs can't be built.  For Taler, we also have a separate BB worker that
just builds the documentation and sends out emails if something is wrong
there.  As you said, it's certainly also possible to commit syntax
errors in mandoc.

- Florian

On 9/16/18 12:48 AM, Nils Gillmann wrote:
> Hi all,
> 
> I have a proposal. If this in rough shape or you have questions, ask.
> 
> Roughly: I propose to switch to mandoc for gnunet + gnunet-c-tutorial.
> This will improve handling of the documentation, impact it has on
> the project and (most importantly) give a better user experience.
> I think this change will get more documentation contributions in a
> safer way.
> 
> The Texinfo language has more grammar and more options and traps
> (than mandoc). In addition to knowing the grammar, you need to install
> Texinfo/Makeinfo to work with it. A point I liked about Texinfo was
> the ability to include images. Now I think we should aim for less -
> images are obviously left for real books.
> 
> The content of our documentation follows a scheme which can be covered
> by everything mdoc has. It has been mostly myself writing
> this.. occasional help from others and people active in other gnu
> projects. sometimes I had to tell people where to start with
> texinfo. and others I had to simply fix. the point of the whole
> HTML->LaTeX->Texinfo conversion was to make it easier to access
> documentation AND easier to write. What we do now is regularly break
> master because people write Texinfo mistakes.
> 
> We get the occasional reports. and people rarely(?) react to them -
> at all or do not notice it - and often do not fix their mistakes. I've been
> cleaning up and responding to the reports for some time. If something
> breaks because of documentation, it's also directed at myself first.
> It's my chosen responsibility to care for the documentation, and my
> impression is that mandoc/mdoc will be less difficult to handle (than
> Texinfo) for everyone.
> A mistake in a mandoc page results in no failure at build, configure
> or whatever time.
> Mistakes will still happen, but they will not break the build, they
> will not interrupt the work of everyone working on gnunet.
> 
> What about the outputs we need for online view?
>> pdf output, (static) html output (and more) are covered:
>> check 'man mandoc':
>>
>> mandoc(1):
>> ......
>>      -T output
>>              Select the output format.  Supported values for the output
>>              argument are ascii, html, the default of locale, man, markdown,
>>              pdf, ps, tree, and utf8.
> 
>>              The special -T lint mode only parses the input and produces no
>>              output.  It implies -W all and redirects parser messages, which
>>              usually appear on standard error output, to standard output.
>> ......
> 
> what about style?
>> but it looks less appealing, no idea how much you can style debman
>> (debian online manpages), archlinux online manpages, and at least
>> openbsd and others have examples.
> 
> this requires to organize the manual differently, which is what I've
> already started to do for my own project.
> 
> What about additional software to install?
>> You probably have mandoc available on debian systems (since they use
>> it for debiman).  Some GNU/Linux based systems use it as their
>> default (Archlinux, Void Linux,.. iirc).  For the display and
>> editing (as contributors) you could get away with man-db. A minimal
>> subset of groff is implemented to make groff happy.
>>
>> On the dependency level this means we stop imposing texinfo and its
>> rather large dependency chain for texinfo/makeinfo/texi2(pdf,html)
>> on potential contributors to the documentation. I write this because
>> Texinfo requires Texlive at runtime which is hard on some systems
>> due to its default monolithic size. The systems where it is served
>> in smaller pieces have figured out a way to do so against upstream.
>> So I'd really like to say: Want to get started writing documentation?
>> Just write. You need a reference of the grammar? 'man mdoc' or find
>> it online.
>> Okay, now you want to see the results in html or pdf?
>> I have good news: mandoc depends on zlib and a C compiler. You
>> might already have it.
> 
> What about generating the online formats?
>> Since we started using / are moving to GuixSD, this would also mean
>> that I can send my mandoc package to Guix or set up a repository we
>> can pull from.
> 
> Who will do this?
>> The majority of work if we move to this format can be achieved with
>> the software I have available. No one else has to do this, I'm
>> proposing this and I am executing this. I can get a good conversion
>> with texi2mdoc, followed by manual work and adjustments.
> 
> Wrapping it up: I don't want to write pages as small as the help2man
> dump^excuses we have out there. The manual is long, but I intend to
> not reduce it too much in size.
> Furthermore I will add a 'gnunet' page in the section 1 which acts
> similar to perl(1), which is (among other things) to point out where
> to go from there.
> 
> Side note: Prior to Guix, I can't remember that I ever looked at an
> info manual. I always used man. This is not just my experience, but
> a reoccuring one I hear from many people. Sometimes they don't even
> know info.
> 
> Further Reading:
>> https://www.youtube.com/watch?v=N26pBxJPMxs
>> https://mandoc.bsd.lv/
>> https://mandoc.bsd.lv/man/mdoc.7.html
> 
> _______________________________________________
> GNUnet-developers mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnunet-developers
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]