Skip to content

Commit 7dbb2c4

Browse files
committed
chore(release): bump version
1 parent ee66b8c commit 7dbb2c4

5 files changed

Lines changed: 205 additions & 117 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
<a name="4.1.0"></a>
2+
## 4.1.0 (2026-02-28)
3+
4+
### Features
5+
6+
- *(deps)* Migrate from docopt to typer (no more deprecation warnings in recent Python versions!)
7+
8+
### Internal
9+
10+
- *(api)* Add more tests to improve coverage
11+
- *(mypy)* Enable (non-strict) type checking
12+
- *(lint)* Enable refurb
13+
- *(renovate)* Pin max compatible sphinx version
14+
115
<a name="4.0.2"></a>
216
## 4.0.2 (2025-11-07)
317

cliff.toml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
[changelog]
2+
body = """
3+
{% if version %}\
4+
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
5+
{% else %}\
6+
## [unreleased]
7+
{% endif %}\
8+
{% for group, commits in commits | group_by(attribute="group") %}
9+
### {{ group | striptags | trim | upper_first }}
10+
{% for commit in commits %}
11+
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
12+
{% if commit.breaking %}[**breaking**] {% endif %}\
13+
{{ commit.message | upper_first }}\
14+
{% endfor %}
15+
{% endfor %}
16+
"""
17+
trim = true
18+
render_always = true
19+
postprocessors = [
20+
{ pattern = '<REPO>', replace = "https://github.com/TheKevJames/coveralls-python" },
21+
]
22+
# output = "CHANGELOG.md"
23+
24+
[git]
25+
conventional_commits = true
26+
filter_unconventional = false
27+
require_conventional = false
28+
split_commits = false
29+
commit_preprocessors = [
30+
{ pattern = "(?s)\n.*$", replace = "" },
31+
]
32+
protect_breaking_commits = false
33+
commit_parsers = [
34+
{ message = "^feat", group = "<!-- 0 -->Features" },
35+
{ message = "^fix", group = "<!-- 1 -->Bug Fixes" },
36+
{ message = "^perf", group = "<!-- 2 -->Performance" },
37+
{ message = "^doc", group = "<!-- 3 -->Documentation" },
38+
{ message = "^refactor", group = "<!-- 3 -->Internal" },
39+
{ message = "^test", group = "<!-- 3 -->Internal" },
40+
{ message = "^chore\\(release\\): ", skip = true },
41+
{ message = "^chore\\(deps.*\\)", skip = true },
42+
{ message = "^chore", group = "<!-- 3 -->Internal" },
43+
{ message = ".*", group = "<!-- 4 -->Other Changes" },
44+
]
45+
filter_commits = false
46+
fail_on_unmatched_commit = false
47+
link_parsers = []
48+
use_branch_tags = false
49+
topo_order = false
50+
topo_order_commits = true
51+
sort_commits = "oldest"
52+
recurse_submodules = false

docs/release.rst

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,37 @@
11
Release
22
=======
33

4-
This project is released on PyPI as `coveralls`_, as well as on `quay`_ and `dockerhub`_.
4+
This project is released on PyPI as `coveralls`_, as well as on `quay`_ and
5+
`dockerhub`_. To cut a new release, ensure the latest master passes all tests.
6+
Then, create a release commit:
57

6-
TODO: migrate from clog-cli to git-cliff.
8+
.. code-block:: bash
79
8-
To cut a new release, ensure the latest master passes all tests. Then, create a release commit:
10+
git cliff -u | pbcopy # prepend to CHANGELOG.md
11+
poetry version (major|minor|patch)
12+
poetry lock --regenerate
13+
poetry sync
14+
poetry run pytest
15+
git commit -am 'chore(release): bump version'
16+
git push
17+
git tag $(poetry version | cut -f2 -d' ')
18+
git push origin $(poetry version | cut -f2 -d' ')
19+
20+
Then:
921

10-
#. Update the ``CHANGELOG.md`` with the new version (``clog -C CHANGELOG.md -F --setversion x.y.z``).
11-
#. Bump the version number with poetry: ``poetry version (major|minor|patch)``.
12-
#. Commit and push (``git commit -am 'chore(release): bump version' && git push``)
13-
#. Tag and push that commit with the version number (``git tag x.y.z && git push origin x.y.z``).
1422
#. Create a new `GitHub release`_.
1523
#. Verify the `docs build succeeded`_ then `mark it active`_.
1624

17-
Conda should automatically create a PR on their `coveralls-feedstock`_ shortly with the updated version -- if something goes wrong, the manual process would be to:
25+
Conda should automatically create a PR on their `coveralls-feedstock`_ shortly
26+
with the updated version -- if something goes wrong, the manual process would
27+
be to:
1828

1929
#. Fork `coveralls-feedstock`_.
2030
#. Update ``recipe/meta.yaml`` with the new version number and `sha`_.
2131
#. Create a PR.
2232
#. Comment on your own PR with: "@conda-forge-admin, please rerender".
2333
#. Merge along with the automated commit from Conda.
2434

25-
Note that the ``clog`` command comes from ``cargo install clog-cli``.
26-
2735
.. _GitHub release: https://github.com/TheKevJames/coveralls-python/releases/new
2836
.. _coveralls-feedstock: https://github.com/conda-forge/coveralls-feedstock
2937
.. _coveralls: https://pypi.org/project/coveralls/

0 commit comments

Comments
 (0)