From 200d18dd48d20814bb466aeb102dd471e9e40bff Mon Sep 17 00:00:00 2001 From: Jonathan Sick Date: Wed, 1 Nov 2023 10:19:49 -0400 Subject: [PATCH 1/3] Fix tabs in Makefile --- .../technote_rst_early_adopter/testn-000/Makefile | 14 +++++++------- .../testn-000/technote.toml | 2 +- .../{{cookiecutter.repo_name}}/Makefile | 14 +++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/project_templates/technote_rst_early_adopter/testn-000/Makefile b/project_templates/technote_rst_early_adopter/testn-000/Makefile index 034d3d94..102b8c2f 100644 --- a/project_templates/technote_rst_early_adopter/testn-000/Makefile +++ b/project_templates/technote_rst_early_adopter/testn-000/Makefile @@ -1,18 +1,18 @@ .PHONY: init: - pip install tox pre-commit - pre-commit install + pip install tox pre-commit + pre-commit install .PHONY: html: - tox run -e html + tox run -e html .PHONY: lint: - tox run -e lint,link-check + tox run -e lint,link-check .PHONY: clean: - rm -rf _build - rm -rf .technote - rm -rf .tox + rm -rf _build + rm -rf .technote + rm -rf .tox diff --git a/project_templates/technote_rst_early_adopter/testn-000/technote.toml b/project_templates/technote_rst_early_adopter/testn-000/technote.toml index 1dbf581b..26ba6441 100644 --- a/project_templates/technote_rst_early_adopter/testn-000/technote.toml +++ b/project_templates/technote_rst_early_adopter/testn-000/technote.toml @@ -4,7 +4,7 @@ series_id = "TESTN" canonical_url = "https://testn-000.lsst.io" github_url = "https://github.com/lsst/testn-000" github_default_branch = "main" -date_created = "2023-10-26T18:55:28Z" +date_created = "2023-11-01T14:18:02Z" [[technote.authors]] name = { name = "First Last" } diff --git a/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/Makefile b/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/Makefile index 034d3d94..102b8c2f 100644 --- a/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/Makefile +++ b/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/Makefile @@ -1,18 +1,18 @@ .PHONY: init: - pip install tox pre-commit - pre-commit install + pip install tox pre-commit + pre-commit install .PHONY: html: - tox run -e html + tox run -e html .PHONY: lint: - tox run -e lint,link-check + tox run -e lint,link-check .PHONY: clean: - rm -rf _build - rm -rf .technote - rm -rf .tox + rm -rf _build + rm -rf .technote + rm -rf .tox From cbf47057e4a3a0281b45c5186c159bf9fa6eb06d Mon Sep 17 00:00:00 2001 From: Jonathan Sick Date: Wed, 1 Nov 2023 10:56:14 -0400 Subject: [PATCH 2/3] Stop using envtmpdir in tox.ini This tox temporary directory path doesn't seem to escape spaces in directory paths. Using the relative path, _build/, works just as well as a temporary directory and avoids the issue. --- .../technote_rst_early_adopter/testn-000/technote.toml | 2 +- .../technote_rst_early_adopter/testn-000/tox.ini | 4 ++-- .../{{cookiecutter.repo_name}}/tox.ini | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/project_templates/technote_rst_early_adopter/testn-000/technote.toml b/project_templates/technote_rst_early_adopter/testn-000/technote.toml index 26ba6441..24af71ae 100644 --- a/project_templates/technote_rst_early_adopter/testn-000/technote.toml +++ b/project_templates/technote_rst_early_adopter/testn-000/technote.toml @@ -4,7 +4,7 @@ series_id = "TESTN" canonical_url = "https://testn-000.lsst.io" github_url = "https://github.com/lsst/testn-000" github_default_branch = "main" -date_created = "2023-11-01T14:18:02Z" +date_created = "2023-11-01T14:56:03Z" [[technote.authors]] name = { name = "First Last" } diff --git a/project_templates/technote_rst_early_adopter/testn-000/tox.ini b/project_templates/technote_rst_early_adopter/testn-000/tox.ini index f3929ed0..c7362230 100644 --- a/project_templates/technote_rst_early_adopter/testn-000/tox.ini +++ b/project_templates/technote_rst_early_adopter/testn-000/tox.ini @@ -9,11 +9,11 @@ deps = [testenv:html] commands = - sphinx-build --keep-going -n -W -T -b html -d {envtmpdir}/doctrees . _build/html + sphinx-build --keep-going -n -W -T -b html -d _build/doctrees . _build/html [testenv:linkcheck] commands = - sphinx-build --keep-going -n -W -T -b linkcheck -d {envtmpdir}/doctrees . _build/linkcheck + sphinx-build --keep-going -n -W -T -b linkcheck -d _build/doctrees . _build/linkcheck [testenv:lint] commands = diff --git a/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/tox.ini b/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/tox.ini index f3929ed0..c7362230 100644 --- a/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/tox.ini +++ b/project_templates/technote_rst_early_adopter/{{cookiecutter.repo_name}}/tox.ini @@ -9,11 +9,11 @@ deps = [testenv:html] commands = - sphinx-build --keep-going -n -W -T -b html -d {envtmpdir}/doctrees . _build/html + sphinx-build --keep-going -n -W -T -b html -d _build/doctrees . _build/html [testenv:linkcheck] commands = - sphinx-build --keep-going -n -W -T -b linkcheck -d {envtmpdir}/doctrees . _build/linkcheck + sphinx-build --keep-going -n -W -T -b linkcheck -d _build/doctrees . _build/linkcheck [testenv:lint] commands = From 38e5509b2ee8295f6eb11474bd974b3a708f47a3 Mon Sep 17 00:00:00 2001 From: Jonathan Sick Date: Wed, 1 Nov 2023 12:55:14 -0400 Subject: [PATCH 3/3] Add the markdown technote early-adopter template This template is very similar to the technote_rst_early_adopter template, but both the index and README files are in Markdown. This template will lose the "early adopter" moniker once Documenteer 1.0 is released. --- .github/workflows/ci.yaml | 3 +- README.md | 1 + SConstruct | 1 + .../technote_md_early_adopter/CHANGELOG.md | 7 + .../technote_md_early_adopter/README.md | 186 +++++++++ .../technote_md_early_adopter/SConscript | 9 + .../cookiecutter.json | 50 +++ .../templatekit.yaml | 66 +++ .../testn-000/.github/dependabot.yml | 11 + .../testn-000/.github/workflows/ci.yaml | 12 + .../testn-000/.gitignore | 5 + .../testn-000/.pre-commit-config.yaml | 7 + .../testn-000/COPYRIGHT | 1 + .../testn-000/LICENSE | 395 ++++++++++++++++++ .../testn-000/Makefile | 18 + .../testn-000/README.md | 45 ++ .../testn-000/conf.py | 4 + .../testn-000/index.md | 11 + .../testn-000/local.bib | 0 .../testn-000/requirements.txt | 1 + .../testn-000/technote.toml | 17 + .../testn-000/tox.ini | 20 + .../.github/dependabot.yml | 11 + .../.github/workflows/ci.yaml | 12 + .../{{cookiecutter.repo_name}}/.gitignore | 5 + .../.pre-commit-config.yaml | 7 + .../{{cookiecutter.repo_name}}/COPYRIGHT | 1 + .../{{cookiecutter.repo_name}}/LICENSE | 395 ++++++++++++++++++ .../{{cookiecutter.repo_name}}/Makefile | 18 + .../{{cookiecutter.repo_name}}/README.md | 47 +++ .../{{cookiecutter.repo_name}}/conf.py | 4 + .../{{cookiecutter.repo_name}}/index.md | 11 + .../{{cookiecutter.repo_name}}/local.bib | 0 .../requirements.txt | 1 + .../{{cookiecutter.repo_name}}/technote.toml | 17 + .../{{cookiecutter.repo_name}}/tox.ini | 20 + .../testn-000/technote.toml | 2 +- 37 files changed, 1419 insertions(+), 2 deletions(-) create mode 100644 project_templates/technote_md_early_adopter/CHANGELOG.md create mode 100644 project_templates/technote_md_early_adopter/README.md create mode 100644 project_templates/technote_md_early_adopter/SConscript create mode 100644 project_templates/technote_md_early_adopter/cookiecutter.json create mode 100644 project_templates/technote_md_early_adopter/templatekit.yaml create mode 100644 project_templates/technote_md_early_adopter/testn-000/.github/dependabot.yml create mode 100644 project_templates/technote_md_early_adopter/testn-000/.github/workflows/ci.yaml create mode 100644 project_templates/technote_md_early_adopter/testn-000/.gitignore create mode 100644 project_templates/technote_md_early_adopter/testn-000/.pre-commit-config.yaml create mode 100644 project_templates/technote_md_early_adopter/testn-000/COPYRIGHT create mode 100644 project_templates/technote_md_early_adopter/testn-000/LICENSE create mode 100644 project_templates/technote_md_early_adopter/testn-000/Makefile create mode 100644 project_templates/technote_md_early_adopter/testn-000/README.md create mode 100644 project_templates/technote_md_early_adopter/testn-000/conf.py create mode 100644 project_templates/technote_md_early_adopter/testn-000/index.md create mode 100644 project_templates/technote_md_early_adopter/testn-000/local.bib create mode 100644 project_templates/technote_md_early_adopter/testn-000/requirements.txt create mode 100644 project_templates/technote_md_early_adopter/testn-000/technote.toml create mode 100644 project_templates/technote_md_early_adopter/testn-000/tox.ini create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/dependabot.yml create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/workflows/ci.yaml create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.gitignore create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.pre-commit-config.yaml create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/COPYRIGHT create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/LICENSE create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/Makefile create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/README.md create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/conf.py create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/index.md create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/local.bib create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/requirements.txt create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/technote.toml create mode 100644 project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/tox.ini diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 92638a9b..50886cab 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -41,7 +41,8 @@ jobs: - name: Check templates run: | templatekit check \ - --ignore "project_templates/technote_rst_early_adopter/testn-000/technote.toml" + --ignore "project_templates/technote_rst_early_adopter/testn-000/technote.toml" \ + --ignore "project_templates/technote_md_early_adopter/testn-000/technote.toml" # Test TeX builds only with the latest Python version, since they're # fairly heavy-weight and the Python version shouldn't matter. diff --git a/README.md b/README.md index 71d67112..87295bf2 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ Find these templates in the `project_templates/` directory: - [technote_aastex](project_templates/technote_aastex/) - [technote_latex](project_templates/technote_latex/) - [technote_rst](project_templates/technote_rst/) +- [technote_md_early_adopter](project_templates/technote_md_early_adopter/) - [technote_rst_early_adopter](project_templates/technote_rst_early_adopter/) - [test_report](project_templates/test_report/) diff --git a/SConstruct b/SConstruct index 90e504a2..db2968d1 100644 --- a/SConstruct +++ b/SConstruct @@ -6,6 +6,7 @@ SConscript( "project_templates/stack_package/SConscript", "project_templates/nbreport/SConscript", "project_templates/technote_rst/SConscript", + "project_templates/technote_md_early_adopter/SConscript", "project_templates/technote_rst_early_adopter/SConscript", "project_templates/technote_latex/SConscript", "project_templates/technote_aastex/SConscript", diff --git a/project_templates/technote_md_early_adopter/CHANGELOG.md b/project_templates/technote_md_early_adopter/CHANGELOG.md new file mode 100644 index 00000000..1d03d589 --- /dev/null +++ b/project_templates/technote_md_early_adopter/CHANGELOG.md @@ -0,0 +1,7 @@ +# Change log + +## 2023-11-01 + +- Created the `technote_md_early_adopter` template based on the `technote_rst_early_adopter` template. + This template is intended for early adopters of the new Markdown-based technote format. + This template will lose the "early adopter" moniker once both [Documenteer](https://documenteer.lsst.io) and [Technote](https://technote.lsst.io) get 1.0 releases. diff --git a/project_templates/technote_md_early_adopter/README.md b/project_templates/technote_md_early_adopter/README.md new file mode 100644 index 00000000..c3df06aa --- /dev/null +++ b/project_templates/technote_md_early_adopter/README.md @@ -0,0 +1,186 @@ +# technote_md + +**Rubin technical note repository, based on Markdown and Sphinx.** + +This template generates a new technical note (technote) repository based on Sphinx. +Rubin technotes, in general, let you document technical designs, proposals, product overviews, results of prototyping experiments, and other types of documentation that doesn't fit in either the change-controlled document tree, or in user documentation. +See [Technotes for stand-alone technical documentation in the Developer Guide](https://developer.lsst.io/project-docs/technotes.html). + +Keep in mind that technotes are single-page websites. +Specifically, don't use `toctree` to create a multi-page site. +Technotes are constrained to single pages so that they can be archived to DocuShare, and as a result the technote infrastructure is designed specifically to support a single-page site. + +## Template variables + +### cookiecutter.first_author + +The name of the first author, formatted as `First Last`. + +Once the technote repository is generated you can add additional authors to the `authors` list in `metadata.yaml`. + +### cookiecutter.series + +The identifier of the technote series. +Choose the series that fits the document's purpose or aligns with the organization creating the document: + +- `DMTN` for Data Management technical notes. See [DMTN-000](https://dmtn-000.lsst.io). +- `ITTN` for LSST IT technical notes. +- `RTN` for Rubin Observatory operations technical notes (all departments). +- `PSTN` for Project Science Team technical notes. +- `SMTN` for Simulations Group technical notes. See [SMTN-000](https://smtn-000.lsst.io). +- `SITCOMTN` for Systems Integration, Testing, and Commissioning notes. +- `SQR` for SQuaRE technical notes. See [SQR-000](https://sqr-000.lsst.io). +- `TSTN` for Telescope & Site technical notes. +- `TESTN` for testing the technical system. *These notes may be purged at any time.* + +### cookiecutter.serial_number + +The serial number. Use three digits padded with zeros. +If you are creating a technical note manually with this template, see the [Create a technote](https://developer.lsst.io/project-docs/technotes.html#create-a-technote) instructions for how to determine the serial number. + +### cookiecutter.title + +The title of the technote. + +### cookiecutter.repo_name + +The name of the GitHub repository +Cookiecutter will automatically format this for you based on the [series](#cookiecutter_series) and [serial_number](#cookiecutter_serial_number) information. + +### cookiecutter.github_org + +The GitHub organization where this technote resides. +Choose a GitHub organization that matches the [series](#cookiecutter_series): + +- `lsst-dm` for the DM DMTN series. +- `lsst-it` for the ITTN series. +- `rubin-observatory` for the RTN series. +- `lsst-sims` for the Simulations Group's SMTN series. +- `lsst-sitcom` for the SITCOMTN series. +- `lsst-sqre` for the SQuaRE SQR series. +- `lsst-tstn` for the TSTN series. +- `lsst-sqre-testing` for the TESTN series. + +### cookiecutter.github_namespace + +Allow Cookiecutter to populate this variable. + +### cookiecutter.docushare_url + +This is the technote's URL in LSST's DocuShare archive. +Leave empty if the technote hasn't been registered with DocuShare yet (which is currently true in most cases). + +### cookiecutter.url + +The technote's public URL on LSST the Docs. +Allow cookiecutter to populate this variable. + +### cookiecutter.description + +A short description of the technote's content and purpose. +This description is used in the repository's README and may be used in the abstract in the document itself. + +### cookiecutter.copyright_year + +The year of the initial copyright claim. +Cookiecutter will automatically populate the current year. + +### cookiecutter.copyright_holder + +The initial copyright holder. +See [Copyrights for LSST DM work and the COPYRIGHT file](https://developer.lsst.io/legal/copyright-overview.html) for more information. + +## Examples + +### testn-000/ + +The [testn-000](testn-000) directory is an example of a technote generated from the template defaults. + +## Files + +### .github/workflows/ci.yaml + +Example: [.github/workflows/ci.yaml](testn-000/.github/workflows/ci.yaml). + +The [GitHub Actions](https://help.github.com/en/actions) configuration file. +CI is triggered whenever a technote is pushed to GitHub, and is responsible for deploying the technote to LSST the Docs. + +### .github/dependabot.yml + +This file configures [Dependabot](https://dependabot.com) to automatically update the technote's dependencies with pull requests on GitHub. + +### .pre-commit-config.yaml + +Example: [.pre-commit-config.yaml](testn-000/.pre-commit-config.yaml). + +This file configures the [Pre-commit](https://pre-commit.com) hooks that can run to validate and format the content with every commit. + +### conf.py + +Example: [conf.py](testn-000/conf.py). + +The Sphinx configuration file. +The basic Sphinx configuration comes our Documenteer package, but you can append the [typical configuration variables](http://www.sphinx-doc.org/en/master/usage/configuration.html) to the end of that ``conf.py`` to customize the Sphinx build. + +### COPYRIGHT + +Example: [COPYRIGHT](testn-000/COPYRIGHT). + +Record copyright claims in this file, one line per institution. +See the [copyright](../copyright) template and [Copyrights for LSST DM work and the COPYRIGHT file](https://developer.lsst.io/legal/copyright-overview.html). + +### index.md + +Example: [index.md](testn-000/index.md). + +This is the file that your technote's content should go into. + +### LICENSE + +Example: [LICENSE](testn-000/LICENSE). + +Generally speaking, LSST documentation is licensed under CC-BY 4.0. +See [Licensing LSST DM source code and content](https://developer.lsst.io/legal/licensing-overview.html) in the Developer Guide for more information. + +### local.bib + +Example: [local.bib](testn-000/local.bib). + +Add BibTeX citations to this file that aren't already available in [lsst-texmf](https://lsst-texmf.lsst.io). +See the [Updating bibliographies](https://lsst-texmf.lsst.io/developer.html#updating-bibliographies) documentation in lsst-texmf for how to migrate local bibliography data upstream into [lsst-texmf](https://lsst-texmf.lsst.io). + +### Makefile + +Example: [Makefile](testn-000/Makefile). + +The Makefile runs the local Sphinx build for authors on their local machines, and is also used by the continuous integration build (see [.github/workflows/ci.yaml](testn-000/.github/workflows/ci.yaml)). + +### README.md + +Example: [README.md](testn-000/README.md). + +The README advertises the technote to GitHub visitors and provides instructions for authors. + +### requirements.txt + +Example: [requirements.txt](testn-000/requirements.txt). + +The `requirements.txt` file defines build dependencies for both authors, on your local system, and for the CI system. +If your technote requires additional Python Packages and Sphinx extensions to build, add those requirements to this file. +Generally speaking, the [documenteer](https://documenteer.lsst.io) dependencies only needs to be updated if the build breaks or you need new features from [Documenteer](https://documenteer.lsst.io). + +## technote.toml + +Example: [technote.toml](testn-000/technote.toml). + +This is the configuration file for the technote. +It contains both metadata about the document (authors, draft/deprecation status, etc.) and configuration for the Sphinx build. +See the [Documenteer documentation](https://documenteer.lsst.io/technotes/index.html) for details. + +## tox.ini + +Example: [tox.ini](testtn-000/tox.ini) + +This is the [Tox](https://tox.wiki/en/latest/) configuration file. +Technotes use tox to build the document in an isolated Python environment. +The Makefile runs the build through tox. diff --git a/project_templates/technote_md_early_adopter/SConscript b/project_templates/technote_md_early_adopter/SConscript new file mode 100644 index 00000000..987f011d --- /dev/null +++ b/project_templates/technote_md_early_adopter/SConscript @@ -0,0 +1,9 @@ +from templatekit.builder import cookiecutter_project_builder + +# Run cookiecutter to generate the 'TESTN-000' report +env = Environment(BUILDERS={"Cookiecutter": cookiecutter_project_builder}) +env.Cookiecutter( + AlwaysBuild(Dir("TESTN-000")), + "cookiecutter.json", + cookiecutter_context={"series": "TESTN"}, +) diff --git a/project_templates/technote_md_early_adopter/cookiecutter.json b/project_templates/technote_md_early_adopter/cookiecutter.json new file mode 100644 index 00000000..ced236f1 --- /dev/null +++ b/project_templates/technote_md_early_adopter/cookiecutter.json @@ -0,0 +1,50 @@ +{ + "first_author": "First Last", + "series": [ + "DMTN", + "ITTN", + "RTN", + "PSTN", + "SMTN", + "SITCOMTN", + "SQR", + "TSTN", + "TESTN" + ], + "serial_number": "000", + "title": "Document Title", + "repo_name": "{{ cookiecutter.series.lower() }}-{{ cookiecutter.serial_number }}", + "github_org": [ + "lsst", + "lsst-dm", + "lsst-it", + "lsst-pst", + "lsst-sims", + "lsst-sitcom", + "lsst-sqre", + "lsst-tstn", + "lsst-sqre-testing" + ], + "github_namespace": "{{ cookiecutter.github_org }}/{{ cookiecutter.repo_name }}", + "docushare_url": "", + "url": "https://{{ cookiecutter.series.lower() }}-{{ cookiecutter.serial_number }}.lsst.io", + "description": "A short description of this document", + "copyright_year": "{% now 'utc', '%Y' %}", + "copyright_holder": [ + "Association of Universities for Research in Astronomy, Inc. (AURA)", + "Brookhaven Science Associates, LLC", + "California Institute of Technology", + "Fermi Research Alliance, LLC", + "The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory", + "The Trustees of Princeton University", + "University of Illinois Board of Trustees", + "University of Washington" + ], + "_copy_without_render": [ + "*.bib" + ], + "_extensions": [ + "jinja2_time.TimeExtension", + "templatekit.TemplatekitExtension" + ] +} diff --git a/project_templates/technote_md_early_adopter/templatekit.yaml b/project_templates/technote_md_early_adopter/templatekit.yaml new file mode 100644 index 00000000..514b3f4b --- /dev/null +++ b/project_templates/technote_md_early_adopter/templatekit.yaml @@ -0,0 +1,66 @@ +name: "Technote (Markdown) Early Adopter" +group: "Documents" +dialog_title: "Create an MD technote" +dialog_fields: + - key: "title" + label: "Technote title" + placeholder: "" + hint: "Don't include the document's handle and avoid MD markup." + component: "textarea" + - key: "description" + label: "Abstract or description" + hint: "You can use Markdown here." + component: "textarea" + placeholder: "" + - label: "Series" + component: "select" + preset_options: + - label: "DMTN" + value: "dmtn" + presets: + series: "DMTN" + github_org: "lsst-dm" + - label: "ITTN" + value: "ittn" + presets: + series: "ITTN" + github_org: "lsst-it" + - label: "PSTN" + value: "PSTN" + presets: + series: "PSTN" + github_org: "lsst-pst" + org: "PST" + - label: "RTN" + value: "rtn" + presets: + series: "RTN" + github_org: "lsst" + - label: "SITCOMTN" + value: "sitcomtn" + presets: + series: "SITCOMTN" + github_org: "lsst-sitcom" + - label: "SMTN" + value: "smtn" + presets: + series: "SMTN" + github_org: "lsst-sims" + - label: "SQR" + value: "sqr" + presets: + series: "SQR" + github_org: "lsst-sqre" + - label: "TSTN" + value: "tstn" + presets: + series: "TSTN" + github_org: "lsst-tstn" + - label: "Test" + value: "test" + presets: + series: "TESTN" + github_org: "lsst-sqre-testing" + - label: "Initial copyright holder" + key: "copyright_holder" + component: "select" diff --git a/project_templates/technote_md_early_adopter/testn-000/.github/dependabot.yml b/project_templates/technote_md_early_adopter/testn-000/.github/dependabot.yml new file mode 100644 index 00000000..696b5d7b --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "weekly" diff --git a/project_templates/technote_md_early_adopter/testn-000/.github/workflows/ci.yaml b/project_templates/technote_md_early_adopter/testn-000/.github/workflows/ci.yaml new file mode 100644 index 00000000..93f02566 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/.github/workflows/ci.yaml @@ -0,0 +1,12 @@ +name: CI + +'on': [push, pull_request, workflow_dispatch] + +jobs: + call-workflow: + uses: lsst-sqre/rubin-sphinx-technote-workflows/.github/workflows/ci.yaml@v1 + with: + handle: testn-000 + secrets: + ltd_username: ${{ secrets.LTD_USERNAME }} + ltd_password: ${{ secrets.LTD_PASSWORD }} diff --git a/project_templates/technote_md_early_adopter/testn-000/.gitignore b/project_templates/technote_md_early_adopter/testn-000/.gitignore new file mode 100644 index 00000000..da408c02 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/.gitignore @@ -0,0 +1,5 @@ +_build/ +.technote/ +.tox/ +venv/ +.venv/ diff --git a/project_templates/technote_md_early_adopter/testn-000/.pre-commit-config.yaml b/project_templates/technote_md_early_adopter/testn-000/.pre-commit-config.yaml new file mode 100644 index 00000000..88db007f --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/.pre-commit-config.yaml @@ -0,0 +1,7 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: trailing-whitespace + - id: check-yaml + - id: check-toml diff --git a/project_templates/technote_md_early_adopter/testn-000/COPYRIGHT b/project_templates/technote_md_early_adopter/testn-000/COPYRIGHT new file mode 100644 index 00000000..018816aa --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/COPYRIGHT @@ -0,0 +1 @@ +Copyright 2023 Association of Universities for Research in Astronomy, Inc. (AURA) diff --git a/project_templates/technote_md_early_adopter/testn-000/LICENSE b/project_templates/technote_md_early_adopter/testn-000/LICENSE new file mode 100644 index 00000000..2f244ac8 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/project_templates/technote_md_early_adopter/testn-000/Makefile b/project_templates/technote_md_early_adopter/testn-000/Makefile new file mode 100644 index 00000000..102b8c2f --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/Makefile @@ -0,0 +1,18 @@ +.PHONY: +init: + pip install tox pre-commit + pre-commit install + +.PHONY: +html: + tox run -e html + +.PHONY: +lint: + tox run -e lint,link-check + +.PHONY: +clean: + rm -rf _build + rm -rf .technote + rm -rf .tox diff --git a/project_templates/technote_md_early_adopter/testn-000/README.md b/project_templates/technote_md_early_adopter/testn-000/README.md new file mode 100644 index 00000000..6ee2a802 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/README.md @@ -0,0 +1,45 @@ +[![Website](https://img.shields.io/badge/testn--000-lsst.io-brightgreen.svg)](https://testn-000.lsst.io) +[![CI](https://github.com/lsst/testn-000/actions/workflows/ci.yaml/badge.svg)](https://github.com/lsst/testn-000/actions/workflows/ci.yaml) + +# Document Title + +## TESTN-000 + +A short description of this document + +**Links:** + +- Publication URL: https://testn-000.lsst.io +- Alternative editions: https://testn-000.lsst.io/v +- GitHub repository: https://github.com/lsst/testn-000 +- Build system: https://github.com/lsst/testn-000/actions/ + + +## Build this technical note + +You can clone this repository and build the technote locally if your system has Python 3.11 or later: + +.. code-block:: bash + +```sh +git clone https://github.com/lsst/testn-000 +cd testn-000 +make init +make html +``` + +Repeat the `make html` command to rebuild the technote after making changes. +If you need to delete any intermediate files for a clean build, run `make clean`. + +The built technote is located at `_build/html/index.html`. + +## Publishing changes to the web + +This technote is published to https://testn-000.lsst.io whenever you push changes to the `main` branch on GitHub. +When you push changes to a another branch, a preview of the technote is published to https://testn-000.lsst.io/v. + +## Editing this technical note + +The main content of this technote is in `index.md` (a Markdown file parsed as [CommonMark/MyST](https://myst-parser.readthedocs.io/en/latest/index.html)). +Metadata and configuration is in the `technote.toml` file. +For guidance on creating content and information about specifying metadata and configuration, see the Documenteer documentation: https://documenteer.lsst.io/technotes. diff --git a/project_templates/technote_md_early_adopter/testn-000/conf.py b/project_templates/technote_md_early_adopter/testn-000/conf.py new file mode 100644 index 00000000..f6deb9a3 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/conf.py @@ -0,0 +1,4 @@ +# See the Documenteer docs for how to customize conf.py: +# https://documenteer.lsst.io/technotes/ + +from documenteer.conf.technote import * # noqa F401 F403 diff --git a/project_templates/technote_md_early_adopter/testn-000/index.md b/project_templates/technote_md_early_adopter/testn-000/index.md new file mode 100644 index 00000000..eeedc1b3 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/index.md @@ -0,0 +1,11 @@ +# Document Title + +## Abstract + +```{abstract}} +A short description of this document +``` + +## Add content here + +See the [Documenteer documentation](https://documenteer.lsst.io/technotes/index.html) for tips on how to write and configure your new technote. diff --git a/project_templates/technote_md_early_adopter/testn-000/local.bib b/project_templates/technote_md_early_adopter/testn-000/local.bib new file mode 100644 index 00000000..e69de29b diff --git a/project_templates/technote_md_early_adopter/testn-000/requirements.txt b/project_templates/technote_md_early_adopter/testn-000/requirements.txt new file mode 100644 index 00000000..f2fa8461 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/requirements.txt @@ -0,0 +1 @@ +documenteer[technote]>=1.0.0a13 diff --git a/project_templates/technote_md_early_adopter/testn-000/technote.toml b/project_templates/technote_md_early_adopter/testn-000/technote.toml new file mode 100644 index 00000000..bc230daf --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/technote.toml @@ -0,0 +1,17 @@ +[technote] +id = "TESTN-000" +series_id = "TESTN" +canonical_url = "https://testn-000.lsst.io" +github_url = "https://github.com/lsst/testn-000" +github_default_branch = "main" +date_created = "2023-11-01T17:04:08Z" + +[[technote.authors]] +name = { name = "First Last" } +# orcid = "https://orcid.org/..." +# affiliations = [ +# { name = "Rubin Observatory", ror = "https://ror.org/048g3cy84" } +# ] + +[technote.status] +state = "draft" diff --git a/project_templates/technote_md_early_adopter/testn-000/tox.ini b/project_templates/technote_md_early_adopter/testn-000/tox.ini new file mode 100644 index 00000000..c7362230 --- /dev/null +++ b/project_templates/technote_md_early_adopter/testn-000/tox.ini @@ -0,0 +1,20 @@ +[tox] +environments = html +isolated_build = True + +[testenv] +skip_install = true +deps = + -rrequirements.txt + +[testenv:html] +commands = + sphinx-build --keep-going -n -W -T -b html -d _build/doctrees . _build/html + +[testenv:linkcheck] +commands = + sphinx-build --keep-going -n -W -T -b linkcheck -d _build/doctrees . _build/linkcheck + +[testenv:lint] +commands = + pre-commit run --all-files diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/dependabot.yml b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/dependabot.yml new file mode 100644 index 00000000..696b5d7b --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "weekly" diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/workflows/ci.yaml b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/workflows/ci.yaml new file mode 100644 index 00000000..c3d66c19 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.github/workflows/ci.yaml @@ -0,0 +1,12 @@ +name: CI + +'on': [push, pull_request, workflow_dispatch] + +jobs: + call-workflow: + uses: lsst-sqre/rubin-sphinx-technote-workflows/.github/workflows/ci.yaml@v1 + with: + handle: {{ cookiecutter.series.lower() }}-{{ cookiecutter.serial_number }} + secrets: + ltd_username: {% raw %}${{ secrets.LTD_USERNAME }}{% endraw %} + ltd_password: {% raw %}${{ secrets.LTD_PASSWORD }}{% endraw %} diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.gitignore b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.gitignore new file mode 100644 index 00000000..da408c02 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.gitignore @@ -0,0 +1,5 @@ +_build/ +.technote/ +.tox/ +venv/ +.venv/ diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.pre-commit-config.yaml b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.pre-commit-config.yaml new file mode 100644 index 00000000..88db007f --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/.pre-commit-config.yaml @@ -0,0 +1,7 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: trailing-whitespace + - id: check-yaml + - id: check-toml diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/COPYRIGHT b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/COPYRIGHT new file mode 100644 index 00000000..0d8da6ea --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/COPYRIGHT @@ -0,0 +1 @@ +Copyright {{ cookiecutter.copyright_year }} {{ cookiecutter.copyright_holder }} diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/LICENSE b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/LICENSE new file mode 100644 index 00000000..2f244ac8 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/Makefile b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/Makefile new file mode 100644 index 00000000..102b8c2f --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/Makefile @@ -0,0 +1,18 @@ +.PHONY: +init: + pip install tox pre-commit + pre-commit install + +.PHONY: +html: + tox run -e html + +.PHONY: +lint: + tox run -e lint,link-check + +.PHONY: +clean: + rm -rf _build + rm -rf .technote + rm -rf .tox diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/README.md b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/README.md new file mode 100644 index 00000000..5bd21b75 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/README.md @@ -0,0 +1,47 @@ +[![Website](https://img.shields.io/badge/{{ cookiecutter.repo_name|replace("-", "--") }}-lsst.io-brightgreen.svg)]({{ cookiecutter.url }}) +[![CI](https://github.com/{{ cookiecutter.github_namespace }}/actions/workflows/ci.yaml/badge.svg)](https://github.com/{{ cookiecutter.github_namespace }}/actions/workflows/ci.yaml) + +# {{ cookiecutter.title }} + +## {{ cookiecutter.series }}-{{ cookiecutter.serial_number }} + +{{ cookiecutter.description }} + +**Links:** + +- Publication URL: {{ cookiecutter.url }} +- Alternative editions: {{ cookiecutter.url }}/v +- GitHub repository: https://github.com/{{ cookiecutter.github_namespace }} +- Build system: https://github.com/{{ cookiecutter.github_namespace }}/actions/ +{% if cookiecutter.docushare_url|length > 0 %} +- LSST Docushare: {{ cookiecutter.docushare_url }}. +{% endif %} + +## Build this technical note + +You can clone this repository and build the technote locally if your system has Python 3.11 or later: + +.. code-block:: bash + +```sh +git clone https://github.com/{{ cookiecutter.github_namespace }} +cd {{ cookiecutter.series.lower() }}-{{ cookiecutter.serial_number }} +make init +make html +``` + +Repeat the `make html` command to rebuild the technote after making changes. +If you need to delete any intermediate files for a clean build, run `make clean`. + +The built technote is located at `_build/html/index.html`. + +## Publishing changes to the web + +This technote is published to {{ cookiecutter.url }} whenever you push changes to the `main` branch on GitHub. +When you push changes to a another branch, a preview of the technote is published to {{ cookiecutter.url }}/v. + +## Editing this technical note + +The main content of this technote is in `index.md` (a Markdown file parsed as [CommonMark/MyST](https://myst-parser.readthedocs.io/en/latest/index.html)). +Metadata and configuration is in the `technote.toml` file. +For guidance on creating content and information about specifying metadata and configuration, see the Documenteer documentation: https://documenteer.lsst.io/technotes. diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/conf.py b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/conf.py new file mode 100644 index 00000000..f6deb9a3 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/conf.py @@ -0,0 +1,4 @@ +# See the Documenteer docs for how to customize conf.py: +# https://documenteer.lsst.io/technotes/ + +from documenteer.conf.technote import * # noqa F401 F403 diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/index.md b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/index.md new file mode 100644 index 00000000..4355ef2f --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/index.md @@ -0,0 +1,11 @@ +# {{ cookiecutter.title }} + +## Abstract + +```{abstract}} +{{ cookiecutter.description }} +``` + +## Add content here + +See the [Documenteer documentation](https://documenteer.lsst.io/technotes/index.html) for tips on how to write and configure your new technote. diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/local.bib b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/local.bib new file mode 100644 index 00000000..e69de29b diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/requirements.txt b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/requirements.txt new file mode 100644 index 00000000..f2fa8461 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/requirements.txt @@ -0,0 +1 @@ +documenteer[technote]>=1.0.0a13 diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/technote.toml b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/technote.toml new file mode 100644 index 00000000..49aa62f9 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/technote.toml @@ -0,0 +1,17 @@ +[technote] +id = "{{ cookiecutter.series | escape_yaml_doublequoted }}-{{ cookiecutter.serial_number | escape_yaml_doublequoted }}" +series_id = "{{ cookiecutter.series | escape_yaml_doublequoted }}" +canonical_url = "{{ cookiecutter.url | escape_yaml_doublequoted }}" +github_url = "https://github.com/{{ cookiecutter.github_namespace | escape_yaml_doublequoted }}" +github_default_branch = "main" +date_created = "{% now 'utc', '%Y-%m-%dT%H:%M:%SZ' %}" + +[[technote.authors]] +name = { name = "{{ cookiecutter.first_author }}" } +# orcid = "https://orcid.org/..." +# affiliations = [ +# { name = "Rubin Observatory", ror = "https://ror.org/048g3cy84" } +# ] + +[technote.status] +state = "draft" diff --git a/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/tox.ini b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/tox.ini new file mode 100644 index 00000000..c7362230 --- /dev/null +++ b/project_templates/technote_md_early_adopter/{{cookiecutter.repo_name}}/tox.ini @@ -0,0 +1,20 @@ +[tox] +environments = html +isolated_build = True + +[testenv] +skip_install = true +deps = + -rrequirements.txt + +[testenv:html] +commands = + sphinx-build --keep-going -n -W -T -b html -d _build/doctrees . _build/html + +[testenv:linkcheck] +commands = + sphinx-build --keep-going -n -W -T -b linkcheck -d _build/doctrees . _build/linkcheck + +[testenv:lint] +commands = + pre-commit run --all-files diff --git a/project_templates/technote_rst_early_adopter/testn-000/technote.toml b/project_templates/technote_rst_early_adopter/testn-000/technote.toml index 24af71ae..bc230daf 100644 --- a/project_templates/technote_rst_early_adopter/testn-000/technote.toml +++ b/project_templates/technote_rst_early_adopter/testn-000/technote.toml @@ -4,7 +4,7 @@ series_id = "TESTN" canonical_url = "https://testn-000.lsst.io" github_url = "https://github.com/lsst/testn-000" github_default_branch = "main" -date_created = "2023-11-01T14:56:03Z" +date_created = "2023-11-01T17:04:08Z" [[technote.authors]] name = { name = "First Last" }