1<section xmlns="http://docbook.org/ns/docbook"
2 xmlns:xlink="http://www.w3.org/1999/xlink"
3 xmlns:xi="http://www.w3.org/2001/XInclude"
4 version="5.0"
5 xml:id="sec-meta-attributes">
6
7<title>Meta Attributes</title>
8
9<para>Like Nix packages, NixOS modules can declare meta-attributes to provide
10 extra information. Module meta attributes are defined in the
11 <filename
12 xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/misc/meta.nix">meta.nix</filename>
13 special module.</para>
14
15<para><literal>meta</literal> is a top level attribute like
16 <literal>options</literal> and <literal>config</literal>. Available
17 meta-attributes are <literal>maintainers</literal> and
18 <literal>doc</literal>.</para>
19
20<para>Each of the meta-attributes must be defined at most once per module
21 file.</para>
22
23<programlisting>
24{ config, lib, pkgs, ... }:
25{
26 options = {
27 ...
28 };
29
30 config = {
31 ...
32 };
33
34 meta = {
35 maintainers = with lib.maintainers; [ ericsagnes ]; <co
36 xml:id='modules-meta-1' />
37 doc = ./default.xml; <co xml:id='modules-meta-2' />
38 };
39}
40</programlisting>
41
42<calloutlist>
43 <callout arearefs='modules-meta-1'>
44 <para>
45 <varname>maintainers</varname> contains a list of the module maintainers.
46 </para>
47 </callout>
48
49 <callout arearefs='modules-meta-2'>
50 <para>
51 <varname>doc</varname> points to a valid DocBook file containing the module
52 documentation. Its contents is automatically added to <xref
53 linkend="ch-configuration"/>.
54 Changes to a module documentation have to be checked to not break
55 building the NixOS manual:
56 </para>
57 <programlisting>$ nix-build nixos/release.nix -A manual</programlisting>
58 </callout>
59
60</calloutlist>
61
62</section>