Skip to content

Commit fd5d18d

Browse files
committed
chore: finalize 1.7.0 modernization and documentation
- Configured .bumpversion.cfg to manage pyproject.toml and __init__.py versions - Documented release process in CONTRIBUTING.rst - Enforced Python 3.10+ requirement in pyproject.toml - Bumped coverage, ruff, pip-audit, freezegun, tox, and mypy to latest versions - Cleaned up unused imports in tests.py - Updated CHANGELOG.rst for the 1.7.0 release
1 parent 87a1de6 commit fd5d18d

5 files changed

Lines changed: 53 additions & 11 deletions

File tree

.bumpversion.cfg

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[bumpversion]
2+
current_version = 1.7.0
3+
commit = True
4+
tag = True
5+
6+
[bumpversion:file:pyproject.toml]
7+
search = version = "{current_version}"
8+
replace = version = "{new_version}"
9+
10+
[bumpversion:file:snappass/__init__.py]
11+
search = __version__ = '{current_version}'
12+
replace = __version__ = '{new_version}'

CHANGELOG.rst

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
Version 1.7.0
22
-------------
3-
* Migrate encryption to client-side (browser) using AES-GCM and Web Crypto API.
4-
* Remove `cryptography` dependency.
5-
* APIs now expect pre-encrypted secrets.
6-
* Migrate to `pyproject.toml` and modern Python formatting.
3+
* **BREAKING:** Migrate encryption to client-side (browser) using AES-GCM and Web Crypto API.
4+
The server only stores encrypted data and never sees the password.
5+
* **BREAKING:** APIs now expect pre-encrypted secrets.
6+
* Remove `cryptography` python dependency.
7+
* Removed external JavaScript dependencies (jQuery, Bootstrap JS, Clipboard.js)
8+
in favor of modern vanilla browser APIs.
9+
* Security: Integrated Trivy and Hadolint into the Docker build pipeline.
10+
* Security: Upgraded base Docker image to `python:3.14-slim-trixie` and added `pip-audit` to CI pipelines.
11+
* Modernization: Consolidated all dependencies into `pyproject.toml` (removed legacy requirements.txt).
12+
* Modernization: Enforced Python 3.10+ as the minimum supported version.
13+
* Modernization: Bumped Flask to 3.1+, Flask-Babel to 4.0+, and redis-py to 5.0+.
14+
* Modernization: Configured `bumpversion` to handle automated version releases.
15+
* Fix: Extracted Redis database logic into a dedicated `storage.py` abstraction layer.
716

817
Version 1.6.0
918
-------------

CONTRIBUTING.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,23 @@ Before you submit a pull request, check that it meets these guidelines:
115115
your new functionality into a function with a docstring, and add the
116116
feature to the list in README.rst.
117117
3. The pull request should work on all supported Python versions.
118+
119+
Releasing a New Version
120+
-----------------------
121+
122+
This project uses `bumpversion <https://github.com/peritus/bumpversion>`_ to manage releases.
123+
The `.bumpversion.cfg` file is configured to automatically update the version strings in both `pyproject.toml` and `snappass/__init__.py`, create a new git commit, and generate a git tag.
124+
125+
When you are ready to make a release, ensure you are on the main branch with a clean working directory, and run one of the following commands depending on the type of release (major, minor, or patch):
126+
127+
::
128+
129+
$ bumpversion patch # (e.g. 1.7.0 -> 1.7.1)
130+
$ bumpversion minor # (e.g. 1.7.0 -> 1.8.0)
131+
$ bumpversion major # (e.g. 1.7.0 -> 2.0.0)
132+
133+
Then, push the commit and the tags to GitHub:
134+
135+
::
136+
137+
$ git push origin master --tags

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Requirements
4444
------------
4545

4646
* `Redis`_ 6.2.0 or newer
47-
* Python 3.8+
47+
* Python 3.10+
4848

4949
.. _Redis: https://redis.io/
5050

pyproject.toml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ authors = [
1111
{name = "Pinterest", email = "joec@pinterest.com"}
1212
]
1313
license = {file = "LICENSE"}
14+
requires-python = ">=3.10"
1415
classifiers = [
1516
"License :: OSI Approved :: MIT License",
1617
"Programming Language :: Python",
@@ -36,15 +37,15 @@ select = ["E", "F", "S"]
3637

3738
[project.optional-dependencies]
3839
dev = [
39-
"coverage==7.6.0",
40+
"coverage>=7.15.2",
4041
"fakeredis>=2.26.0",
41-
"ruff==0.6.2",
42-
"pip-audit==2.7.3",
43-
"freezegun==1.5.1",
42+
"ruff>=0.16.0",
43+
"pip-audit>=2.10.1",
44+
"freezegun>=1.5.5",
4445
"pytest>=9.0.3",
4546
"pytest-cov==5.0.0",
46-
"tox==4.23.0",
47+
"tox>=4.58.0",
4748
"bumpversion==0.6.0",
4849
"wheel>=0.46.2",
49-
"mypy==1.11.1"
50+
"mypy>=2.3.0"
5051
]

0 commit comments

Comments
 (0)