Changelog#
The changelog is managed and orchestrated with towncrier.
The root level changelog
directory contains ReStructuredText
(.rst
) news fragment files that each describe a change made to
geovista
. These news fragment files will be removed, combined and
then added as the final release notes by
towncrier to the root level
CHANGELOG.rst
file when performing a release of geovista
.
The intended audience of the CHANGELOG.rst
are users. Therefore,
avoid describing low-level internal details only suitable for contributors,
if possible.
When describing a change in its news fragment file make sure to use full sentences in the past or present tense with appropriate punctuation, for example:
Skip tests if their optional package dependencies are not installed.
or
Cross-referenced module headings to improve primary sidebar readability.
The following extlinks conveniences may be used within a news fragment file:
:issue:
- Link to ageovista
issue e.g., :issue:`123`:pull:
- Link to ageovista
pull-request e.g., :pull:`456`:user:
- Link to a user e.g., :user:`bjlittle`
Note
Remember to acknowledge the author/s of a pull-request e.g.,
Added an awesome new feature. (:user:`bjlittle`)
Each news fragment file must be named as <PULL-REQUEST>.<TYPE>.rst
,
where <PULL-REQUEST>
is the pull-request number,
and <TYPE>
is one of:
breaking
: Removals and backward incompatible breaking changes that may affect user codedeprecation
: Declaration of removals and backward incompatible changesfeature
: New user facing behaviours or capabilityenhancement
: Updates to existing behaviours or capability, including performancebugfix
: Correction to undesired behaviours or reported bugsdependency
: Package dependency removals, additions, pins etcasset
: Data, media and asset updates etcdocumentation
: Notable changes to the documentation structure, content, render or buildinternal
: Miscellaneous internal and maintenance changescommunity
: Celebrate our awesome community members and their contributions, including social changescontributor
: Changes that affect contributors such as standards, conventions, running tests, building docs, environments, security etcmisc
: Catch all for items that don’t fit elsewhere
e.g., 123.feature.rst
or 456.bugfix.rst
.
towncrier is configured in the
pyproject.toml
. For further details see the [tool.towncrier]
section.
Note that the order of the [[tool.towncrier.type]]
entries is significant,
as it is mirrored in the final rendered changelog.
If you’re unsure what news fragment <TYPE>
to use, then don’t hesitate to
ask in your pull-request.
Tip
If a change is associated with more than one pull-request, then create a
news fragment file for each pull-request with identical content e.g.,
a change associated with 3 pull-requests has the following 3 news fragment
files 101.feature.rst
, 102.feature.rst
and 103.feature.rst
, all of
which contain exactly the same content.
towncrier preserves multiple paragraphs and the formatting within a news fragment file, however concise single paragraph entries are encouraged.
Tip
Run towncrier --draft
to render a preview of the news fragment files in the
changelog
directory.
Changelog Quality Assurance#
Quality assurance of changelog
contributions is performed by the
ci-changelog
Action.
It performs the following automated checks on each pull-request:
Ensures that the pull-request includes a
changelog
news fragmentThe news fragment file conforms with the expected
<PULL-REQUEST>.<TYPE>.rst
naming convention i.e.,The
<PULL-REQUEST>
component is a valid integer and matches the pull-request numberThe
<TYPE>
matches a configured[[tool.towncrier.type]]
entry in thepyproject.toml
The
rst
extension is provided
The news fragment contains at least one author attribution e.g.,
(:user:`bjlittle`)
, as the final entry
These quality assurance checks can be skipped by adding the
skip changelog
label to the pull-request. Note that a pull-request generated
by the following bots or services will have the skip changelog
label
automatically applied:
dependabot version updates
pre-commit.ci hook updates
ci-locks Action
Also, see the ci-label Action for automated pull-request labelling.
Removing the skip changelog
label from a pull-request will trigger the
ci-changelog
Action workflow.