Changelog

2.1.1 2023-04-28

  • [Bug]: Fix up an internal utility which monkeypatches a Sphinx/docutils internal, so that it accepts arbitrary args/kwargs instead of exploding on newer Sphinxes.

2.0.1 2023-04-28

  • [Bug]: Fix up an internal utility which monkeypatches a Sphinx/docutils internal, so that it accepts arbitrary args/kwargs instead of exploding on newer Sphinxes.

2.1.0 2023-02-24

  • [Feature]: Allow controlling the name of your development branch for source code links (eg “Next 1.x feature release” section headers) via the new releases_development_branch config option.

  • [Feature]: Add a new configuration setting, releases_supported_versions, allowing you to limit how many “Next 1.x feature release” (or bugfix, etc) sections appear at the top of your changelog.

2.0.0 2022-12-31

  • [Bug]: Don’t make tmpdirs in releases.util.make_app when being given explicit directory args.

  • [Bug]: Changelog transformation sometimes failed to occur when running under a ‘single HTML file’ Sphinx builder (eg singlehtml), which resulted in ‘unknown node’ errors. This has been fixed.

  • [Support]: Migrated the test suite to use pytest-relaxed (and thus pytest) instead of spec.

  • [Support]: Dropped support for Sphinx <4. We tried to support 1.8+, but too many transitive dependencies have clearly “moved on” and cause various cells in the test matrix to fail hard.

    Warning

    This change is backwards incompatible if your Sphinx docs don’t already work on recent Sphinx versions.

  • [Support]: Dropped support for Python 2.7, Python 3.4, and Python 3.5, to align slightly better with upstream (and ecosystem) EOLs.

  • [Support]: The releases_release_uri/releases_issue_uri settings now allow modern (.format/f-strings) string formatting, in addition to the old %s-based interpolation.

  • [Support]: Administrivia overhaul: enhanced README, packaging metadata cleaned up/expanded, CI moved to Circle-CI, renamed dev branch to main, and more besides.

1.6.3 2020-01-10

  • [Support] #87: (via #88) Our upper Sphinx version limit was mostly defensive and at this point is just too old to even build on ReadTheDocs successfully. Removed it for the time being. Thanks to José Sánchez-Gallego for the nudge and the patch.

1.6.2 2020-01-10

  • [Support] #84: Pin us to semantic-version<2.7 as they changed their APIs (…) in that version in a way that breaks us. We do not need anything they’ve added recently, so the conservative response is to just pin until we truly need to upgrade. Thanks to everyone who reported and submitted workarounds for this.

1.5.2 2020-01-10

  • [Support] #84: Pin us to semantic-version<2.7 as they changed their APIs (…) in that version in a way that breaks us. We do not need anything they’ve added recently, so the conservative response is to just pin until we truly need to upgrade. Thanks to everyone who reported and submitted workarounds for this.

1.6.1 2018-07-02

  • [Support] #73: (via #77) Add support for Sphinx 1.7.x (while retaining support for previous versions of Sphinx). Thanks to Miro Hrončok for the patch.

1.5.1 2018-07-02

  • [Support] #73: (via #77) Add support for Sphinx 1.7.x (while retaining support for previous versions of Sphinx). Thanks to Miro Hrončok for the patch.

1.6.0 2018-06-20

  • [Feature] #75: Update releases.util.parse_changelog so it hands kwargs into releases.util.make_app, which in turn now accepts a load_extensions argument triggering loading of one’s configured extensions. This is only of interest if you’re using parse_changelog directly; it does not impact normal Releases usage.

1.5.0 2018-05-02

  • [Feature] #59: Allow multiple changelog files – releases_document_name may now optionally be a list of strings instead of a single string. Thanks to William Minchin for the patch.

  • [Support] #73: Sphinx 1.7.x changed some semi-public APIs; given this is the second minor release in a row to do so, we’re explicitly bracketing our setup.py dependencies to Sphinx >= 1.3 and < 1.7. We expect to bump this up one minor release at a time as we add compatibility back in.

  • [Support] #74: We never pulled our README into our setup.py metadata, resulting in a rather sparse PyPI page! This has been fixed. Thanks to Peter Demin for the report.

