Skip to content

Commit c4f0435

Browse files
authored
Explicitly support Python 3.13, 3.14 and synchronise docs and docs config (#179)
I was about to submit the release when I noticed that `keywords` in `pyproject.toml` do not include Python 3.13 or 3.14, and that the package isn't tested with those pythons. I also noticed I forgot to adjust `.readthedocs.yaml` and developer docs with release instructions. While I'm here I updated the docs dev setup to be similar to what we're used to.
2 parents f18442a + 4b1d348 commit c4f0435

File tree

9 files changed

+785
-88
lines changed

9 files changed

+785
-88
lines changed

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
runs-on: ubuntu-latest
1010
strategy:
1111
matrix:
12-
python: ["3.9", "3.10", "3.11", "3.12"]
12+
python: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
1313
steps:
1414
- uses: actions/checkout@v4
1515
- name: Install Python tools
@@ -23,5 +23,5 @@ jobs:
2323

2424
- name: Test
2525
run: |-
26-
poetry install --extras=test
26+
poetry install
2727
poe test

.readthedocs.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ sphinx:
1010

1111
python:
1212
install:
13-
- requirements: docs/requirements.txt
13+
- method: pip
14+
path: .

Makefile

Lines changed: 0 additions & 33 deletions
This file was deleted.

docs/Makefile

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = sphinx-build
7+
PAPER =
8+
BUILDDIR = _build
9+
SOURCEDIR = .
10+
11+
# When both are available, use Sphinx 2.x for autodoc compatibility.
12+
ifeq ($(shell which sphinx-build2 >/dev/null 2>&1 ; echo $$?),0)
13+
SPHINXBUILD = sphinx-build2
14+
endif
15+
16+
# Internal variables.
17+
PAPEROPT_a4 = -D latex_paper_size=a4
18+
PAPEROPT_letter = -D latex_paper_size=letter
19+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
20+
21+
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest auto
22+
23+
help:
24+
@echo "Please use \`make <target>' where <target> is one of"
25+
@echo " html to make standalone HTML files"
26+
@echo " dirhtml to make HTML files named index.html in directories"
27+
@echo " singlehtml to make a single large HTML file"
28+
@echo " pickle to make pickle files"
29+
@echo " json to make JSON files"
30+
@echo " htmlhelp to make HTML files and a HTML help project"
31+
@echo " qthelp to make HTML files and a qthelp project"
32+
@echo " devhelp to make HTML files and a Devhelp project"
33+
@echo " epub to make an epub"
34+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
35+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
36+
@echo " text to make text files"
37+
@echo " man to make manual pages"
38+
@echo " changes to make an overview of all changed/added/deprecated items"
39+
@echo " linkcheck to check all external links for integrity"
40+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
41+
42+
clean:
43+
-rm -rf $(BUILDDIR)/* $(SOURCEDIR)/api/generated/*
44+
45+
html:
46+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
47+
@echo
48+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
49+
50+
dirhtml:
51+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
52+
@echo
53+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
54+
55+
singlehtml:
56+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
57+
@echo
58+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
59+
60+
pickle:
61+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
62+
@echo
63+
@echo "Build finished; now you can process the pickle files."
64+
65+
json:
66+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
67+
@echo
68+
@echo "Build finished; now you can process the JSON files."
69+
70+
htmlhelp:
71+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
72+
@echo
73+
@echo "Build finished; now you can run HTML Help Workshop with the" \
74+
".hhp project file in $(BUILDDIR)/htmlhelp."
75+
76+
qthelp:
77+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
78+
@echo
79+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
80+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
81+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/beets.qhcp"
82+
@echo "To view the help file:"
83+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/beets.qhc"
84+
85+
devhelp:
86+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
87+
@echo
88+
@echo "Build finished."
89+
@echo "To view the help file:"
90+
@echo "# mkdir -p $$HOME/.local/share/devhelp/beets"
91+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/beets"
92+
@echo "# devhelp"
93+
94+
epub:
95+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
96+
@echo
97+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
98+
99+
latex:
100+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
101+
@echo
102+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
103+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
104+
"(use \`make latexpdf' here to do that automatically)."
105+
106+
latexpdf:
107+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
108+
@echo "Running LaTeX files through pdflatex..."
109+
make -C $(BUILDDIR)/latex all-pdf
110+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
111+
112+
text:
113+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
114+
@echo
115+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
116+
117+
man:
118+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
119+
@echo
120+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
121+
122+
changes:
123+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
124+
@echo
125+
@echo "The overview file is in $(BUILDDIR)/changes."
126+
127+
linkcheck:
128+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
129+
@echo
130+
@echo "Link check complete; look for any errors in the above output " \
131+
"or in $(BUILDDIR)/linkcheck/output.txt."
132+
133+
doctest:
134+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
135+
@echo "Testing of doctests in the sources finished, look at the " \
136+
"results in $(BUILDDIR)/doctest/output.txt."

docs/changelog.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ v2.1.0
1212
- Added typehints to `as_*` functions which allows for
1313
enhanced type checking and IDE support.
1414
- Added a minimal release workflow for GitHub Actions to automate the release process.
15+
- Added support for Python 3.13 and Python 3.14.
16+
- Modernized package and tests setup.
1517

1618
v2.0.1
1719
''''''

docs/dev.rst

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
Development Guide
22
=================
33

4-
This document provides guidelines for developers working on the `confuse` library.
4+
This document provides guidelines for developers working on the ``confuse``
5+
library.
56

67
Version Bumps
78
-------------
89

9-
This section outlines how to create a new version of the `confuse` library and publish it on PyPi. The versioning follows semantic versioning principles, where the version number is structured as `MAJOR.MINOR.PATCH`.
10+
This section outlines how to create a new version of the ``confuse`` library
11+
and publish it on PyPi. The versioning follows semantic versioning principles,
12+
where the version number is structured as ``MAJOR.MINOR.PATCH``.
1013

1114
To create a new version, follow these steps:
1215

13-
- make sure the changes are documented in the `changelog.rst` file
14-
- update the version number in `confuse/__init__.py`
15-
- create a new release in GitHub with the tag `vMAJOR.MINOR.PATCH`
16-
17-
This should trigger the GitHub Actions workflow that builds the package and publishes it to PyPi.
18-
19-
Check if the github actions succeeded by looking at the Actions tab in the repository. If it failed, you can check the logs to see what went wrong and try to fix it.
16+
1. Navigate to `Make release
17+
<https://github.com/beetbox/confuse/actions/workflows/make_release.yaml>`_
18+
action in the GitHub repository.
19+
2. Press **Run workflow**, enter the new version number in the format
20+
``MAJOR.MINOR.PATCH``, e.g., ``1.8.0`` and submit it.
21+
3. Refresh the page to see the status of the workflow.
22+
4. Once it succeeds, create a GitHub release with notes from the
23+
``docs/changelog.rst`` file.

docs/requirements.txt

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)