Technotes for Stand-Alone Technical Documentation

Technotes are a way for Data Management team members to write standalone documents that are native to the web, can be cited in literature, and are easy to write, publish, and update. You can write with either our reStructuredText or LaTeX templates. All technotes are developed on GitHub and published with LSST the Docs.

When to write technotes

Some of the possible applications for technotes are:

  • Report the results of a project, such as a data processing or software development experiment.
  • Announce a new technology, serving as a high-level overview complementing user documentation.
  • Propose an architecture, possibly becoming the subject of a request for comment (RFC).

For further background, see SQR-000: The LSST DM Technical Note Publishing Platform.

Technotes are not always the right platform for your information. Consider these alternatives:

  • Change-controlled documentation (LDM documents, for example). See LPM-19 for guidelines on what kinds of information are change-controlled.
  • User documentation (https://pipelines.lsst.io, for example). Descriptions of how to use software, services, or data should be written as user documentation. Technotes complement user documentation by being point-in-time discussions of software, like a technical blog post.

Technote series

Create a technote

Follow these steps to create a new technote:

  1. Identify the next-available technote handle in the series you are creating a technote for. You can do this by searching the series’s GitHub organization.

    For example, to identify the next-available DMTN repository, search the lsst-dm organization:

    https://github.com/search?o=desc&q=org%3Alsst-dm+dmtn-&s=updated&type=Repositories

    For discussion, the highest-numbered repository in the search result might be https://github.com/lsst-dm/dmtn-100. Try to go to the next repository, https://github.com/lsst-dm/dmtn-101:

    • If the page is a 404 (Not Found), that URL corresponds to the next-available repository.
    • If the page exists, keep incrementing the serial number in the URL until you find a page that is unavailable (try visiting https://github.com/lsst-dm/dmtn-102, https://github.com/lsst-dm/dmtn-103, and so on).
  2. Create a GitHub repository in the GitHub organization corresponding to the handle you identified in the previous step. Leave the repo empty — don’t seed it with a .gitignore or README.

  3. Create a Git repository from a template. Which template you use depends on the technote’s format:

    • If you are creating a reStructuredText-based technote that is built with Sphinx into HTML, run the following commands in a shell:

      git clone https://github.com/lsst/templates
      pip install -r templates/requirements.txt
      templatekit make technote_rst
      
    • If you are creating a LaTeX-formatted technote that is built into a PDF, follow the lsst-texmf documentation

    Be sure to commit and push the new technote to GitHub. When you create a new repository on GitHub, the repository’s initial GitHub homepage provides instructions on how to push to GitHub.

  4. Message the #dm-docs Slack channel so that the Travis integration for your technote can be activated.

    Don’t wait to configure your document’s deployment. By configuring your technote’s deployment early on, it’s easier for collaborators to view your content.

Using bibliographies in reStructuredText technotes

The lsst-texmf project includes shared BibTeX bibliographic databases. You can also use these bibliographies from reStructuredText technotes.

First, add or uncomment the bibliography directive at the bottom of your technote’s index.rst file:

.. bibliography:: local.bib lsstbib/books.bib lsstbib/lsst.bib lsstbib/lsst-dm.bib lsstbib/refs.bib lsstbib/refs_ads.bib
   :style: lsst_aa

Note

Only include the local.bib file if your technote’s repository has one. Use local.bib to temporarily store bib items before you permanently transfer them to the lsst-texmf project.

The bibliographies in the lsstbib directory are copies from the https://github.com/lsst/lsst-texmf repository. Refresh the copies maintained in your technote’s repository by running this command:

make refresh-bib

To make citations in the technote’s text, use the cite role. For example:

:cite:`2007PASP..119.1462B`

In-text citations are numbered, not author-year style.

Editing metadata in reStructuredText technotes

ReStructuredText-format technotes use a metadata.yaml in their repositories to describe attributes like the document’s title, author list, and abstract. To change the technote’s title or author list, for example, commit a change to the metadata.yaml file. See the comments in metadata.yaml for a description of these fields.