1.4.2 2018-04-27

  • [Support] #74: We never pulled our README into our setup.py metadata, resulting in a rather sparse PyPI page! This has been fixed. Thanks to Peter Demin for the report.

1.4.1 2018-03-28

  • [Support] #73: Sphinx 1.7.x changed some semi-public APIs; given this is the second minor release in a row to do so, we’re explicitly bracketing our setup.py dependencies to Sphinx >= 1.3 and < 1.7. We expect to bump this up one minor release at a time as we add compatibility back in.

1.4.0 2017-10-20

  • [Bug]: Identified a handful of issues with our Sphinx pin & subsequently, internal changes in Sphinx 1.6 which broke (and/or appear to break, such as noisy warnings) our own behavior. These have (hopefully) all been fixed.

  • [Support] #68: Update packaging requirements to allow for sphinx>=1.3,<2. Thanks to William Minchin.

  • [Support]: Drop Python 2.6 and 3.3 support, to correspond with earlier changes in Sphinx and most other public Python projects.

1.3.2 2017-10-19

  • [Support] #68: Update packaging requirements to allow for sphinx>=1.3,<2. Thanks to William Minchin.

1.3.1 2017-05-18

  • [Bug] #66: (via #67) Deal with some Sphinx 1.6.1 brokenness causing AttributeError by leveraging getattr()’s default-value argument. Thanks to Ian Cordasco for catch & patch.

  • [Bug] #60: Report extension version to Sphinx for improved Sphinx debug output. Credit: William Minchin.

1.3.0 2016-12-09

  • [Feature]: Add releases.util, exposing (among other things) a highly useful parse_changelog(path) function that returns a user-facing dict representing a parsed changelog. Allows users to examine their changelogs programmatically and answer questions like “do I have any outstanding bugs in the 1.1 release line?”.

  • [Support] #51: Modernize release management so PyPI trove classifiers are more accurate, wheel archives are universal instead of Python 2 only, and release artifacts are GPG signed.

1.2.1 2016-07-25

  • [Bug] #36: Changelogs with no releases whatsoever should still be viable instead of raising exceptions. This is now happily the case. All items in such changelogs will end up in a single “unreleased features” list, just as with regular prehistory entries. Thanks to Steve Ivy for initial report and André Caron for additional feedback.

  • [Bug] #56: Fix exceptions that occurred when no release/issue link options were configured. Now those options are truly optional: release version and issue number text will simply display normally instead of as hyperlinks. Thanks to André Caron for the report.

  • [Support] #51: Modernize release management so PyPI trove classifiers are more accurate, wheel archives are universal instead of Python 2 only, and release artifacts are GPG signed.

1.2.0 2016-05-20

  • [Feature] #19: Add unstable_prehistory option/mode for changelogs whose 0.x release cycle is “rapid” or “unstable” and doesn’t closely follow normal semantic version-driven organization. See “Unstable prehistory” mode.

  • [Bug] #53: Tweak newly-updated models so bugfix items prior to an initial release are considered ‘major bugs’ so they get rolled into that initial release (instead of causing a ValueError).

  • [Bug] #55: Non-annotated changelog line items (which implicitly become bugs) were incorrectly truncating their contents in some situations (basically, any time they included non-regular-text elements like monospace, bold etc). This has been fixed.

  • [Bug]: Fix formatting of release header dates; a “75% text size” style rule has had an uncaught typo for some time.

1.1.0 2016-04-28

  • [Feature] #45: Add support for major version transitions (e.g. 1.0 to 2.0).

    Note

    This adds a new install-time dependency: the semantic_version library. It’s pure Python, so installation should be trivial.

  • [Bug] #44: Update one of our internal docutils-related classes for compatibility with Sphinx 1.4.x. Thanks to Gabi Davar for catch & patch.

1.0.0 2015-11-05

  • [Feature] #41: Clean up changelog discovery so one can have comments, paragraphs or other non-bullet-list elements above or below the changelog. Thanks to Rodrigue Cloutier for the original request/patch.

  • [Feature] #42: For readability, issues within each release so they are displayed in feature->bug->support order.

