Commit Graph

6867 Commits

Author SHA1 Message Date
Petr Špaček
40b3ce727c Add missing link anchor for dlz search statement 2022-07-01 08:59:23 +02:00
Petr Špaček
261bdc7358 Special-case zone in-view
It is not really a zone type, so let's not generate "type in-view"
anchor for it.
2022-07-01 08:59:23 +02:00
Petr Špaček
1af157eb20 Remove extra whitespace in grammar for null statement 2022-07-01 08:59:23 +02:00
Petr Špaček
08a8acffdc Add ability to filter tables using blocks
A new syntax
.. namedconf:statementlist::
   :filter_blocks: type secondary
allows to generate tables with statements allowed within specified
blocks.
2022-07-01 08:59:23 +02:00
Petr Špaček
5c04e3c524 Sort grammar map keys while pretty printing them
It would be too easy if we could just call sorted(). Thanks to zone
grammar the most important key "type" gets sorted near end, so we pull
it up to the top using a hack.
2022-07-01 08:59:23 +02:00
Petr Špaček
0392144e99 Pretty-print grammar for zones
It turns out the tree of dictionaries is not the best structure to
represent our grammar, unfortunatelly. The problem is that "zone" has
several context-dependent variants which change meaning of "zone" based
on inner field "type".

Redesigning the whole structure does not seem to be worth, so I settled
on this terrible hack.
2022-07-01 08:59:23 +02:00
Petr Špaček
435cbb61ba Add zone definitions into the view grammar
I cannot see a reasonable way to achieve this without the hack in this
commit.
2022-07-01 08:59:23 +02:00
Petr Špaček
1f5bc4fe3b Add option to suppress grammar rendering
A new flag
.. namedconf:statement::
   :suppress_grammar:
suppresses pretty-printing grammar.

It is useful mostly for zones because each zone has it's own grammar, so
printing all of them at once usually does not make sense.
2022-07-01 08:59:23 +02:00
Petr Špaček
0bbbdc6244 Remove auto-generated rst files in repo in favour of grammar pretty printer 2022-07-01 08:59:23 +02:00
Petr Špaček
7b4ad8a3ff Warn about experimental and deprecated options 2022-07-01 08:59:23 +02:00
Petr Špaček
c6fe8970f6 Render statement's grammar
This is replacement for auto-generated *.rst files stored in the repo.
2022-07-01 08:59:23 +02:00
Petr Špaček
eba3b1ad16 Render list of blocks accepting a given statement 2022-07-01 08:59:23 +02:00
Petr Špaček
d61d998e3b Detect unsupported statement:: directives with multiple names 2022-07-01 08:59:23 +02:00
Petr Špaček
ebe6ede2ec Warn about statements not found in the grammar 2022-07-01 08:59:23 +02:00
Petr Špaček
cbad1803a5 Warn about statements in grammar not described in docs
Skip over obsolete options.
2022-07-01 08:59:22 +02:00
Petr Špaček
1c6f2c5ad1 Give Sphinx configuration domains access to grammar 2022-07-01 08:59:22 +02:00
Petr Špaček
a691ebd0c9 Add helper to unify options and zone block grammars
A helper is needed to combine cfg_test output for generic options and
all the type-dependent zone block variants.
2022-07-01 08:59:22 +02:00
Petr Špaček
190004e46c Add pretty printer for JSON grammar
It produces the same format as cfg_test --grammar. The advantage is that
it allows to print any node in configuration the tree, not just whole
blocks.
2022-07-01 08:59:22 +02:00
Petr Špaček
8960d51aa3 Add utility to search for context-dependent configuration statements
The utility detects statements which use the same name (e.g.
max-zone-ttl) but use different grammar in different contexts. These
typically need special case in docs.
2022-07-01 08:59:22 +02:00
Petr Špaček
df08982930 Add a new library to parse grammar format produced by cfg_test
It transforms named.conf/rndc.conf grammar from text format into Python
dictionary. This allows granular access to grammar elements.

Beware: It heavity depens on cfg_test output format!
2022-07-01 08:59:04 +02:00
Petr Špaček
fb474de3ab Add rndc.conf grammar into doc/misc
It uses the same mechanism as all other grammars, but the file is named
differently to distinguish it from named.conf grammars.
2022-07-01 08:56:35 +02:00
Petr Špaček
699570cdec Un-format grammar files in doc/misc
The next commit is going to add parser for ISC configuration format.
To simplify the parser the grammar files in doc/misc are no longer
line-wrapped as handling it would make the grammar parser unnecessairly
complicated.

This affects visible output in the ARM, but in the end we are going to
replace the auto-generated .rst files with grammar pretty printed, so
formatting of these files does not matter in practical terms.
2022-07-01 08:56:33 +02:00
Petr Špaček
af3683f436 Add missing comment markers to doc/misc/ grammar files
These files can be consumed by scripts, so obviously missing comment
markers wreak havoc.
2022-06-30 19:00:17 +02:00
Petr Špaček
563eb8e1b9 Accept rst syntax in .. statement:: short: text
Nested rst syntax is now parsed and rendered. E.g.:

