Skip to content

Commit bea3adb

Browse files
authored
Merge pull request #207 from lsst-sqre/tickets/DM-42142
DM-42142: Update documentation and prepare for 1.0.0 release
2 parents 7964d58 + a073187 commit bea3adb

22 files changed

+425
-160
lines changed

CHANGELOG.md

Lines changed: 67 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,74 @@
11
# Change Log
22

3-
## Unreleased
4-
5-
- Add a new `documenteer.conf.technotebeta` configuration for [technote](https://technote.lsst.io)-based technotes.
6-
These technotes are now themed with Rubin's modern branding.
7-
- Drop support for Python 3.7.
8-
- Drop support for Sphinx versions earlier than 5.
9-
- Temporarily pin pydata-sphinx-theme < 0.13 on account of a change in logo path checking (affects user guide projects).
10-
- Use [sphinxcontrib-jquery](https://github.com/sphinx-contrib/jquery/) to ensure jQuery is available for user guide and Pipelines documentation builds.
11-
- Add a new `sphinx.exclude` field to `documenteer.toml` to list files for exclusion from a documentation project.
12-
More files and directories like `.venv` and `requirements.txt` are now excluded, as well.
13-
- New support for embedding OpenAPI documentation in a Redoc-generated subsite. The `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 in `documenteer.toml` can be used to configure both the `documenteer.ext.openapi` and `sphinxcontrib-redoc` extensions. [sphinxcontrib-redoc](https://sphinxcontrib-redoc.readthedocs.io/en/stable/) is installed and configured by default for all Rubin user guide projects (projects that use `documenteer.conf.guide`).
14-
- Pin pydantic < 2.0.
15-
- Pin Sphinx < 7.
16-
173
<!-- scriv-insert-here -->
184

5+
<a id='changelog-1.0.0'></a>
6+
## 1.0.0 (2023-12-17)
7+
8+
### Backwards-incompatible changes
9+
10+
- Documenteer now requires Python 3.11 or later.
11+
12+
- Dependency changes:
13+
14+
- Pydantic 2.0 or later.
15+
- Sphinx 7 and later (and docutils 0.20 and later)
16+
- pydata-sphinx-theme < 0.13 on account of a change in logo path checking (affects user guide projects).
17+
18+
- Dropped support for the original technote configuration for Documenteer < 1.0. The `documenteer.conf.technote` configuration now uses the modern platform build with [Technote](https://technote.lsst.io). See new features below for more details.
19+
20+
- Dropped CLI commands:
21+
22+
- The `refresh-lsst-bib` CLI command is removed. Technotes now automatically vendor lsst-texmf's bib files and cache them using `documenteer.ext.githubbibcache`.
23+
- The `build-stack-docs` CLI command is removed and replaced by the `stack-docs` and `package-docs` CLIs in Documenteer 0.3.0.
24+
25+
- The `documenteer.conf.pipelines` and `documenteer.conf.pipelinespkg` configuration modules now derive from `documenteer.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, the `lsst-sphinx-bootstrap-theme` is no longer used by Documenteer.
26+
27+
- The `documenteer.sphinxext` module has been removed and the existing Sphinx extensions within it are now available from `documenteer.ext`. It's no longer possible to use `documenteer.sphinxext` to automatically load all Documenteer Sphinx extensions. Extensions need to now be added individually to the `extensions` configuration variable in `conf.py`. The migrated extension modules are:
28+
29+
- `documenteer.ext.bibtex`
30+
- `documenteer.ext.jira`
31+
- `documenteer.ext.lsstdocushare`
32+
- `documenteer.ext.lssttasks`
33+
- `documenteer.ext.mockcoderefs`
34+
- `documenteer.ext.packagetoctree`
35+
36+
### New features
37+
38+
- All-new technote configuration for Rubin Observatory. Technotes are now built with a framework we created by the same name, [Technote](https://technote.lsst.io). 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 replaces `metadata.yaml`. Technotes can also be written in Markdown (in addition to continuing reStructuredText support) thanks to [MyST Parser](https://myst-parser.readthedocs.io/en/latest/intro.html). Other key features:
39+
40+
- 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.
41+
42+
- 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.
43+
44+
- 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, the `authordb.yaml` file in [lsst/lsst-texmf](https://github.com/lsst/lsst-texmf). The `documenteer technote add-author` and `documenteer technote sync-authors` CLI commands can help you manage author information in your technote.
45+
46+
- The title for a technote is now derived from the top-level heading in the content itself.
47+
48+
- 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.
49+
50+
- Technotes can now indicate their status with the `technote.status` field in `technote.toml`. For example, a technote can start out as a draft. You can also mark a technote as deprecated and link to superseding websites.
51+
52+
- The new technote configuration comes pre-loaded with extensions for making diagrams as code, including `sphinxcontrib-mermaid` and `sphinx-diagrams`.
53+
54+
- Improvements for Rubin user guides (`documenteer.conf.guide`):
55+
56+
- Add `sphinx-jinja` to the Rubin guides configuration by default.
57+
- Add `sphinx-rediraffe` to the Rubin guides configuration by default.
58+
- Use [sphinxcontrib-jquery](https://github.com/sphinx-contrib/jquery/) to ensure jQuery is available for user guide and Pipelines documentation builds.
59+
- New `sphinx.exclude` field to `documenteer.toml` to list files for exclusion from a documentation project. More files and directories like `.venv` and `requirements.txt` are now excluded, as well.
60+
- New support for embedding OpenAPI documentation in a Redoc-generated subsite. The `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 in `documenteer.toml` can be used to configure both the `documenteer.ext.openapi` and `sphinxcontrib-redoc` extensions. [sphinxcontrib-redoc](https://sphinxcontrib-redoc.readthedocs.io/en/stable/) is installed and configured by default for all Rubin user guide projects (projects that use `documenteer.conf.guide`).
61+
62+
- 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 to `sphinxcontrib-bibtex`'s `bibtex_files` configuration. This powers the technote's automatic use of bib files from the https://github.com/lsst/lsst-texmf repository.
63+
64+
### Bug fixes
65+
66+
- `Retry` is now imported directly from `urllib3` instead of the vendored version in requests.
67+
68+
### Other changes
69+
70+
- Adopted Scriv for maintaining the change log.
71+
1972
## 0.8.4 (2023-07-28)
2073

2174
Fixes:

changelog.d/20230911_120423_jsick_DM_40684.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

changelog.d/20231012_194757_jsick_DM_41179.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

changelog.d/20231018_165310_jsick_DM_41214.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

changelog.d/20231024_170151_jsick_DM_41296.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

changelog.d/20231026_192111_jsick_DM_41370.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

changelog.d/20231128_164718_jsick_DM_41781.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

changelog.d/20231129_140754_jsick_DM_41905.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

changelog.d/20231201_154001_jsick_DM_41917.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

changelog.d/20231212_141904_jsick_DM_42023.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

docs/_rst_epilog.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@
6262
.. _sphinx.ext.intersphinx: https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html
6363
.. _`authordb.yaml`: https://github.com/lsst/lsst-texmf/blob/main/etc/authordb.yaml
6464
.. _pipx: https://pipx.pypa.io
65+
.. _`LSSTC Slack Workspace`: https://lsstc.slack.com
66+
67+
.. |dmw-sqrbot| replace:: `direct message with @sqrbot-jr <https://slack.com/app_redirect?app=AF2U6ADV3&team=T06D204F2>`__
6568

6669
.. Internal links
6770

docs/technotes/author-metadata.rst

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
###########################
2+
Maintaining author metadata
3+
###########################
4+
5+
The list of authors for a technote is maintained in the :file:`technote.toml` file.
6+
This page describes how to add and update author listings.
7+
8+
The connection to authordb.yaml
9+
===============================
10+
11+
The author metadata in a technote's :file:`technote.toml` file is *derived* from Rubin Observatory's author database, `authordb.yaml`_, located in the https://github.com/lsst/lsst-texmf repository.
12+
The ``internal_id`` field in :file:`technote.toml` points to the author's entry in `authordb.yaml`_.
13+
This is done so that team members are identified consistently across Rubin Observatory documents and publications.
14+
15+
For example, an author with an ID of ``sickj`` is represented in :file:`technote.toml` as:
16+
17+
.. code-block:: toml
18+
:caption: technote.toml
19+
:emphasize-lines: 3
20+
21+
[[technote.authors]]
22+
name = {given = "Jonathan", family = "Sick"}
23+
internal_id = "sickj"
24+
orcid = "https://orcid.org/0000-0003-3001-676X"
25+
[[technote.authors.affiliations]]
26+
name = "Rubin Observatory Project Office"
27+
internal_id = "RubinObs"
28+
address = "950 N. Cherry Ave., Tucson, AZ 85719, USA"
29+
30+
The corresponding entry in `authordb.yaml`_ is:
31+
32+
.. code-block:: yaml
33+
:caption: authordb.yaml in lsst/lsst-texmf
34+
:emphasize-lines: 3
35+
36+
authors:
37+
# [...]
38+
sickj:
39+
affil:
40+
- RubinObs
41+
altaffil: []
42+
initials: Jonathan
43+
name: Sick
44+
orcid: 0000-0003-3001-676X
45+
46+
The highlighted lines, above, show the author ID that connects these metadata sets.
47+
48+
A consequence of this connection is that all technote authors must have an entry in `authordb.yaml`_.
49+
You can add and update entries by submitting a pull request to the https://github.com/lsst/lsst-texmf repository.
50+
51+
Adding a new author
52+
===================
53+
54+
Given an author ID from `authordb.yaml`_, you can add that author to the technote's metadata by running the :command:`make add-author` command:
55+
56+
.. prompt:: bash
57+
58+
make add-author
59+
60+
That command prompts you for the author ID, and then appends the author to the end of the author listing in :file:`technote.toml` (existing authors are updated in place).
61+
62+
Authors are represented in :file:`technote.toml` as as individual tables under the ``technote.authors`` *array of tables*.
63+
A technote with Sick as the first author and Economou as the second author would look like:
64+
65+
.. code-block:: toml
66+
:caption: technote.toml
67+
68+
[[technote.authors]]
69+
name = {given = "Jonathan", family = "Sick"}
70+
internal_id = "sickj"
71+
orcid = "https://orcid.org/0000-0003-3001-676X"
72+
[[technote.authors.affiliations]]
73+
name = "Rubin Observatory Project Office"
74+
internal_id = "RubinObs"
75+
address = "950 N. Cherry Ave., Tucson, AZ 85719, USA"
76+
77+
[[technote.authors]]
78+
name = {given = "Frossie", family = "Economou"}
79+
internal_id = "economouf"
80+
orcid = "https://orcid.org/0000-0002-8333-7615"
81+
[[technote.authors.affiliations]]
82+
name = "Rubin Observatory Project Office"
83+
internal_id = "RubinObs"
84+
address = "950 N. Cherry Ave., Tucson, AZ 85719, USA"
85+
86+
To change the order of authors, you can move the ``[[technote.authors]]`` tables around in the file.
87+
Don't forget to keep the ``[[technote.authors.affiliations]]`` tables with their corresponding authors.
88+
89+
Updating author metadata
90+
========================
91+
92+
Occasionally the author metadata in `authordb.yaml`_ will change.
93+
To update the author metadata in your technote, run:
94+
95+
.. prompt:: bash
96+
97+
make sync-authors
98+
99+
Related documentation
100+
=====================
101+
102+
- :external+technote:ref:`Schema for the [[technote.authors]] table in technote.toml in the Technote package documentation <toml-technote-authors>`
103+
- `Configuring authors <https://technote.lsst.io/user-guide/configure-authors.html>`__, from the Technote package documentation

0 commit comments

Comments
 (0)