0.7.0 2014-09-04

  • [Feature] #21: Allow duplicate issue numbers; not allowing them was technically an implementation detail. Thanks to Dorian Puła for the patch.

  • [Bug] #30: Add LICENSE (plus a handful of other administrative files) to a MANIFEST.in so sdists pick it up. Thanks to Zygmunt Krynicki for catch & original patch (#33).

0.6.1 2014-04-06

  • [Bug]: Fix a silly issue with the new feature from #22 where it accidentally referred to the Sphinx document title instead of the document filename.

0.6.0 2014-04-03

  • [Feature] #26: Allow specifying Github path shorthand config option instead of explicit release/issue URL strings.

  • [Feature] #22: Make the document name used as the changelog - previously hardcoded as changelog (.rst) - configurable. Thanks to James Mills for the feature request.

0.5.3 2014-03-15

  • [Bug] #24: Broke inline issue parsing; fixed now.

  • [Bug] #25: Empty/no-issue line items broke at some point; fixed.

0.5.2 2014-03-13

  • [Bug] #23: Rework implementation to deal with issue descriptions that span more than one paragraph - subsequent paragraphs/blocks were not being displayed prior.

0.5.1 2014-02-11

  • [Bug]: Fix silly bug in #20 that cropped up on Python 3.x.

0.5.0 2014-02-11

  • [Feature] #20: Allow specifying minimum release line in bugfixes that don’t apply to all active lines (e.g. because they pertain to a recently added feature.)

0.4.0 2013-12-24

  • [Feature] #17: Allow releases to explicitly define which issues they include. Useful for overriding default assumptions (e.g. a special bugfix release from an otherwise dormant line.)

  • [Support] #15: Add Concepts to flesh out some assumptions not adequately explained in Usage.

0.3.1 2013-12-18

  • [Bug] #16: Fix some edge cases regarding release ordering & unreleased issue display. Includes splitting unreleased display info into two ‘Next release’ pseudo-release entries.

0.3.0 2013-11-21

  • [Feature] #1: (also #3, #10) Allow using - or 0 as a dummy issue ‘number’, which will result in no issue number/link being displayed. Thanks to Markus Zapke-Gründemann and Hynek Schlawack for patches & discussion.

    • This feature lets you categorize changes that aren’t directly related to issues in your tracker. It’s an improvement over, and replacement for, the previous “vanilla bullet list items are treated as bugs” behavior.

    • Said behavior (non-role-prefixed bullet list items turning into regular bugs) is being retained as there’s not a lot to gain from deactivating it.

  • [Feature] #11: Fix up styling so changelogs don’t look suboptimal under the new Read The Docs theme. Still looks OK under their old theme too!

  • [Bug] #9: Clean up additional ‘unreleased’ display/organization behavior, including making sure ALL unreleased issues show up as ‘unreleased’. Thanks to Donald Stufft for the report.

  • [Support]: Explicitly documented how non-role-prefixed line items are preserved.

  • [Support]: Edited the README/docs to be clearer about how Releases works/operates.

  • [Support]: Handful of typos, doc tweaks & addition of a .gitignore file. Thanks to Markus Zapke-Gründemann.

  • [Support]: Created a basic test suite to protect against regressions.

  • [Support]: Move to actual Sphinx docs so we can use ourselves.

0.2.4 2013.10.04

  • [Bug]: Updated non-role-prefixed line items so they get prefixed with a ‘[Bug]’ signifier (since they are otherwise treated as bugfix items.)

  • [Bug]: Fix duplicate display of “bare” (not prefixed with an issue role) changelog entries. Thanks again to Markus.

  • [Support]: Explicitly documented how non-role-prefixed line items are preserved.

  • [Support]: Edited the README/docs to be clearer about how Releases works/operates.

  • [Support]: Handful of typos, doc tweaks & addition of a .gitignore file. Thanks to Markus Zapke-Gründemann.

0.2.3 2013.09.16

  • [Bug]: Fix a handful of bugs in release assignment logic.

0.2.2 2013.09.15

  • [Bug]: Ensured Python 3 compatibility.

0.2.1 2013.09.15

  • [Bug]: Fixed a stupid bug causing invalid issue hyperlinks.

0.2.0 2013.09.15

  • [Feature]: Basic functionality.