.. namedconf:statement:: example
   :short: Use ``this`` **cool** syntax!
2022-06-30 18:04:44 +02:00
Petr Špaček
0e7ca5b5e0 Disambiguate address_match_list link anchor
Let's keep just the :term: produced by grammar glossary.
2022-06-30 18:04:41 +02:00
Suzanne Goldlust
3cf976bd78 Add the :tags: and :short: descriptions for the category "transfer" 2022-06-30 18:04:40 +02:00
Suzanne Goldlust
7187a5cf77 Add the :tags: and :short: descriptions for the category "query" 2022-06-30 18:04:40 +02:00
Petr Špaček
2630cf8e76 Resurrect DNS NOTIFY chapter in the ARM
It was accidentally removed in the heat of
25eb91d23c.
2022-06-30 18:04:40 +02:00
Michał Kępień
f0d2d3c03f Add CHANGES entry and release note for GL #2147 2022-06-30 15:24:08 +02:00
Michał Kępień
887c666caf Obsolete the "glue-cache" option
The "glue-cache" option was marked as deprecated by commit
5ae33351f2 (first released in BIND 9.17.6,
back in October 2020), so now obsolete that option, removing all code
and documentation related to it.

Note: this causes the glue cache feature to be permanently enabled, not
disabled.
2022-06-30 15:24:08 +02:00
Petr Špaček
4ce1f25210 Declare Debian 9 (Stretch) community-maintained 2022-06-28 17:54:48 +02:00
Matthijs Mekking
fb517eb52a Add some clarifications wrt dynamic zones
These were suggested by GitLab user @elmaimbo.
2022-06-27 11:01:33 +02:00
Ron Aitchison
d44cb9f194 Added explanations or Argument, Value, and Directive to the ARM 2022-06-24 16:20:46 +02:00
Petr Špaček
bb2a19d655 Add link to glob definition for include directive 2022-06-24 09:40:51 +02:00
Suzanne Goldlust
f4503061ba Minor text nitpicking around dnssec-policy grammar reference 2022-06-24 09:40:51 +02:00
Petr Špaček
fbcaa44851 Remove ambiguous link anchors for logging { file } statement
Unfortunatelly logging and zone blocks use file statements with
different semantics but the same name.

There is no sane way to disambiguate them in text, so let's remove the
link anchor from logging so we can link to the file statement in zone.

My assumption is that linking to logging { file } is very unlikely
because logging is self-contained in one block but zone config is all
over the place.
2022-06-24 09:40:51 +02:00
Petr Špaček
d6b2423c99 Remove ambiguous link anchors for keys statement
Unfortunatelly dnssec-policy and servers blocks use keys statements with
a totally different grammar and semantics but the same name.
There is no sane way to disambiguate them in text, so let's remove the
link anchors to prevent errorneous linking.
2022-06-24 09:40:51 +02:00
Petr Špaček
caf2675ef8 Change statement->argument terminology for control channel
control { inet ... allow keys read-only }; are not actual statements
but in fact arguments of a statement. Remove .. namedconf:statement::
syntax to avoid collisions with other statements of the same name.
2022-06-24 09:40:51 +02:00
Petr Špaček
3233414a53 Deduplicate dnssec-policy definition in the ARM 2022-06-24 09:40:51 +02:00
Petr Špaček
fa2ba5423b Deduplicate null definition in the ARM logging section 2022-06-24 09:40:51 +02:00
Petr Špaček
cd1b9aa052 Deduplicate {use,avoid}-v{4,6}-udp-ports definitions in the ARM
Statements affected:
use-v4-udp-ports
use-v6-udp-ports
avoid-v4-udp-ports
avoid-v6-udp-ports
2022-06-24 09:40:00 +02:00
Petr Špaček
6e634c43cd Deduplicate request-expire definition in the ARM 2022-06-24 08:14:32 +02:00
Petr Špaček
22e6c8a29e Deduplicate provide-ixfr definition in the ARM 2022-06-24 08:14:31 +02:00
Petr Špaček
14389bc446 Deduplicate request-ixfr definition in the ARM
Let's be consistent and put all definitions in the options block.
2022-06-24 08:14:31 +02:00
Petr Špaček
08a3cd7ae4 Deduplicate notify-source, notify-source-v6 definitions in the ARM 2022-06-24 08:14:31 +02:00
Petr Špaček
e91529a48b Deduplicate request-nsid definition in the ARM 2022-06-24 08:14:31 +02:00
Petr Špaček
92a125b9c4 Deduplicate query-source, query-source-v6 definitions in the ARM 2022-06-24 08:14:31 +02:00
Petr Špaček
538f5a7520 Deduplicate transfer-source, transfer-source-v6 definitions in the ARM 2022-06-24 08:14:31 +02:00
Petr Špaček
b6eb0b298d Deduplicate transfer-format definition in the ARM 2022-06-24 08:14:31 +02:00
Petr Špaček
7937c4bc9c Deduplicate send-cookie definition in the ARM 2022-06-24 08:14:31 +02:00