Update dependency documenteer to v1 #823
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
>=0.5.0,<0.6.0
->>=1.2.2,<1.3.0
Release Notes
lsst-sqre/documenteer (documenteer)
v1.2.2
Compare Source
Bug fixes
jira_uri_template
configuration default tohttps://rubinobs.atlassian.net/browse/{issue}
. This will make all :jira:, :jirab:, and :jirap: roles point to the new Jira instance for Rubin Observatory.jira.lsstcorp.org
from the linkcheck ignore list defaults fordocumenteer.config.guide
since that instance is no longer being used.jira.lsstcorp.org
URLs in documentation torubinobs.atlassian.net
.v1.2.1
Compare Source
Bug fixes
documenteer.conf.technote
configuration now resets thesource_suffix
configuration originally created by the Technote package.v1.2.0
Compare Source
New features
documenteer.conf.guide
) and technotes (documenteer.conf.technote
) now include MyST-NB to support Jupyter Notebooks in Sphinx documentation. The MyST-NB extension also supersedes MyST-Parser for Markdown syntax support. For guides, Jupyter Notebook files can be intermixed with Markdown (.md
) and reStructuredText (.rst
) files. Anipynb
file is considered as a page in the documentation. For technotes, the Jupyter Notebook must be namedindex.ipynb
. By default, these configurations use MyST-NB's "auto" mode for notebook execution: only if a notebook is missing outputs will it be executed.v1.1.1
Compare Source
Bug fixes
setuptools
is now included in the core package dependencies. Thedocumenteer.ext.bibtex
extension usespybtex
, which is turn usespkg_resources
fromsetuptools
. In Python 3.12, setuptools is not available in Python environments by default. This direct dependency can be removed oncepybtex
is updated to useimportlib.metadata
.Other changes
documenteer.toml
to use an example project other than "Documenteer" in the examples. Also emphasize the requirement that the project must be installed to use the[project.python]
configuration indocumenteer.toml
.v1.1.0
Compare Source
New features
sphinx_design
as a default extension for technotes.Bug fixes
version
field indocumenteer.toml
isn't set, and the project isn't a Python package, then the default value is now "Latest." The former default, None, was invalid.v1.0.1
Compare Source
Bug fixes
documenteer technote migrate
, change the icon for a file deletion event from ❌ to 🗑️.Other changes
v1.0.0
Compare Source
Backwards-incompatible changes
Documenteer now requires Python 3.11 or later.
Dependency changes:
Dropped support for the original technote configuration for Documenteer < 1.0. The
documenteer.conf.technote
configuration now uses the modern platform build with Technote. See new features below for more details.Dropped CLI commands:
refresh-lsst-bib
CLI command is removed. Technotes now automatically vendor lsst-texmf's bib files and cache them usingdocumenteer.ext.githubbibcache
.build-stack-docs
CLI command is removed and replaced by thestack-docs
andpackage-docs
CLIs in Documenteer 0.3.0.The
documenteer.conf.pipelines
anddocumenteer.conf.pipelinespkg
configuration modules now derive fromdocumenteer.conf.guide
. In doing so, the Pipelines documentation configuration works the same as Rubin Guides, but with additional configuration for pipelines-specific Sphinx extensions and other configurations. With this change, thelsst-sphinx-bootstrap-theme
is no longer used by Documenteer.The
documenteer.sphinxext
module has been removed and the existing Sphinx extensions within it are now available fromdocumenteer.ext
. It's no longer possible to usedocumenteer.sphinxext
to automatically load all Documenteer Sphinx extensions. Extensions need to now be added individually to theextensions
configuration variable inconf.py
. The migrated extension modules are:documenteer.ext.bibtex
documenteer.ext.jira
documenteer.ext.lsstdocushare
documenteer.ext.lssttasks
documenteer.ext.mockcoderefs
documenteer.ext.packagetoctree
New features
All-new technote configuration for Rubin Observatory. Technotes are now built with a framework we created by the same name, Technote. The new technotes feature a responsive design, better on-page navigation, and overall cleaner design that matches Rubin Observatory's visual identity. For authors, technotes use a new configuration file,
technote.toml
, which replacesmetadata.yaml
. Technotes can also be written in Markdown (in addition to continuing reStructuredText support) thanks to MyST Parser. Other key features:You can migrate your existing technote by running the
documenteer technote migrate
CLI command. The migration process is explained in detail at https://documenteer.lsst.io/technotes/migrate.html.Rubin technotes automatically use the bib files from https://github.com/lsst/lsst-texmf. In your text, use the
:cite:
directive with a bibkey from those bib files to cite a reference. Documenteer automatically retrieves the bib files from GitHub so you no longer need to maintain a copy in your repository.Rubin technotes include a richer metadata base than the original technote system. This will make it easier to cite technotes. Part of the richer metadata system is the authors table in
technote.toml
files. This author information is derived from, and synchronized with, theauthordb.yaml
file in lsst/lsst-texmf. Thedocumenteer technote add-author
anddocumenteer technote sync-authors
CLI commands can help you manage author information in your technote.The title for a technote is now derived from the top-level heading in the content itself.
There is a new
abstract
directive for marking up a technote's abstract or summary. This replaces the use of a note for the summary. This summary abstract is used by the documentation crawler to build https://www.lsst.io.Technotes can now indicate their status with the
technote.status
field intechnote.toml
. For example, a technote can start out as a draft. You can also mark a technote as deprecated and link to superseding websites.The new technote configuration comes pre-loaded with extensions for making diagrams as code, including
sphinxcontrib-mermaid
andsphinx-diagrams
.Improvements for Rubin user guides (
documenteer.conf.guide
):sphinx-jinja
to the Rubin guides configuration by default.sphinx-rediraffe
to the Rubin guides configuration by default.sphinx.exclude
field todocumenteer.toml
to list files for exclusion from a documentation project. More files and directories like.venv
andrequirements.txt
are now excluded, as well.documenteer.ext.openapi
extension can call a user-specified function to generate and install the OpenAPI specification the Sphinx source. For user guide projects, the[project.openapi]
table indocumenteer.toml
can be used to configure both thedocumenteer.ext.openapi
andsphinxcontrib-redoc
extensions. sphinxcontrib-redoc is installed and configured by default for all Rubin user guide projects (projects that usedocumenteer.conf.guide
).A new extension,
documenteer.ext.githubbibcache
, can fetch and locally cache BibTeX files from one or more public GitHub repositories. These bibfiles are automatically added tosphinxcontrib-bibtex
'sbibtex_files
configuration. This powers the technote's automatic use of bib files from the https://github.com/lsst/lsst-texmf repository.Bug fixes
Retry
is now imported directly fromurllib3
instead of the vendored version in requests.Other changes
v0.8.4
Compare Source
Fixes:
guide
extra (same as the pinning already being done for thepipelines
andtechnote
extras).v0.8.3
Compare Source
Fixes:
v0.8.2
Compare Source
Fixes:
help
subcommand for thepackage-docs
andstack-docs
commands.v0.8.1
Compare Source
Fixes:
help
subcommand for thepackage-docs
andstack-docs
commands.v0.8.0
Compare Source
New features:
-W
/--warning-is-error
flag to thepackage-docs build
andstack-docs build
commands for Science Pipelines documentation builds. This flag causes Sphinx to treat warnings as errors, which is useful for CI builds.-n
/--nitpicky
flag that enables Sphinx's nitpicky mode to flag warnings when links cannot resolve.Fixes:
sphinx-autodoc-typehints<1.23.0
to avoid a Sphinx version conflict withsphinx-design
. The former required Sphinx >= 7.v0.7.5
Compare Source
Fixes:
v0.7.4
Compare Source
Fixes:
pipelines
andtechnote
extras since their themes are not currently compatible with Sphinx 7 and later.v0.7.3
Compare Source
Fixes:
requirements.txt
and.venv
/venv
to the defaultexclude_patterns
for User Guides.v0.7.2
Compare Source
Fixes:
v0.7.1
Compare Source
Fixes:
v0.7.0
Compare Source
Documenteer provides a new Sphinx configuration profile for general Rubin user guide projects,
documenteer.conf.guide
.This configuration profile features the new pydata-sphinx-theme, with customizations based on design tokens from the Rubin Style Dictionary.
Most metadata and Sphinx configurations can also be set through a
documenteer.toml
file, located alongside the standard Sphinxconf.py
file.Install
documenteer[guide]
withpip
to get the dependencies needed for this Sphinx configuration.Packaging updates:
pyproject.toml
for its packaging.v0.6.14
Compare Source
What's Changed
Full Changelog: lsst-sqre/documenteer@0.6.13...0.6.14
v0.6.13
Compare Source
documenteer.conf.technote
.v0.6.12
Compare Source
tstn
role for linking to Telescope and Site technical notes.v0.6.11
Compare Source
Fixes:
Changes:
Add new roles for linking to technical notes:
Link to technical notes, which are hosted on lsst.io, now linking directly to lsst.io rather than going through `ls.st``. This includes the sqr, dmtn, etc. roles and all the new roles mentioned above.
Use
importlib.metadata
for getting the package version, rather thanpkg_resources
.Move to a
src/
based package layout for consistency.Issues:
v0.6.10
Compare Source
Fixes:
sphinx_jinja
extension name indocumenteer.conf.pipelines
anddocumenteer.conf.pipelinespkg
.Installations that use sphinx-jinja < 2 will continue to use
sphinxcontrib.jinja
since thesphinx-jinja
version is dynamically detected.v0.6.9
Compare Source
Fixes:
sphinx.util.inspect.Signature
tosphinx.util.inspect.signature
for Sphinx versions 2.4 and later.A minimum Sphinx version 2.4 is now required.
v0.6.8
Compare Source
Fixes:
Document conda-forge based installations.
Stack documentation builds no longer include meta or build-related files in the HTML site output, such as:
conf.py
.doctrees
doxygen.conf
manifest.yaml
html
andxml
.v0.6.7
Compare Source
Fixes:
The
html_extras_path
is no longer accidentally reset to[""]
indocumenteer.conf.pipelines
.sphinx-automodapi introduces an autodoc enhancement that replace's autodoc's attr getter for
type
with a custom function.However, we're finding that this enhancement is incompatible with Pybind11 static properties that are part of the LSST Science Pipelines API.
This release includes a new extension,
documenteer.ext.autodocreset
, that resets the attr getter fortype
to the one built into autodoc.This extension is used by default in
documenteer.config.pipelines
anddocumenteer.config.pipelinespkg
.v0.6.6
Compare Source
Fixes:
documenteer.conf.pipelines
(anddocumenteer.conf.pipelinespkg
) configuration modules so that they no longer configuredoxylink
if the Doxygen tag file is not present.This change is useful for single-package documentation builds of pure-Python packages.
v0.6.5
Compare Source
Fixes:
documenteer.conf.pipelines
anddocumenteer.conf.pipelinespkg
).v0.6.4
Compare Source
Fixes:
v0.6.2
Compare Source
Fixes:
The
build-stack-docs
CLI (replaced bystack-docs build
) now defaults to not generating a Doxygen configuration, or running Doxygen.This is consistent with the original behavior of
build-stack-docs
, which did not perform a Doxygen build.The
autocppapi
directive now works even if the corresponding Doxylink symbol map is unavailable.This feature is useful for any circumstance when a Doxygen subsite that is normally present is unavailable, such as for a single-package documentation build.
The Doxygen subsite is only added to
html_extras_path
if the_doxygen/html
directory is present.Remove the matplotlib plot extension from the legacy
documenteer.sphinxconf
configuration because the extension appears to be incompatible with Sphinx 3.x.v0.6.1
Compare Source
documenteer.conf.technote
.v0.6.0
Compare Source
Documenteer now works with Sphinx 2.0+.
Documenteer's dependencies now cleanly map to each use case:
pip install documenteer
installs only the dependencies required to use Documenteer's own Sphinx extensions.The dependencies are not strictly pinned (aside from Sphinx >= 2.0).
pip install documenteer[technote]
installs the core dependencies required by Documenteer, as well as the pinned Sphinx theme and extensions used by all technote projects.pip install documenteer[pipelines]
installs the core dependencies required by Documenteer, as well as the Sphinx theme and extensions used by pipelines.lsst.io.These extensions no longer have pinned versions.
Development and test dependencies are no longer pinned.
Python 3.6 is no longer officially supported.
Documenteer is tested with Python 3.7 and 3.8.
New Sphinx configuration facilities should prevent recursion issues by more cleanly populating the Python attributes in the configuration module:
documenteer.conf.technote
in theirconf.py
files.documenteer.conf.pipelines
in theirconf.py
files.documenteer.conf.pipelinespkg
in theirconf.py
files.The previous configuration sub-package,
documenteer.sphinxconf
is deprecated.[DM-20866]
Overall, the configurations are compatible with these exceptions:
html_copy_source
isFalse
).This change reduces the upload site of the pipelines.lsst.io site.
The stack documentation build (
stack-docs build
) can now run a Doxygen build to generate an HTML site and tag file of the C++ API.The HTML site is copied into the
cpp-api
directory of the Sphinx site, during the Sphinx build.This Doxygen build replaces, and is independent of, the Doxygen build tooling in sconsUtils, lsstDoxygen, and the base package.
ReStructuredText content can now link into the embedded Doxygen-generate site using the sphinxcontrib-doxylink extension with the new
lsstcc
role.Authors can use a new command,
stack-docs listcc
to find available APIs for linking.There is a new directive,
autocppapi
, part of thedocumenteer.ext.autocppapi
extension, that helps you list and link to C++ APIs in a namespace.It's intended to be used equivalently to the
automodapi
extension.The built-in Doxygen build considers all Stack packages with a
doc/doxygen.conf.in
file.Documenteer creates a Doxygen configuration from the contents of each package's
doxygen.conf.in
file, along with built-in defaults appropriate for pipelines.lsst.io.For example, individual packages can add to the
EXCLUDE
tag.By default, each package's
include
directory is included in the Doxygen build.[DM-22698, DM-23094, DM-22461]
Improved Sphinx runner (
documenteer.sphinxrunner
).[DM-26768]
Added static type checking using mypy.
[DM-22717, DM-26288]
Improved packaging, testing, and development environment:
pyproject.toml
file.setup.cfg
.tox
for running tests.pre-commit
for running linters and code formatters.[
DM-22957 <https://jira.lsstcorp.org/browse/DM-22957>
,DM-26288 <https://jira.lsstcorp.org/browse/DM-26288>
]Documentation improvements:
Added GitHub community health features: contributing, support, and code of conduct files.
Configuration
📅 Schedule: Branch creation - "before 6am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.