nixos doc: add modules meta-attributes (#18078)

authored by

Eric Sagnes and committed by
Robin Gloster
aa8e663b da6e81ff

+63
+62
nixos/doc/manual/development/meta-attributes.xml
··· 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>
+1
nixos/doc/manual/development/writing-modules.xml
··· 177 177 178 178 <xi:include href="option-declarations.xml" /> 179 179 <xi:include href="option-def.xml" /> 180 + <xi:include href="meta-attributes.xml" /> 180 181 181 182 </chapter>