diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4adb4e8..16dd0d3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: - uses: westerveltco/setup-ci-action@v0 with: - python-version: 3.8 + python-version: 3.9 extra-python-dependencies: nox use-uv: true @@ -78,7 +78,7 @@ jobs: - uses: westerveltco/setup-ci-action@v0 with: - python-version: 3.8 + python-version: 3.9 extra-python-dependencies: nox use-uv: true @@ -97,7 +97,7 @@ jobs: - uses: westerveltco/setup-ci-action@v0 with: - python-version: 3.8 + python-version: 3.9 extra-python-dependencies: nox use-uv: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 590bc0a..d3634f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,19 +18,23 @@ and this project attempts to adhere to [Semantic Versioning](https://semver.org/ ## [Unreleased] +### Removed + +- Dropped support for Python 3.8. + ## [0.1.1] ### Changed -- Changed exception raised if `op` CLI not found to `RuntimeError`. +- Changed exception raised if `op` CLI not found to `RuntimeError`. ### Fixed -- Removed the passing in of just the `OP_SERVICE_ACCOUNT_TOKEN` variable to the `subprocess.run` call to `op`. This was clobbering the environment and causing configuration issues with the `op` CLI. First reported in [#12](https://github.com/westerveltco/django-opfield/issues/12) by [@joshuadavidthomas](https://github.com/joshuadavidthomas). +- Removed the passing in of just the `OP_SERVICE_ACCOUNT_TOKEN` variable to the `subprocess.run` call to `op`. This was clobbering the environment and causing configuration issues with the `op` CLI. First reported in [#12](https://github.com/westerveltco/django-opfield/issues/12) by [@joshuadavidthomas](https://github.com/joshuadavidthomas). -### New Contributors! +### New Contributors -- Jeff Triplett [@jefftriplett](https://github.com/jefftriplett) in [#13](https://github.com/westerveltco/django-opfield/pull/13) +- Jeff Triplett [@jefftriplett](https://github.com/jefftriplett) in [#13](https://github.com/westerveltco/django-opfield/pull/13) ## [0.1.0] @@ -38,23 +42,23 @@ Initial release! 🎉 ### Added -- A custom model field `OPField` for storing references to items in a 1Password vault. - - Store a reference to an item in the vault using the `op://` secret reference URI. - - Access the secret stored via a `_secret` attribute on the model. - - Restrict which vaults can be used in the field to a list of vault names, passed in the `vaults` argument to the field. - - Explicitly set the name of the secret field in the model, via the `secret_name` argument to the field. -- A custom `OPURIValidator` class for validating 1Password URIs passed to the field. -- Initial application configuration options: - - `OP_COMMAND_TIMEOUT`: for setting the timeout for `op` commands, defaults to 5 seconds. - - `OP_CLI_PATH`: for setting the path to the `op` executable, defaults to using `shutil.which('op')`. If `op` is not found, an exception will be raised. - - `OP_SERVICE_ACCOUNT_TOKEN`: for setting the 1Password service account token, defaults to using the value of the `OP_SERVICE_ACCOUNT_TOKEN` environment variable. If not set, an exception will be raised. -- Initial documentation. -- Initial tests. -- Initial CI/CD. - -### New Contributors! - -- Josh Thomas (maintainer) +- A custom model field `OPField` for storing references to items in a 1Password vault. +- Store a reference to an item in the vault using the `op://` secret reference URI. +- Access the secret stored via a `_secret` attribute on the model. +- Restrict which vaults can be used in the field to a list of vault names, passed in the `vaults` argument to the field. +- Explicitly set the name of the secret field in the model, via the `secret_name` argument to the field. +- A custom `OPURIValidator` class for validating 1Password URIs passed to the field. +- Initial application configuration options: +- `OP_COMMAND_TIMEOUT`: for setting the timeout for `op` commands, defaults to 5 seconds. +- `OP_CLI_PATH`: for setting the path to the `op` executable, defaults to using `shutil.which('op')`. If `op` is not found, an exception will be raised. +- `OP_SERVICE_ACCOUNT_TOKEN`: for setting the 1Password service account token, defaults to using the value of the `OP_SERVICE_ACCOUNT_TOKEN` environment variable. If not set, an exception will be raised. +- Initial documentation. +- Initial tests. +- Initial CI/CD. + +### New Contributors + +- Josh Thomas (maintainer) [unreleased]: https://github.com/westerveltco/django-opfield/compare/v0.1.1...HEAD [0.1.0]: https://github.com/westerveltco/django-opfield/releases/tag/v0.1.0 diff --git a/noxfile.py b/noxfile.py index 3804f34..f1c784b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -8,12 +8,11 @@ nox.options.default_venv_backend = "uv|virtualenv" nox.options.reuse_existing_virtualenvs = True -PY38 = "3.8" PY39 = "3.9" PY310 = "3.10" PY311 = "3.11" PY312 = "3.12" -PY_VERSIONS = [PY38, PY39, PY310, PY311, PY312] +PY_VERSIONS = [PY39, PY310, PY311, PY312] PY_DEFAULT = PY_VERSIONS[0] PY_LATEST = PY_VERSIONS[-1] diff --git a/pyproject.toml b/pyproject.toml index 1333465..c1dfa9c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,6 @@ classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -28,7 +27,7 @@ keywords = [] license = {file = "LICENSE"} name = "django-opfield" readme = "README.md" -requires-python = ">=3.8" +requires-python = ">=3.9" [project.optional-dependencies] dev = [