diff --git a/.github/ISSUE_TEMPLATE/release_checklist.md b/.github/ISSUE_TEMPLATE/release_checklist.md index 56c5fca..63e624b 100644 --- a/.github/ISSUE_TEMPLATE/release_checklist.md +++ b/.github/ISSUE_TEMPLATE/release_checklist.md @@ -1,41 +1,41 @@ --- name: Release -about: Checklist and communication channel for PyPI and GitHub release -title: "Ready for PyPI/GitHub release" +about: Checklist and communication channel for GitHub and conda-forge release +title: "Ready for GitHub/conda-forge release" labels: "release" assignees: "" --- -### PyPI/GitHub rc-release preparation checklist: +### GitHub rc-release preparation checklist: - [ ] All PRs/issues attached to the release are merged. - [ ] All the badges on the README are passing. - [ ] License information is verified as correct. If you are unsure, please comment below. -- [ ] Locally rendered documentation contains all appropriate pages, tutorials, and other human-written text is up-to-date with any changes in the code. -- [ ] All API references are included. To check this, run `conda install scikit-package` and then `package build api-doc`. Review any edits made by rerendering the docs locally. +- [ ] Locally rendered documentation contains all appropriate pages and other human-written text is up-to-date with any changes in the code. - [ ] Installation instructions in the README, documentation, and the website are updated. -- [ ] Successfully run any tutorial examples or do functional testing with the latest Python version. - [ ] Grammar and writing quality are checked (no typos). -- [ ] Install `pip install build twine`, run `python -m build` and `twine check dist/*` to ensure that the package can be built and is correctly formatted for PyPI release. -- [ ] Dispatch matrix testing to test the release on all Python versions and systems. If you do not have permission to run this workflow, tag the maintainer and say `@maintainer, please dispatch matrix testing workflow`. +- [ ] `FALLBACK_VERSION` in `site_scons/fallback_version.py` is updated to `.post0`. Without this, the SCons build fails after tagging. +- [ ] `scons test` passes locally with the latest conda-forge compilers and dependencies. +- [ ] Dispatch matrix testing to test the release on all systems. If you do not have permission to run this workflow, tag the maintainer and say `@maintainer, please dispatch matrix testing workflow`. Matrix testing also runs automatically on the tag and blocks the release if it fails. -Please tag the maintainer (e.g., @username) in the comment here when you are ready for the PyPI/GitHub release. Include any additional comments necessary, such as version information and details about the pre-release here: +Please tag the maintainer (e.g., @username) in the comment here when you are ready for the GitHub release. Include any additional comments necessary, such as version information and details about the pre-release here: -### PyPI/GitHub full-release preparation checklist: +### GitHub full-release preparation checklist: -- [ ] Create a new conda environment and install the rc from PyPI (`pip install ==??`) -- [ ] License information on PyPI is correct. -- [ ] Docs are deployed successfully to `https:///`. -- [ ] Successfully run all tests, tutorial examples or do functional testing. +- [ ] The rc GitHub release and its source tarball appear correctly on the releases page. +- [ ] Docs are deployed successfully to `https://www.diffpy.org/libdiffpy`. +- [ ] Successfully run all tests and do functional testing, e.g., with `diffpy.srreal` built against the rc. Please let the maintainer know that all checks are done and the package is ready for full release. ### conda-forge release preparation checklist: - + -- [ ] Ensure that the full release has appeared on PyPI successfully. -- [ ] New package dependencies listed in `conda.txt` and `tests.txt` are added to `meta.yaml` in the feedstock. +- [ ] Ensure that the full release has appeared on GitHub successfully. +- [ ] `version` and `sha256` of the GitHub source tarball are updated in `meta.yaml` in the feedstock. +- [ ] New package dependencies listed in `build.txt`, `conda.txt` and `tests.txt` are added to `meta.yaml` in the feedstock. +- [ ] `license_file` in `meta.yaml` points to `LICENSE.rst` (renamed from `LICENSE.txt`). - [ ] Close any open issues on the feedstock. Reach out to the maintainer if you have questions. - [ ] Tag the maintainer for conda-forge release. @@ -43,5 +43,5 @@ Please let the maintainer know that all checks are done and the package is ready -- [ ] Run tutorial examples and conduct functional testing using the installation guide in the README. Attach screenshots/results as comments. -- [ ] Documentation (README, tutorials, API references, and websites) is deployed without broken links or missing figures. +- [ ] Install the released package from conda-forge and conduct functional testing using the installation guide in the README. Attach screenshots/results as comments. +- [ ] Documentation (README, API references, and websites) is deployed without broken links or missing figures. diff --git a/.github/workflows/check-news-item.yml b/.github/workflows/check-news-item.yml index 6a572b6..e9a4b78 100644 --- a/.github/workflows/check-news-item.yml +++ b/.github/workflows/check-news-item.yml @@ -2,8 +2,6 @@ name: Check for News on: pull_request_target: - branches: - - main # GitHub does not evaluate expressions in trigger filters; edit this value if your base branch is not main jobs: check-news-item: diff --git a/.github/workflows/release-github-on-tag.yml b/.github/workflows/release-github-on-tag.yml index a551162..b771e7c 100644 --- a/.github/workflows/release-github-on-tag.yml +++ b/.github/workflows/release-github-on-tag.yml @@ -1,4 +1,4 @@ -name: Build Wheel and Release +name: Release on GitHub # Trigger on tag push or manual dispatch. # Tag and release privilege are verified inside the reusable workflow. @@ -24,3 +24,14 @@ jobs: uses: scikit-package/release-scripts/.github/workflows/_release-github.yml@v0 secrets: PAT_TOKEN: ${{ secrets.PAT_TOKEN }} + + docs-release: + needs: [release-github] + permissions: + contents: write + uses: scikit-package/release-scripts/.github/workflows/_release-docs.yml@v0 + with: + project: libdiffpy + c_extension: true + headless: false + python_version: 0 diff --git a/news/ci.rst b/news/ci.rst new file mode 100644 index 0000000..8197c60 --- /dev/null +++ b/news/ci.rst @@ -0,0 +1,24 @@ +**Added:** + +* + +**Changed:** + +* Publish docs automatically after a successful GitHub release. +* Update the release checklist for GitHub and conda-forge releases without PyPI. + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +*