Skip to content

Commit

Permalink
Release 0.3.0 (#8)
Browse files Browse the repository at this point in the history
## Summary

Prepare release 0.3.0

### Why?

Gotta stay up with the times (updating requirements, supported Python
versions)

### How?

- Add 3.12 to supported versions of Python.
- Upgrade base Python to 3.11.
- Prep for release 0.3.0.
- Upgrade local notebook environment image.
- Upgrade all requirements files.

## Checklist

Most checks are automated, but a few aren't, so make sure to go through
and tick them off, even if they don't apply. This checklist is here to
help, not deter you. Remember, "Slow is smooth, and smooth is fast".

- [X] **Unit tests**
  - Every input should have a test for it.
- Every potential raised exception should have a test ensuring it is
raised.
- [X] **Documentation**
  - New functions/classes/etc. must be added to `docs/api.rst`.
- Changed/added classes/methods/functions have appropriate
`versionadded`, `versionchanged`, or `deprecated`
[directives](http://www.sphinx-doc.org/en/stable/markup/para.html#directive-versionadded).
- The appropriate entry in `CHANGELOG.md` has been included in the
"Unreleased" section, i.e. "Added", "Changed", "Deprecated", "Removed",
"Fixed", or "Security".
- [X] **Future work**
- Future work should be documented in the contributor guide, i.e.
`.github/CONTRIBUTING.md`.

If you have any questions not answered by a quick readthrough of the
[contributor
guide](https://pysparkplug.mattefay.com/en/latest/contributor_guide.html),
add them to this PR and submit it.

---------

Co-authored-by: Matt Fay <matteosox@gmail.com>
  • Loading branch information
matteosox and Matt Fay authored Jan 14, 2024
1 parent 499542e commit f8e6c60
Show file tree
Hide file tree
Showing 19 changed files with 136 additions and 195 deletions.
1 change: 0 additions & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,4 +178,3 @@ When naming a branch, please use the syntax `username/branch-name-here`. If you
- Refactor all of `_payload.py`.
- Refactor `_datatype.py` for better type annotation.
- Add validation for correct combinations of group_id, edge_node_id, etc. to `Topic.__init__`.
- Unpin `sphinx` in `requirements/docs.in` once `sphinx-notfound-page` supports the breaking changes introduced in version 7.2.
2 changes: 1 addition & 1 deletion .github/workflows/cicd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
python-version: ["3.8", "3.9", "3.10", "3.11"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.10"
python: "3.11"

# Declare the Python requirements required to build your docs
python:
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
All notable changes for `pysparkplug` will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a Changelog](http://keepachangelog.com/).

## 0.3.0 (2024-01-13)

### Added
- Pysparkplug now supports Python 3.12

### Deprecated
- Pysparkplug no longer supports Python 3.7, which has reached its end of life.

## 0.2.0 (2023-08-23)

### Added
Expand Down
9 changes: 6 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@ RUN --mount=type=cache,target=/var/cache/apt \
# Install packages, without unnecessary recommended packages
apt-get --yes install --no-install-recommends \
python3.8 python3.8-distutils \
python3.9 python3.9-distutils python3.10 python3.10-venv \
python3.11 git tini curl && \
python3.9 python3.9-distutils \
python3.10 \
python3.11 python3.11-venv \
python3.12 \
git tini curl && \
# Install Github CLI
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | \
dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && \
Expand All @@ -34,7 +37,7 @@ RUN --mount=type=cache,target=/var/cache/apt \

# Create and activate virtual environment
ENV VIRTUAL_ENV="/root/.venv"
RUN python3.10 -m venv "$VIRTUAL_ENV"
RUN python3.11 -m venv "$VIRTUAL_ENV"
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

# Setup root home directory
Expand Down
2 changes: 1 addition & 1 deletion notebook.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Start from a core stack version
FROM jupyter/scipy-notebook:2023-05-15
FROM jupyter/scipy-notebook:2023-10-20

# Move to directory where repo will be mounted in home directory
WORKDIR /home/jovyan/pysparkplug
Expand Down
2 changes: 1 addition & 1 deletion noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def mypy(session: nox.Session) -> None:
)


@nox.session(python=["3.8", "3.9", "3.10", "3.11"])
@nox.session(python=["3.8", "3.9", "3.10", "3.11", "3.12"])
def unit_tests(session: nox.Session) -> None:
"""Unit test suite run with coverage tracking"""
session.install("--requirement", "requirements/unit_tests.txt", ".")
Expand Down
4 changes: 3 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ classifiers = [
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
"Typing :: Typed",
Expand Down Expand Up @@ -47,7 +48,7 @@ files = ["requirements/requirements.txt"]
[tool.black]
verbose = true
color = true
target_version = ["py38", "py39", "py310", "py311"]
target_version = ["py38", "py39", "py310", "py311", "py312"]
line_length = 88
extend-exclude = """
(
Expand Down Expand Up @@ -87,6 +88,7 @@ source = [
".cache/nox/unit_tests-3-9/lib/python3.9/site-packages/",
".cache/nox/unit_tests-3-10/lib/python3.10/site-packages/",
".cache/nox/unit_tests-3-11/lib/python3.11/site-packages/",
".cache/nox/unit_tests-3-12/lib/python3.12/site-packages/",
]

[tool.coverage.run]
Expand Down
12 changes: 5 additions & 7 deletions requirements/black.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./nox.sh -s update_requirements
#
black==23.7.0
black==23.12.1
# via -r /root/pysparkplug/requirements/black.in
click==8.1.7
# via black
mypy-extensions==1.0.0
# via black
packaging==23.1
packaging==23.2
# via black
pathspec==0.11.2
pathspec==0.12.1
# via black
platformdirs==3.10.0
# via black
tomli==2.0.1
platformdirs==4.1.0
# via black
6 changes: 2 additions & 4 deletions requirements/coverage.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./nox.sh -s update_requirements
#
coverage[toml]==7.3.0
coverage[toml]==7.4.0
# via -r /root/pysparkplug/requirements/coverage.in
tomli==2.0.1
# via coverage
2 changes: 1 addition & 1 deletion requirements/docs.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
furo
myst-parser
packaging
sphinx==7.1.2 # Sphinx 7.2 has a bug with generating HTML
sphinx
sphinx-copybutton
sphinx-notfound-page
sphinxext-opengraph
Expand Down
72 changes: 21 additions & 51 deletions requirements/docs.txt
Original file line number Diff line number Diff line change
@@ -1,123 +1,93 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./nox.sh -s update_requirements
#
alabaster==0.7.13
alabaster==0.7.16
# via sphinx
babel==2.12.1
babel==2.14.0
# via sphinx
beautifulsoup4==4.12.2
# via furo
certifi==2023.7.22
certifi==2023.11.17
# via requests
charset-normalizer==3.2.0
charset-normalizer==3.3.2
# via requests
contourpy==1.1.0
# via matplotlib
cycler==0.11.0
# via matplotlib
docutils==0.20.1
# via
# myst-parser
# sphinx
fonttools==4.42.1
# via matplotlib
furo==2023.8.19
furo==2023.9.10
# via -r /root/pysparkplug/requirements/docs.in
idna==3.4
idna==3.6
# via requests
imagesize==1.4.1
# via sphinx
jinja2==3.1.2
jinja2==3.1.3
# via
# myst-parser
# sphinx
kiwisolver==1.4.4
# via matplotlib
markdown-it-py==3.0.0
# via
# mdit-py-plugins
# myst-parser
markupsafe==2.1.3
# via jinja2
matplotlib==3.7.2
# via sphinxext-opengraph
mdit-py-plugins==0.4.0
# via myst-parser
mdurl==0.1.2
# via markdown-it-py
myst-parser==2.0.0
# via -r /root/pysparkplug/requirements/docs.in
numpy==1.25.2
# via
# contourpy
# matplotlib
packaging==23.1
packaging==23.2
# via
# -r /root/pysparkplug/requirements/docs.in
# matplotlib
# sphinx
paho-mqtt==1.6.1
# via -r /root/pysparkplug/requirements/requirements.txt
pillow==10.0.0
# via matplotlib
protobuf==4.24.1
protobuf==4.25.2
# via -r /root/pysparkplug/requirements/requirements.txt
pygments==2.16.1
pygments==2.17.2
# via
# furo
# sphinx
pyparsing==3.0.9
# via matplotlib
python-dateutil==2.8.2
# via matplotlib
pyyaml==6.0.1
# via myst-parser
requests==2.31.0
# via sphinx
six==1.16.0
# via python-dateutil
snowballstemmer==2.2.0
# via sphinx
soupsieve==2.4.1
soupsieve==2.5
# via beautifulsoup4
sphinx==7.1.2
sphinx==7.2.6
# via
# -r /root/pysparkplug/requirements/docs.in
# furo
# myst-parser
# sphinx-basic-ng
# sphinx-copybutton
# sphinx-notfound-page
# sphinxcontrib-applehelp
# sphinxcontrib-devhelp
# sphinxcontrib-htmlhelp
# sphinxcontrib-qthelp
# sphinxcontrib-serializinghtml
# sphinxext-opengraph
sphinx-basic-ng==1.0.0b2
# via furo
sphinx-copybutton==0.5.2
# via -r /root/pysparkplug/requirements/docs.in
sphinx-notfound-page==0.8.3
sphinx-notfound-page==1.0.0
# via -r /root/pysparkplug/requirements/docs.in
sphinxcontrib-applehelp==1.0.7
sphinxcontrib-applehelp==1.0.8
# via sphinx
sphinxcontrib-devhelp==1.0.5
sphinxcontrib-devhelp==1.0.6
# via sphinx
sphinxcontrib-htmlhelp==2.0.4
sphinxcontrib-htmlhelp==2.0.5
# via sphinx
sphinxcontrib-jsmath==1.0.1
# via sphinx
sphinxcontrib-qthelp==1.0.6
sphinxcontrib-qthelp==1.0.7
# via sphinx
sphinxcontrib-serializinghtml==1.1.9
sphinxcontrib-serializinghtml==1.1.10
# via sphinx
sphinxext-opengraph==0.8.2
sphinxext-opengraph==0.9.1
# via -r /root/pysparkplug/requirements/docs.in
typing-extensions==4.7.1 ; python_version < "3.11"
# via -r /root/pysparkplug/requirements/requirements.txt
urllib3==2.0.4
urllib3==2.1.0
# via requests
6 changes: 2 additions & 4 deletions requirements/draft_release.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./nox.sh -s update_requirements
#
paho-mqtt==1.6.1
# via -r /root/pysparkplug/requirements/requirements.txt
protobuf==4.24.1
# via -r /root/pysparkplug/requirements/requirements.txt
typing-extensions==4.7.1 ; python_version < "3.11"
protobuf==4.25.2
# via -r /root/pysparkplug/requirements/requirements.txt
4 changes: 2 additions & 2 deletions requirements/isort.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./nox.sh -s update_requirements
#
isort==5.12.0
isort==5.13.2
# via -r /root/pysparkplug/requirements/isort.in
34 changes: 15 additions & 19 deletions requirements/mypy.txt
Original file line number Diff line number Diff line change
@@ -1,44 +1,40 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./nox.sh -s update_requirements
#
argcomplete==3.1.1
argcomplete==3.2.1
# via nox
colorlog==6.7.0
colorlog==6.8.0
# via nox
distlib==0.3.7
distlib==0.3.8
# via virtualenv
filelock==3.12.2
filelock==3.13.1
# via virtualenv
mypy==1.5.1
mypy==1.8.0
# via -r /root/pysparkplug/requirements/mypy.in
mypy-extensions==1.0.0
# via mypy
nox==2023.4.22
# via -r /root/pysparkplug/requirements/mypy.in
packaging==23.1
packaging==23.2
# via
# -r /root/pysparkplug/requirements/mypy.in
# nox
paho-mqtt==1.6.1
# via -r /root/pysparkplug/requirements/requirements.txt
platformdirs==3.10.0
platformdirs==4.1.0
# via virtualenv
protobuf==4.24.1
protobuf==4.25.2
# via -r /root/pysparkplug/requirements/requirements.txt
tomli==2.0.1
# via mypy
types-colorama==0.4.15.12
types-colorama==0.4.15.20240106
# via -r /root/pysparkplug/requirements/mypy.in
types-paho-mqtt==1.6.0.7
types-paho-mqtt==1.6.0.20240106
# via -r /root/pysparkplug/requirements/mypy.in
types-protobuf==4.24.0.1
types-protobuf==4.24.0.20240106
# via -r /root/pysparkplug/requirements/mypy.in
typing-extensions==4.7.1 ; python_version < "3.11"
# via
# -r /root/pysparkplug/requirements/requirements.txt
# mypy
virtualenv==20.24.3
typing-extensions==4.9.0
# via mypy
virtualenv==20.25.0
# via nox
Loading

0 comments on commit f8e6c60

Please sign in to comment.