Skip to content

Commit b1cb23c

Browse files
committed
2026 maintenance
- Drop support for Python3.9 and PyPy3.10, add support for Python3.14 - Updated pylintrc with the newest options - Bumped the year everywhere - Prepared release
1 parent 0c92ecd commit b1cb23c

File tree

7 files changed

+37
-15
lines changed

7 files changed

+37
-15
lines changed

.github/workflows/test-and-publish.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
strategy:
1212
fail-fast: false
1313
matrix:
14-
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "pypy-3.10", "pypy-3.11"]
14+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "pypy-3.11"]
1515

1616
steps:
1717
- uses: actions/checkout@v4
@@ -29,6 +29,7 @@ jobs:
2929
run: pip install .[test,lint]
3030

3131
- name: Type-check using mypy
32+
if: ${{ !startsWith(matrix.python-version, 'pypy') }}
3233
run: mypy doubleratchet/ examples/ tests/
3334
- name: Lint using pylint
3435
run: pylint doubleratchet/ examples/ tests/

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [Unreleased]
88

9+
## [1.3.0] - 29th of January 2026
10+
11+
### Changed
12+
- Drop support for Python3.9 and PyPy3.10, add support for Python3.14
13+
- Updated pylintrc with the newest options
14+
- 2026 maintenance
15+
916
## [1.2.0] - 24th of June 2025
1017

1118
### Changed
@@ -58,7 +65,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5865
### Removed
5966
- Pre-stable (i.e. versions before 1.0.0) changelog omitted.
6067

61-
[Unreleased]: https://github.com/Syndace/python-doubleratchet/compare/v1.2.0...HEAD
68+
[Unreleased]: https://github.com/Syndace/python-doubleratchet/compare/v1.3.0...HEAD
69+
[1.3.0]: https://github.com/Syndace/python-doubleratchet/compare/v1.2.0...v1.3.0
6270
[1.2.0]: https://github.com/Syndace/python-doubleratchet/compare/v1.1.2...v1.2.0
6371
[1.1.2]: https://github.com/Syndace/python-doubleratchet/compare/v1.1.1...v1.1.2
6472
[1.1.1]: https://github.com/Syndace/python-doubleratchet/compare/v1.1.0...v1.1.1

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License
22

3-
Copyright (c) 2025 Tim Henkes (Syndace)
3+
Copyright (c) 2026 Tim Henkes (Syndace)
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
project: str = __pyproject["project"]["name"]
2929
author: str = __pyproject["project"]["authors"][0]["name"]
30-
copyright: str = f"2025, {author}"
30+
copyright: str = f"2026, {author}"
3131

3232
__classifiers: List[str] = __pyproject["project"]["classifiers"]
3333

doubleratchet/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
__all__ = [ "__version__" ]
22

3-
__version__ = "1.2.0"
3+
__version__ = "1.3.0"

pylintrc.toml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ analyse-fallback-blocks = true
1515
# A comma-separated list of package or module names from where C extensions may
1616
# be loaded. Extensions are loading into the active Python interpreter and may
1717
# run arbitrary code.
18-
extension-pkg-allow-list = []
18+
# extension-pkg-allow-list =
1919

2020
# A comma-separated list of package or module names from where C extensions may
2121
# be loaded. Extensions are loading into the active Python interpreter and may
@@ -94,10 +94,6 @@ py-version = "3.9"
9494
# source root.
9595
# source-roots =
9696

97-
# When enabled, pylint would attempt to guess common misconfiguration and emit
98-
# user-friendly hints instead of false-positive error messages.
99-
suggestion-mode = true
100-
10197
# Allow loading of arbitrary C extensions. Extensions are imported into the
10298
# active Python interpreter and may run arbitrary code.
10399
# unsafe-load-any-extension =
@@ -206,6 +202,11 @@ module-naming-style = "snake_case"
206202
# require a docstring.
207203
no-docstring-rgx = ""
208204

