Skip to content

Commit 7e9aa29

Browse files
committed
chore: add CHANGELOG.md and bump version to 0.4.1
Add a Keep a Changelog-formatted CHANGELOG.md documenting the full release history from 0.0.1 through 0.4.1, and bump the project version to 0.4.1.
1 parent 6489cd3 commit 7e9aa29

2 files changed

Lines changed: 130 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Changelog
2+
3+
All notable changes to `django-fernet-encrypted-fields` are documented here.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.4.1] - 2026-04-15
9+
10+
### Added
11+
12+
- `CHANGELOG.md` documenting the full release history of the project.
13+
14+
### Changed
15+
16+
- Applied `ruff format` across the codebase and enforced formatting in CI
17+
([#40](https://github.com/jazzband/django-fernet-encrypted-fields/pull/40)).
18+
- Moved `ruff` lint configuration into a dedicated `[tool.ruff.lint]` section and
19+
lowered the `target-version` to the earliest supported Python version.
20+
- `pre-commit` now runs `ruff format` in addition to `ruff check`.
21+
- Packaging metadata now sources the version directly from `pyproject.toml`.
22+
23+
### Fixed
24+
25+
- CI no longer runs `ruff check` during the installation step.
26+
27+
## [0.4.0] - 2026-04-14
28+
29+
### Added
30+
31+
- Jazzband contributing guide ([#37](https://github.com/jazzband/django-fernet-encrypted-fields/pull/37)).
32+
- `dev` dependency group in `pyproject.toml` (mypy, pre-commit, ruff, pytest, pytest-cov, coverage).
33+
- Django 6.0 compatibility ([#32](https://github.com/jazzband/django-fernet-encrypted-fields/pull/32)).
34+
35+
### Changed
36+
37+
- Migrated project to a `src/` layout ([#39](https://github.com/jazzband/django-fernet-encrypted-fields/pull/39)).
38+
- Bumped minimum required Python version to **3.10**.
39+
- CI now installs the package before running the test suite and uses the `dev` dependency group.
40+
41+
### Removed
42+
43+
- `requirements.txt` (dependencies are now fully managed via `pyproject.toml` with version ranges).
44+
45+
## [0.3.1] - 2025-11-10
46+
47+
### Changed
48+
49+
- Raised minimum Django requirement to **Django 4.2** ([#28](https://github.com/jazzband/django-fernet-encrypted-fields/pull/28)).
50+
- Updated the supported Python / Django version matrix in CI (excluded Python 3.13 with Django 4.2, etc.).
51+
52+
## [0.3.0] - 2025-02-21
53+
54+
### Changed
55+
56+
- Project moved to the **Jazzband** organization (author, URL, and maintainer metadata updated)
57+
([#25](https://github.com/jazzband/django-fernet-encrypted-fields/pull/25)).
58+
59+
## [0.2.0] - 2025-01-06
60+
61+
### Added
62+
63+
- Support for Django's `SECRET_KEY_FALLBACKS` to enable secret key rotation
64+
([#24](https://github.com/jazzband/django-fernet-encrypted-fields/pull/24)).
65+
- README documentation describing the secret-key rotation workflow.
66+
- `pre-commit` configuration.
67+
68+
### Fixed
69+
70+
- `SECRET_KEY_FALLBACKS` handling for Django `< 4.1`.
71+
- Lint errors and GitHub Actions workflow triggers.
72+
73+
## [0.1.3] - 2023-07-24
74+
75+
### Added
76+
77+
- Support for encrypted JSON fields (`EncryptedJSONField`) with tests ensuring key retention
78+
([#14](https://github.com/jazzband/django-fernet-encrypted-fields/pull/14)).
79+
80+
### Changed
81+
82+
- Set minimum required Django version to **3.2**.
83+
84+
### Fixed
85+
86+
- `EncryptedIntegerField`: corrected `get_prep_value` / `to_python` behavior
87+
([#11](https://github.com/jazzband/django-fernet-encrypted-fields/pull/11)).
88+
89+
## [0.1.2] - 2022-05-17
90+
91+
### Fixed
92+
93+
- `EncryptedIntegerField` now properly exposes default validators via a `cached_property`,
94+
restoring expected validation behavior ([#10](https://github.com/jazzband/django-fernet-encrypted-fields/issues/10)).
95+
96+
## [0.1.1] - 2021-12-19
97+
98+
### Fixed
99+
100+
- Django Admin no longer raises an exception when saving encrypted fields. A semaphore
101+
flag in `clean()` prevents `to_python()` from attempting to decrypt an already-decrypted
102+
value during form cleaning ([#4](https://github.com/jazzband/django-fernet-encrypted-fields/issues/4)).
103+
104+
## [0.1.0] - 2021-12-15
105+
106+
### Added
107+
108+
- Support for multiple `SALT_KEY` values, enabling SALT rotation while still decrypting
109+
data encrypted with legacy salts.
110+
- Unit tests covering salt rotation with a retained legacy salt.
111+
- README documentation for rotating salts.
112+
- GitHub Actions CI: linting (black, flake8), testing, and coverage across multiple Python versions.
113+
114+
## [0.0.2] - 2021-09-30
115+
116+
### Added
117+
118+
- `long_description` (sourced from `README.md`) and `long_description_content_type` in
119+
`setup.py` so the project description renders correctly on PyPI.
120+
121+
## [0.0.1] - 2021-09-30
122+
123+
### Added
124+
125+
- Initial release inspired by `django-encrypted-fields`.
126+
- Symmetric encryption for Django model fields backed by Fernet, including:
127+
`EncryptedFieldMixin`, `EncryptedTextField`, `EncryptedCharField`,
128+
`EncryptedDateTimeField`, `EncryptedIntegerField`, `EncryptedDateField`,
129+
`EncryptedFloatField`, `EncryptedEmailField`, `EncryptedBooleanField`.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "django-fernet-encrypted-fields"
3-
version = "0.4.0"
3+
version = "0.4.1"
44
description = "Symmetrically encrypted model fields for Django"
55
readme = "README.md"
66
license = "MIT"

0 commit comments

Comments
 (0)