devel.rst revision 99a1ad0f
1Developing lsquic
2=================
3
4Generating Tags
5---------------
6
7Over the years, we have developed a wrapper around `Universal Ctags`_
8to generate convenient tags so that, for example, ``ci_packet_in`` will
9be able to take you to any of its implementations such as
10``full_conn_ci_packet_in()``, ``evanescent_conn_ci_packet_in()``, and
11others.
12
13_Exuberant_ Ctags will work, too, but the more recent and maintained fork
14of it, the _Universal_ Ctags, is preferred.  (If you are on Ubuntu, you
15should clone Universal Ctags from GitHub and compiled it yourself.  The
16version that comes in the Ubuntu package -- at the time of this writing
17-- is so slow as to be considered broken).
18
19The wrapper is ``tools/gen-tags.pl``.  Run it in the source directory:
20
21.. highlight:: bash
22
23::
24
25    sh$ cd lsquic
26    sh$ ./tools/gen-tags.pl
27
28Maintaining Documentation
29-------------------------
30
31Documentation -- the ``*.rst`` files under ``docs/`` should be kept up-to-date
32with changes in the API in ``include/lsquic.h``.
33
34For convenience, tags for the documentation files can be generated by passing
35the ``--docs`` argument to ``tools/gen-tags.pl``.
36
37.. _`Universal Ctags`: https://ctags.io/
38