diff --git a/doc/Makefile.sphinx b/doc/Makefile.sphinx
index 523c6986a5fc..54f1eb1c638c 100644
--- a/doc/Makefile.sphinx
+++ b/doc/Makefile.sphinx
@@ -8,7 +8,7 @@ CHPLDEPS = $(shell $(CHPL_MAKE_PYTHON) $(CHPL_MAKE_HOME)/util/chplenv/chpl_home_
COPY_IF_DIFFERENT = $(CHPL_MAKE_PYTHON) $(CHPL_MAKE_HOME)/util/config/update-if-different --copy
# You can set these variables from the command line.
-SPHINXOPTS = -W --keep-going
+SPHINXOPTS = -n -W --keep-going
SPHINXBUILD = $(CHPL_MAKE_PYTHON) $(CHPLDEPS) sphinx-build
PAPER =
SOURCEDIR = rst
diff --git a/doc/rst/conf.py b/doc/rst/conf.py
index 8cc10b8ece73..6f3310c4222e 100644
--- a/doc/rst/conf.py
+++ b/doc/rst/conf.py
@@ -33,6 +33,7 @@
# ones.
extensions = [
'sphinx.ext.todo',
+ 'sphinxcontrib.jquery',
'sphinxcontrib.chapeldomain',
'sphinx.ext.mathjax',
'util.disguise',
@@ -40,6 +41,9 @@
]
breathe_default_project = "dyno"
+# don't generate #include suggestions in docs because
+# it tries to link to the source code which we're not setup for
+breathe_show_include = False
nitpick_ignore_regex = [('cpp:identifier', r'llvm(:.*)?')]
nitpick_ignore = []
diff --git a/doc/rst/usingchapel/prereqs.rst b/doc/rst/usingchapel/prereqs.rst
index bcf348ec2854..f6d7dc7bd461 100644
--- a/doc/rst/usingchapel/prereqs.rst
+++ b/doc/rst/usingchapel/prereqs.rst
@@ -46,7 +46,7 @@ for using Chapel:
In addition, several optional components have additional requirements:
- * Python 3.7 or newer is required if you want to use chpldoc, c2chapel,
+ * Python 3.9 or newer is required if you want to use chpldoc, c2chapel,
or Chapel's test system. These additionally require ``python3-devel``
or the equivalent package; ``python3`` and ``pip3`` commands; and the
``venv`` Python package.
diff --git a/doc/util/nitpick_ignore b/doc/util/nitpick_ignore
index a8afdae78dc9..a124253dd422 100644
--- a/doc/util/nitpick_ignore
+++ b/doc/util/nitpick_ignore
@@ -36,6 +36,7 @@ cpp:identifier AstList::const_iterator
cpp:identifier size_t
cpp:identifier detail
cpp:identifier detail::PODUniqueString
+cpp:identifier TraceElement
cpp:identifier AstList::const_iterator::difference_type
cpp:identifier uint64_t
cpp:identifier uint32_t
@@ -46,6 +47,8 @@ cpp:identifier int32_t
cpp:identifier int16_t
cpp:identifier int8_t
cpp:identifier va_list
+cpp:identifier ErrorNote
+cpp:identifier ErrorCodeSnippet
# TODO: Expand macros before generating docs to remove these.
cpp:identifier ErrorParseErr
cpp:identifier ParamTag
@@ -63,6 +66,8 @@ cpp:identifier ZERO
cpp:identifier SYMBOL_ONLY
cpp:identifier uast::asttags::NUM_AST_TAGS
cpp:identifier uast::Function::DEFAULT_RETURN_INTENT
+cpp:identifier VisibilitySymbols::REGULAR_SCOPE
+cpp:identifier VIS_USE
# Common symbols used as template typenames.
cpp:identifier T
cpp:identifier Deserializer
diff --git a/frontend/doc/base.rst b/frontend/doc/base.rst
index 3db15fb0d24e..b6e720f43809 100644
--- a/frontend/doc/base.rst
+++ b/frontend/doc/base.rst
@@ -35,6 +35,10 @@ namespace. The entries may not be exhaustive.
:members:
:undoc-members:
+.. doxygenclass:: chpl::CompatibilityWriter
+ :members:
+ :undoc-members:
+
.. doxygenclass:: chpl::ErrorBase
:members:
:undoc-members:
diff --git a/frontend/doc/doxygen-pitfalls.txt b/frontend/doc/doxygen-pitfalls.txt
index a7dcf67b5bdc..5d84a704df3d 100644
--- a/frontend/doc/doxygen-pitfalls.txt
+++ b/frontend/doc/doxygen-pitfalls.txt
@@ -12,6 +12,7 @@ Doxygen will fail to resolve:
- C++ standard library types (that are not builtin, e.g. `int64_t`)
- Any `compiler/dyno` types that are generated by macros (for now)
+ - any dyno types that are defined in no-doc sections
- C++11 "in-class member initializers" for enum fields
Just add these types to `$CHPL_HOME/doc/util/nitpick_ignore`.
diff --git a/test/chpldoc/compflags/version/PREDIFF b/test/chpldoc/compflags/version/PREDIFF
index 3289677b53e6..b94807a12604 100755
--- a/test/chpldoc/compflags/version/PREDIFF
+++ b/test/chpldoc/compflags/version/PREDIFF
@@ -1,4 +1,9 @@
#!/usr/bin/env bash
-sed -e '/^Running Sphinx v/,/URL_ROOT:/d;s/^ *//;/LANGUAGE:/,$d' $2 > $2.tmp
-mv $2.tmp $2
+# if the docs build suceeded, replace the output to check with
+# the generated VERSION line, trimmed to remove leading spaces
+if [ -f docs/_static/documentation_options.js ]
+then
+ grep VERSION docs/_static/documentation_options.js | sed 's/^ *//' > $2.tmp
+ mv $2.tmp $2
+fi
diff --git a/test/chpldoc/compflags/version/projectVersion.doc.catfiles b/test/chpldoc/compflags/version/projectVersion.doc.catfiles
deleted file mode 100644
index cb260d287acb..000000000000
--- a/test/chpldoc/compflags/version/projectVersion.doc.catfiles
+++ /dev/null
@@ -1 +0,0 @@
-docs/_static/documentation_options.js
diff --git a/test/chpldoc/compflags/version/projectVersion.dotEnd.doc.good b/test/chpldoc/compflags/version/projectVersion.dotEnd.doc.good
index f8800cb50e7e..26265b6ab325 100644
--- a/test/chpldoc/compflags/version/projectVersion.dotEnd.doc.good
+++ b/test/chpldoc/compflags/version/projectVersion.dotEnd.doc.good
@@ -1,2 +1 @@
error: Invalid version format: 21.0. due to: Cannot end with dot, can end with either number or tag
-cat: docs/_static/documentation_options.js: No such file or directory
diff --git a/test/chpldoc/compflags/version/projectVersion.invalidCharacter.doc.good b/test/chpldoc/compflags/version/projectVersion.invalidCharacter.doc.good
index 2fdda9fae089..1fcb43bd31bc 100644
--- a/test/chpldoc/compflags/version/projectVersion.invalidCharacter.doc.good
+++ b/test/chpldoc/compflags/version/projectVersion.invalidCharacter.doc.good
@@ -1,2 +1 @@
error: Invalid version format: a.c.d due to: Invalid Characters, only digits and dots permitted before a hyphen
-cat: docs/_static/documentation_options.js: No such file or directory
diff --git a/test/chpldoc/compflags/version/projectVersion.invalidTag.doc.good b/test/chpldoc/compflags/version/projectVersion.invalidTag.doc.good
index 1c46a8aecbe9..f0558b03a44e 100644
--- a/test/chpldoc/compflags/version/projectVersion.invalidTag.doc.good
+++ b/test/chpldoc/compflags/version/projectVersion.invalidTag.doc.good
@@ -1,2 +1 @@
error: Invalid version format: 21.0.3-invalid due to: Tag not supported, supported tags are alpha/beta/rc
-cat: docs/_static/documentation_options.js: No such file or directory
diff --git a/test/chpldoc/compflags/version/projectVersion.lessDots.doc.good b/test/chpldoc/compflags/version/projectVersion.lessDots.doc.good
index 04d1214c0586..01c224e5efa5 100644
--- a/test/chpldoc/compflags/version/projectVersion.lessDots.doc.good
+++ b/test/chpldoc/compflags/version/projectVersion.lessDots.doc.good
@@ -1,2 +1 @@
error: Invalid version format: 21.0-alpha due to: Required only two dots which separates three numbers
-cat: docs/_static/documentation_options.js: No such file or directory
diff --git a/test/chpldoc/compflags/version/projectVersion.missingNumbers.doc.good b/test/chpldoc/compflags/version/projectVersion.missingNumbers.doc.good
index 40eef52a035b..3654b85ac5b9 100644
--- a/test/chpldoc/compflags/version/projectVersion.missingNumbers.doc.good
+++ b/test/chpldoc/compflags/version/projectVersion.missingNumbers.doc.good
@@ -1,2 +1 @@
error: Invalid version format: 21..3 due to: Missing number between dots
-cat: docs/_static/documentation_options.js: No such file or directory
diff --git a/test/chpldoc/links/nested.doc.prediff b/test/chpldoc/links/nested.doc.prediff
index 003e24301777..be2d2f852844 100755
--- a/test/chpldoc/links/nested.doc.prediff
+++ b/test/chpldoc/links/nested.doc.prediff
@@ -24,7 +24,7 @@ reference_pat = re.compile('', html_output):
+ if not re.search(f'