Skip to content

Commit

Permalink
Use towncrier to manage release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
ericpre committed Dec 1, 2023
1 parent d06ef3a commit ed76f2f
Show file tree
Hide file tree
Showing 6 changed files with 75 additions and 13 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
doc/_build/*
doc/auto_examples/*
doc/sg_execution_times.rst
build/*
dist/*
*egg-info*
Expand Down
13 changes: 8 additions & 5 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
jobs:
post_checkout:
- git fetch --unshallow || true

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand All @@ -20,8 +23,8 @@ formats:
- htmlzip

python:
install:
- method: pip
path: .
extra_requirements:
- doc
install:
- method: pip
path: .
extra_requirements:
- doc
8 changes: 5 additions & 3 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ Changelog
*********

Changelog entries for the development version are available at
https://holospy.readthedocs.io/en/latest/changes.html
https://exspy.readthedocs.io/en/latest/changes.html

0.1.dev0 (UNRELEASED)
=====================

.. towncrier-draft-entries:: |release| [UNRELEASED]

.. towncrier release notes start
- Enable ``signal_range`` arguments when using ``subpixel=True`` in :py:meth:`~.signals.EELSSpectrum.align_zero_loss_peak` (`#7 <https://github.com/hyperspy/exspy/pull/7>`_)
- Support for tabulated :ref:`Generalised Oscillator Strengths (GOS) <eels.GOS>` using the
Expand Down
8 changes: 8 additions & 0 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"sphinx.ext.intersphinx",
"sphinx.ext.napoleon",
"sphinx_gallery.gen_gallery",
"sphinxcontrib.towncrier",
]

linkcheck_ignore = [
Expand Down Expand Up @@ -147,3 +148,10 @@

copybutton_prompt_text = r">>> |\.\.\. "
copybutton_prompt_is_regexp = True

# -- Options for towncrier_draft extension -----------------------------------

# Options: draft/sphinx-version/sphinx-release
towncrier_draft_autoversion_mode = "draft"
towncrier_draft_include_empty = False
towncrier_draft_working_directory = ".."
50 changes: 49 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ file = "LICENSE"
"sphinx-design",
"sphinx-favicon",
"sphinx-gallery",
"sphinxcontrib-towncrier",
"towncrier",
]
"tests" = [
"pytest >= 5.0",
Expand Down Expand Up @@ -96,7 +98,10 @@ force-exclude = '''
[tool.coverage.run]
branch = true
source = ["hyperspy"]
omit = ["hyperspy/tests/*"]
omit = [
"hyperspy/tests/*",
"prepare_release.py",
]

[tool.coverage.report]
precision = 2
Expand All @@ -120,3 +125,46 @@ include = ["exspy*"]
# Presence enables setuptools_scm, the version will be determine at build time from git
# The version will be updated by the `prepare_release.py` script
fallback_version = "0.1.dev0"


[tool.towncrier]
package = "exspy"
filename = "CHANGES.rst"
directory = "upcoming_changes/"
title_format = "{version} ({project_date})"
issue_format = "`#{issue} <https://github.com/hyperspy/exspy/issues/{issue}>`_"

[[tool.towncrier.type]]
directory = "new"
name = "New features"
showcontent = true

[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug Fixes"
showcontent = true

[[tool.towncrier.type]]
directory = "doc"
name = "Improved Documentation"
showcontent = true

[[tool.towncrier.type]]
directory = "deprecation"
name = "Deprecations"
showcontent = true

[[tool.towncrier.type]]
directory = "enhancements"
name = "Enhancements"
showcontent = true

[[tool.towncrier.type]]
directory = "api"
name = "API changes"
showcontent = true

[[tool.towncrier.type]]
directory = "maintenance"
name = "Maintenance"
showcontent = true
8 changes: 4 additions & 4 deletions releasing_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ To publish a new exSpy release do the following steps:

## Preparation

- Create a new PR to the 'main' branch for the release process, e.g. `release_v0.1.1` with
the following changes:
- Update and check release notes
- Update dev `fallback_version` in `pyproject.toml`
- In a pull request, prepare the release by running the `prepare_release.py` python script (e.g. `python prepare_release.py 0.2`) , which will do the following:
- update the release notes in `CHANGES.rst` by running `towncrier`,
- update the `setuptools_scm` fallback version in `pyproject.toml` (for a patch release, this will stay the same).
- Check release notes
- Let that PR collect comments for a day to ensure that other maintainers are comfortable
with releasing
- Set correct date and version number in `CHANGES.rst`
Expand Down

0 comments on commit ed76f2f

Please sign in to comment.