···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> point to a valid docbook file containing the module
52+ documentation, its contents are automatically added to the <xref
53+ linkend="ch-configuration"/>.
54+ Changes to a module documentation must be checked to be non-breaking by
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>