205+
# Regular expression matching correct parameter specification variable names. If
206+
# left empty, parameter specification variable names will be checked with the set
207+
# naming style.
208+
# paramspec-rgx =
209+
209210
# List of decorators that produce properties, such as abc.abstractproperty. Add
210211
# to this list to register other decorators that produce valid properties. These
211212
# decorators are taken in consideration only for invalid-name.
@@ -219,6 +220,10 @@ property-classes = ["abc.abstractproperty"]
219220
# variable names will be checked with the set naming style.
220221
# typevar-rgx =
221222

223+
# Regular expression matching correct type variable tuple names. If left empty,
224+
# type variable tuple names will be checked with the set naming style.
225+
# typevartuple-rgx =
226+
222227
# Naming style matching correct variable names.
223228
variable-naming-style = "snake_case"
224229

@@ -302,7 +307,8 @@ indent-after-paren = 4
302307
# tab).
303308
indent-string = " "
304309

305-
# Maximum number of characters on a single line.
310+
# Maximum number of characters on a single line. Pylint's default of 100 is based
311+
# on PEP 8's guidance that teams may choose line lengths up to 99 characters.
306312
max-line-length = 110
307313

308314
# Maximum number of lines in a module.
@@ -373,20 +379,27 @@ confidence = ["HIGH", "CONTROL_FLOW", "INFERENCE", "INFERENCE_FAILURE", "UNDEFIN
373379
# --enable=similarities". If you want to run only the classes checker, but have
374380
# no Warning level messages displayed, use "--disable=all --enable=classes
375381
# --disable=W".
376-
disable = ["missing-module-docstring", "duplicate-code"]
382+
disable = [
383+
"locally-disabled", "file-ignored", "suppressed-message", # Messages about explicitly disabled checks
384+
"use-implicit-booleaness-not-comparison-to-string", "use-implicit-booleaness-not-comparison-to-zero", # Messages that promote type-unsafety (??)
385+
"missing-module-docstring", "duplicate-code"
386+
]
377387

378388
# Enable the message, report, category or checker with the given id(s). You can
379389
# either give multiple identifier separated by comma (,) or put this option
380390
# multiple time (only on the command line, not in the configuration file where it
381391
# should appear only once). See also the "--disable" option for examples.
382-
enable = ["useless-suppression"]
392+
enable = ["useless-suppression", "raw-checker-failed", "bad-inline-option", "deprecated-pragma", "use-symbolic-message-instead"]
383393

384394
[tool.pylint.method_args]
385395
# List of qualified names (i.e., library.method) which require a timeout
386396
# parameter e.g. 'requests.api.get,requests.api.post'
387397
timeout-methods = ["requests.api.delete", "requests.api.get", "requests.api.head", "requests.api.options", "requests.api.patch", "requests.api.post", "requests.api.put", "requests.api.request"]
388398

389399
[tool.pylint.miscellaneous]
400+
# Whether or not to search for fixme's in docstrings.
401+
# check-fixme-in-docstring =
402+
390403
# List of note tags to take in consideration, separated by a comma.
391404
notes = ["FIXME", "XXX", "TODO"]
392405

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ authors = [
1313
maintainers = [ { name = "Tim Henkes (Syndace)", email = "me@syndace.dev" } ]
1414
license = "MIT"
1515
license-files = [ "LICENSE" ]
16-
requires-python = ">= 3.9"
16+
requires-python = ">= 3.10"
1717
dependencies = [
1818
"cryptography>=3.3.2",
1919
"pydantic>=1.7.4",
@@ -25,11 +25,11 @@ classifiers = [
2525
"Programming Language :: Python :: 3",
2626
"Programming Language :: Python :: 3 :: Only",
2727

28-
"Programming Language :: Python :: 3.9",
2928
"Programming Language :: Python :: 3.10",
3029
"Programming Language :: Python :: 3.11",
3130
"Programming Language :: Python :: 3.12",
3231
"Programming Language :: Python :: 3.13",
32+
"Programming Language :: Python :: 3.14",
3333

3434
"Programming Language :: Python :: Implementation :: CPython",
3535
"Programming Language :: Python :: Implementation :: PyPy",

0 commit comments

Comments
 (0)