From dd124b12d8883d2d4328921278b8c802e6f70d94 Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Tue, 27 Aug 2024 13:42:26 -0400 Subject: [PATCH 1/5] use `towncrier` to handle changelog entries --- .github/pull_request_template.md | 6 +++++- .github/workflows/changelog.yml | 32 +++++++++++++++++++------------- .readthedocs.yaml | 3 +++ CHANGES.rst | 23 ----------------------- changes/.gitkeep | 1 + changes/281.bugfix.rst | 1 + docs/rtd_environment.yaml | 1 + pyproject.toml | 18 ++++++++++++++++++ 8 files changed, 48 insertions(+), 37 deletions(-) create mode 100644 changes/.gitkeep create mode 100644 changes/281.bugfix.rst diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index de860697..2da8528f 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,7 +14,11 @@ This PR addresses ... **Checklist** -- [ ] added entry in `CHANGES.rst` (either in `Bug Fixes` or `Changes to API`) +- [ ] for a public change, added a [towncrier news fragment](https://towncrier.readthedocs.io/en/stable/tutorial.html#creating-news-fragments)
`changes/..rst` + + - ``changes/.apichange.rst``: change to public API + - ``changes/.bugfix.rst``: fixes an issue + - ``changes/.general.rst``: infrastructure or miscellaneous change - [ ] updated relevant tests - [ ] updated relevant documentation - [ ] updated relevant milestone(s) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 3663af86..7beb997b 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -1,24 +1,30 @@ -name: Ensure changelog +name: changelog on: pull_request: - types: [labeled, unlabeled, opened, synchronize, reopened] + types: + - labeled + - unlabeled + - opened + - synchronize + - reopened -# Only cancel in-progress jobs or runs for the current workflow -# This cancels the already triggered workflows for a specific PR without canceling -# other instances of this workflow (other PRs, scheduled triggers, etc) when something -# within that PR re-triggers this CI concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - ensure_changelog: - name: Verify that a changelog entry exists for this pull request + check: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-changelog-entry-needed') }} runs-on: ubuntu-latest steps: - - uses: scientific-python/action-check-changelogfile@0.2 - env: - CHANGELOG_FILENAME: CHANGES.rst - CHECK_MILESTONE: false - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/setup-python@v5 + with: + python-version: 3 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - run: pip install . + - run: pip install towncrier + - run: towncrier check + - run: towncrier build --draft | grep -P '[\(\[][^\)\]]*#${{ github.event.number }}[,\)\]]' diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 15010cb7..e35285a8 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -20,6 +20,9 @@ build: os: ubuntu-22.04 tools: python: mambaforge-4.10 + jobs: + post_install: + - towncrier build --keep conda: environment: docs/rtd_environment.yaml diff --git a/CHANGES.rst b/CHANGES.rst index 2f3a46a9..f7462f67 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,26 +1,3 @@ -1.8.1 (unreleased) -================== - -General -------- - -- - -Changes to API --------------- - -- - -Bug Fixes ---------- - -- - -ramp_fitting -~~~~~~~~~~~~ - -- Fixed memory leak in C-extension.[#281] - 1.8.0 (2024-08-14) ================== diff --git a/changes/.gitkeep b/changes/.gitkeep new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/changes/.gitkeep @@ -0,0 +1 @@ + diff --git a/changes/281.bugfix.rst b/changes/281.bugfix.rst new file mode 100644 index 00000000..1535f2de --- /dev/null +++ b/changes/281.bugfix.rst @@ -0,0 +1 @@ +Fixed memory leak in C-extension. diff --git a/docs/rtd_environment.yaml b/docs/rtd_environment.yaml index 161fef38..6e6bfa6a 100644 --- a/docs/rtd_environment.yaml +++ b/docs/rtd_environment.yaml @@ -7,3 +7,4 @@ dependencies: - pip - graphviz - sphinx_rtd_theme>1.2.0 + - towncrier diff --git a/pyproject.toml b/pyproject.toml index 6290b45c..c30f2805 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -248,3 +248,21 @@ archs = [ "auto", "aarch64", ] + +[tool.towncrier] +filename = "CHANGES.rst" +directory = "changes" +package = "stcal" +title_format = "{version} ({project_date})" +ignore = [".gitkeep"] +wrap = true +issue_format = "`#{issue} `_" + +[tool.towncrier.fragment.apichange] +name = "Changes to API" + +[tool.towncrier.fragment.bugfix] +name = "Bug Fixes" + +[tool.towncrier.fragment.general] +name = "General" From 2e6eabf34fe2c2819794e8e4f12950fd681cff34 Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Tue, 27 Aug 2024 13:45:47 -0400 Subject: [PATCH 2/5] add change log entry --- changes/284.general.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/284.general.rst diff --git a/changes/284.general.rst b/changes/284.general.rst new file mode 100644 index 00000000..5019825f --- /dev/null +++ b/changes/284.general.rst @@ -0,0 +1 @@ +use ``towncrier`` to handle changelog entries From 495571425e874a66ef51ef57bc40dd494247135e Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Tue, 27 Aug 2024 13:49:23 -0400 Subject: [PATCH 3/5] add changelog to docs --- docs/index.rst | 1 + docs/stcal/changes.rst | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 docs/stcal/changes.rst diff --git a/docs/index.rst b/docs/index.rst index 3e0f95a0..bde1f914 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -29,3 +29,4 @@ Package Documentation :maxdepth: 1 stcal/package_index.rst + stcal/changes.rst diff --git a/docs/stcal/changes.rst b/docs/stcal/changes.rst new file mode 100644 index 00000000..95779898 --- /dev/null +++ b/docs/stcal/changes.rst @@ -0,0 +1,7 @@ +.. currentmodule:: stcal + +*********** +Change Log +*********** + +.. include:: ../../CHANGES.rst From b548703ad4e971db6a24c0c38a4a16bf147e921e Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Tue, 27 Aug 2024 14:02:52 -0400 Subject: [PATCH 4/5] looser grep --- .github/workflows/changelog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 7beb997b..cb5c44f4 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -27,4 +27,4 @@ jobs: - run: pip install . - run: pip install towncrier - run: towncrier check - - run: towncrier build --draft | grep -P '[\(\[][^\)\]]*#${{ github.event.number }}[,\)\]]' + - run: towncrier build --draft | grep -P '#${{ github.event.number }}' From f6371235a86d9472523c5ba441e4b69f83ccdb3f Mon Sep 17 00:00:00 2001 From: zacharyburnett Date: Wed, 28 Aug 2024 09:57:06 -0400 Subject: [PATCH 5/5] make example more explicit --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 2da8528f..6327780e 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,7 +14,7 @@ This PR addresses ... **Checklist** -- [ ] for a public change, added a [towncrier news fragment](https://towncrier.readthedocs.io/en/stable/tutorial.html#creating-news-fragments)
`changes/..rst` +- [ ] for a public change, added a towncrier news fragment in `changes/`:
`echo "changed something" > changes/..rst` - ``changes/.apichange.rst``: change to public API - ``changes/.bugfix.rst``: fixes an issue