Compare commits

...

212 Commits
21.2.0 ... main

Author SHA1 Message Date
Hynek Schlawack
bc03a25004
Clarify (c) ownership 2026-05-06 11:55:24 +02:00
Hynek Schlawack
015f66c5dc
update actions 2026-05-06 10:42:37 +02:00
Hynek Schlawack
afa51cd436
Use release-pypi environment 2026-05-06 10:41:25 +02:00
Hugo van Kemenade
f0d9da739d
Download artifacts and publish to PyPI (#122)
* Download artifacts and publish to PyPI

* Comment out enviroment

* Add comment to permissions

---------

Co-authored-by: Hynek Schlawack <hs@ox.cx>
2026-05-06 10:36:26 +02:00
pre-commit-ci[bot]
5b9784caf1
[pre-commit.ci] pre-commit autoupdate (#124)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.15.9 → v0.15.12](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.9...v0.15.12)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-05-05 08:46:47 +02:00
dependabot[bot]
5bf414beae
Bump the github-actions group with 5 updates (#123)
Bumps the github-actions group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [github/codeql-action](https://github.com/github/codeql-action) | `4.35.1` | `4.35.2` |
| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | `7.6.0` | `8.1.0` |
| [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) | `3.4.0` | `3.4.1` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.0` | `7.0.1` |
| [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.2` | `0.5.3` |


Updates `github/codeql-action` from 4.35.1 to 4.35.2
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](c10b8064de...95e58e9a2c)

Updates `astral-sh/setup-uv` from 7.6.0 to 8.1.0
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](37802adc94...08807647e7)

Updates `pypa/cibuildwheel` from 3.4.0 to 3.4.1
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](ee02a1537c...8d2b08b684)

Updates `actions/upload-artifact` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](bbbca2ddaa...043fb46d1a)

Updates `zizmorcore/zizmor-action` from 0.5.2 to 0.5.3
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](71321a20a9...b1d7e1fb5d)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: astral-sh/setup-uv
  dependency-version: 8.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: pypa/cibuildwheel
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-01 19:41:26 +02:00
pre-commit-ci[bot]
62677461f2
[pre-commit.ci] pre-commit autoupdate (#120) 2026-04-06 19:43:38 +02:00
Hynek Schlawack
ca808c0e8d
update dev 2026-03-29 13:45:19 +02:00
Hynek Schlawack
8e2fa4cc6e
Use uvx to run cibuildwheel on RISC-V (#118)
* Use uvx to run cibuildwheel on RISC-V

Oldest uvx mistake ever

Cache bust on arch

* Choose Python explicitly

* Simplify os/arch handling

* Add name

* Use official

* Cache only for local builds

* Zizmor is not happy
2026-03-29 13:40:22 +02:00
Hynek Schlawack
2c740a9551
Pass on pedantic Zizmor (#119)
* Add concurrency limits

* ci: pass on pedantic zizmor
2026-03-29 11:49:01 +02:00
Bruno Verachten
0126ae476f
ci: switch riscv64 from QEMU to native RISE runner (#117)
* ci: switch riscv64 from QEMU to native RISE runner

* fix: use RISE runner Python, skip setup-uv on riscv64

* fix: run cibuildwheel via pipx on riscv64 (bypass setup-python)
2026-03-29 11:21:23 +02:00
Hynek Schlawack
91424d1789
Use baipp for matrix (#116)
* Use baipp for matrix

* Build ft

* Test latest pypy

* does this work?

* It doesn't

* Use baipp's python-version
2026-03-26 18:41:38 +01:00
Hynek Schlawack
dc66c35ff7
update dev 2026-03-26 17:20:38 +01:00
Hynek Schlawack
1a83ca75b9
Manually install uv (#115)
* Manually install uv

* Use official

* Use plain build for RISC-V

* Musl too

* Disable setup-uv cache

To make Zizmor shut up
2026-03-06 09:56:34 +01:00
Hynek Schlawack
494447f50a
Fix typo 2026-03-06 06:38:40 +01:00
Hynek Schlawack
f205c49f4a
Update cibuildwheel & use uv frontend 2026-03-06 06:34:06 +01:00
Hynek Schlawack
11df97d913
pre-commit update 2026-03-06 06:34:06 +01:00
pre-commit-ci[bot]
c7ec7bf8de
[pre-commit.ci] pre-commit autoupdate (#114)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.15.2 → v0.15.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.2...v0.15.4)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-03 07:14:13 +01:00
dependabot[bot]
49cd33921b
Bump github/codeql-action in the github-actions group (#113) 2026-03-01 16:00:15 +01:00
Hynek Schlawack
9ecbc43b18
Add changelog entry 2026-02-21 15:30:50 +01:00
Hynek Schlawack
900ce08474
Simplify CI definition (#111)
* Simplify CI definition

Courtesy of modern tox.

* Add Python 3.15 to CI
2026-02-21 14:25:22 +01:00
Hynek Schlawack
1bf08b858f
fix link 2026-02-21 13:25:08 +01:00
Hynek Schlawack
6cf82482f8
Update funding links 2026-02-21 13:23:46 +01:00
Hynek Schlawack
2efc65b223
update dev 2026-02-21 13:21:49 +01:00
Hynek Schlawack
3480de399e
Add changelog entry 2026-02-21 13:16:45 +01:00
Julien Stephan
fa8ea7c587
ci: add riscv64 manylinux/musllinux wheels (#106)
* ci: add riscv64 manylinux/musllinux wheels

Now that cibuildwheel and PyPI support riscv64, we can start building
riscv64 wheels.

Because there is no native riscv64 runner available, this PR adds a
QEMU-based riscv64 job to the cibuildwheel workflow.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>

* Pin action

---------

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2026-02-21 13:13:28 +01:00
pre-commit-ci[bot]
ab43d00fa6
[pre-commit.ci] pre-commit autoupdate (#110)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.10 → v0.14.14](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.10...v0.14.14)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2026-02-04 10:12:13 +01:00
dependabot[bot]
5aecea837f
Bump the github-actions group with 3 updates (#109)
Bumps the github-actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-python](https://github.com/actions/setup-python) and [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel).


Updates `actions/checkout` from 6.0.1 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8e8c483db8...de0fac2e45)

Updates `actions/setup-python` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](83679a892e...a309ff8b42)

Updates `pypa/cibuildwheel` from 3.3.0 to 3.3.1
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](63fd63b352...298ed2fb2c)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/setup-python
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: pypa/cibuildwheel
  dependency-version: 3.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 10:06:32 +01:00
dependabot[bot]
57f95db3e2
Bump the github-actions group with 3 updates (#107)
Bumps the github-actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [github/codeql-action](https://github.com/github/codeql-action) and [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `actions/checkout` from 6.0.0 to 6.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1af3b93b68...8e8c483db8)

Updates `github/codeql-action` from 4.31.2 to 4.31.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](0499de31b9...5d4e8d1aca)

Updates `actions/upload-artifact` from 5.0.0 to 6.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](330a01c490...b7c566a772)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action
  dependency-version: 4.31.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2026-01-06 07:21:08 +01:00
Hynek Schlawack
ec9cc9b4c2
tox: use version ranges 2026-01-06 06:52:18 +01:00
pre-commit-ci[bot]
4fc0a4d5e7
[pre-commit.ci] pre-commit autoupdate (#108)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.7 → v0.14.10](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.7...v0.14.10)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-06 06:13:38 +01:00
dependabot[bot]
80defe0a02
Bump the github-actions group with 3 updates (#104)
Bumps the github-actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-python](https://github.com/actions/setup-python) and [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel).


Updates `actions/checkout` from 5.0.0 to 6.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](08c6903cd8...1af3b93b68)

Updates `actions/setup-python` from 6.0.0 to 6.1.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](e797f83bcb...83679a892e)

Updates `pypa/cibuildwheel` from 3.2.1 to 3.3.0
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](9c00cb4f6b...63fd63b352)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/setup-python
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: pypa/cibuildwheel
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 11:26:57 -10:00
Hynek Schlawack
edd8100d03
Raise cooldown 2025-12-01 08:50:16 -10:00
Hynek Schlawack
31307f83de
Align CoC with PSF 2025-12-01 08:50:11 -10:00
pre-commit-ci[bot]
1153a0c9fb
[pre-commit.ci] pre-commit autoupdate (#103)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.3 → v0.14.7](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.3...v0.14.7)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-01 19:49:43 +01:00
Hynek Schlawack
32d6318492
dependabot: add cooldown 2025-11-04 07:35:04 +01:00
pre-commit-ci[bot]
61fc88cb6c
[pre-commit.ci] pre-commit autoupdate (#102)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.0 → v0.14.3](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.0...v0.14.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-11-04 07:34:58 +01:00
dependabot[bot]
dd0d4d6e0c
Bump the github-actions group with 4 updates (#101)
Bumps the github-actions group with 4 updates: [hynek/build-and-inspect-python-package](https://github.com/hynek/build-and-inspect-python-package), [github/codeql-action](https://github.com/github/codeql-action), [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) and [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `hynek/build-and-inspect-python-package` from 2.13.0 to 2.14.0
- [Release notes](https://github.com/hynek/build-and-inspect-python-package/releases)
- [Changelog](https://github.com/hynek/build-and-inspect-python-package/blob/main/CHANGELOG.md)
- [Commits](c52c3a4710...efb823f521)

Updates `github/codeql-action` from 4.30.7 to 4.31.2
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](e296a93559...0499de31b9)

Updates `pypa/cibuildwheel` from 3.2.0 to 3.2.1
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](7c619efba9...9c00cb4f6b)

Updates `actions/upload-artifact` from 4.6.2 to 5.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](ea165f8d65...330a01c490)

---
updated-dependencies:
- dependency-name: hynek/build-and-inspect-python-package
  dependency-version: 2.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: github/codeql-action
  dependency-version: 4.31.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: pypa/cibuildwheel
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-02 06:35:42 +01:00
Hynek Schlawack
73d54868f0
update 2025-10-08 07:24:35 +02:00
pre-commit-ci[bot]
af54c384af
[pre-commit.ci] pre-commit autoupdate (#100)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.13.2 → v0.13.3](https://github.com/astral-sh/ruff-pre-commit/compare/v0.13.2...v0.13.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-06 19:40:38 +02:00
Hynek Schlawack
d8c924efe7
ci: run tests on 3.11, too 2025-10-02 09:36:35 +02:00
Hynek Schlawack
44c08002bd
Update ruff 2025-10-02 09:02:38 +02:00
Hynek Schlawack
4aa7accfa0
Update changelog 2025-10-02 09:01:55 +02:00
Hynek Schlawack
4f55b64dd4
Update dev, add PyPy 3.11 (#99)
PyPy 3.10 is EOL now
2025-10-02 09:00:32 +02:00
Hynek Schlawack
8adc3d1d5c
Group dependabot updates 2025-10-02 08:12:52 +02:00
Hynek Schlawack
a9820040b7
Missed one 2025-09-09 10:38:48 +02:00
Hynek Schlawack
4b8c12f1f2
Pin all actions 2025-09-09 10:31:57 +02:00
Hynek Schlawack
0ca1009486
update ruff 2025-09-09 10:31:16 +02:00
Hynek Schlawack
8f27bf3428
cffi 2.0 final is out 2025-09-09 10:31:03 +02:00
pre-commit-ci[bot]
9872493f20
[pre-commit.ci] pre-commit autoupdate (#95)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.12.7 → v0.12.11](https://github.com/astral-sh/ruff-pre-commit/compare/v0.12.7...v0.12.11)
- [github.com/pre-commit/pre-commit-hooks: v5.0.0 → v6.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v5.0.0...v6.0.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-02 07:04:47 +02:00
Hynek Schlawack
2195f58403
docs: add link to main PR too 2025-07-30 14:03:37 +02:00
Hynek Schlawack
58b7922bfe
Start new development cycle 2025-07-30 13:45:26 +02:00
Hynek Schlawack
66f5b2340e
Prepare 25.1.0 2025-07-30 11:43:36 +02:00
Hynek Schlawack
d2c80c05dc
Consistency 2025-07-30 09:32:58 +02:00
Hynek Schlawack
cc7181e7de
Use dependency groups (#94)
* Use dependency groups

* Ensure dev env contains pytest

* Doesn't work

* Use dep group in dev env

* update ruff
2025-07-30 09:30:51 +02:00
Hynek Schlawack
41aecc1974
Update metadata 2025-07-30 09:01:09 +02:00
Hynek Schlawack
1276da7784
Mention new wheels 2025-07-30 08:55:08 +02:00
Hynek Schlawack
1aad4747f9
Add support for free-threaded builds (#70)
* Build free-threaded wheels, disable limited API there

Co-authored-by: Min RK <151929+minrk@users.noreply.github.com>

* Try installing libffi-dev on Linux

It's faling due to lack of includes. Presumably because the lack of cffi
wheels.

* Revert "Try installing libffi-dev on Linux"

Does not work.

* Merge

* Actually build FT

* support the free-threaded build of Python 3.14 (#93)

* support the free-threaded build of Python 3.14

* attempt to get 3.14t CI to run

* Add trove classifier

* Add changelog

* Add 3.14 trove classifier, too

---------

Co-authored-by: Hynek Schlawack <hs@ox.cx>

---------

Co-authored-by: Min RK <151929+minrk@users.noreply.github.com>
Co-authored-by: Nathan Goldbaum <nathan.goldbaum@gmail.com>
2025-07-30 08:53:31 +02:00
dependabot[bot]
3ed9734847
Bump pypa/cibuildwheel from 2.23 to 3.0 (#91)
* Bump pypa/cibuildwheel from 2.23 to 3.0

Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.23 to 3.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.23...v3.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-version: '3.0'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Stop skipping tests?

* Switch config to pyproject.toml, build only universal2

* They're bigger on older versions it seems

* Build all, build PyPy

* PyPy 3.9 is broken on Windows

* Build on macOS 14 for PyPy ARM

* clarify

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2025-07-10 08:52:38 +02:00
Hynek Schlawack
c2bc26268c
update Ruff 2025-07-08 06:07:09 +02:00
Hynek Schlawack
e5d69b7ef5
Zizmor: clarify trust 2025-06-04 12:00:15 +02:00
Hynek Schlawack
4bb1e3bad0
Update + rename Ruff 2025-06-03 07:36:55 +02:00
Hynek Schlawack
8317e09638
Add 3.14 (#89) 2025-05-27 11:43:05 +02:00
pre-commit-ci[bot]
c8c8a1a4cc
[pre-commit.ci] pre-commit autoupdate (#88)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.11.5 → v0.11.8](https://github.com/astral-sh/ruff-pre-commit/compare/v0.11.5...v0.11.8)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-05-05 19:38:21 +02:00
Finn Womack
e07411ec9c
Add arm64 wheel build for Windows (#83) 2025-04-30 19:45:06 +02:00
Hynek Schlawack
8a7a5bfb45
Build wheels on pull requests
In the end, this is why this project exists.
2025-04-17 12:58:27 +02:00
Hynek Schlawack
a02dd83c8e
Remove qemu from wheel builder (#87) 2025-04-17 12:41:43 +02:00
Hynek Schlawack
6b87ef4f25
update ruff 2025-04-17 12:13:04 +02:00
Hynek Schlawack
c838d1ef62
GHA dropped 20.04 2025-04-17 12:12:50 +02:00
Hynek Schlawack
f2e5898930
Fix setuptools license metadata warning (#86) 2025-04-17 12:08:30 +02:00
pre-commit-ci[bot]
34104f77d5
[pre-commit.ci] pre-commit autoupdate (#85)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.9.9 → v0.11.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.9.9...v0.11.4)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-04-07 19:57:47 +02:00
Hynek Schlawack
b0d1c2acd7
Use ARM runner for Linux instead of QEMU (#81) 2025-03-06 10:12:11 +01:00
Hynek Schlawack
6367447e24
RIP macOS-12 2025-03-06 09:55:43 +01:00
dependabot[bot]
4ea5b1e1ca
Bump pypa/cibuildwheel from 2.22 to 2.23 (#79)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.22 to 2.23.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.22...v2.23)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2025-03-06 08:54:48 +00:00
pre-commit-ci[bot]
74bf037376
[pre-commit.ci] pre-commit autoupdate (#80)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.9.4 → v0.9.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.9.4...v0.9.9)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-03-06 08:25:13 +01:00
Hynek Schlawack
412fd44b31
Faster Zizmor 2025-02-04 10:30:45 +01:00
pre-commit-ci[bot]
9f7a976a31
[pre-commit.ci] pre-commit autoupdate (#78)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.8.6 → v0.9.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.6...v0.9.4)
- [github.com/codespell-project/codespell: v2.3.0 → v2.4.1](https://github.com/codespell-project/codespell/compare/v2.3.0...v2.4.1)

* Fix ci

* Actually fix

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2025-02-04 10:30:12 +01:00
pre-commit-ci[bot]
37b1856c6e
[pre-commit.ci] pre-commit autoupdate (#77)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.8.1 → v0.8.6](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.1...v0.8.6)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-07 06:45:35 +01:00
dependabot[bot]
0e0bdcf449
Bump pypa/cibuildwheel from 2.21 to 2.22 (#75)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.21 to 2.22.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.21...v2.22)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2024-12-03 06:52:17 +01:00
pre-commit-ci[bot]
939d39f5a3
[pre-commit.ci] pre-commit autoupdate (#76)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.7.2 → v0.8.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.7.2...v0.8.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-03 06:35:51 +01:00
pre-commit-ci[bot]
6f4c56a184
[pre-commit.ci] pre-commit autoupdate (#74)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.7.1 → v0.7.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.7.1...v0.7.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-11-04 18:46:38 +01:00
Hynek Schlawack
20e2010519
Simplify linting (#73) 2024-10-31 16:40:18 +01:00
Hynek Schlawack
1176780bec
Thank you Doctor Zizmor! (#72) 2024-10-31 16:30:25 +01:00
Hynek Schlawack
0b4828b5bd
Slightly less YOLO 2024-10-15 11:04:52 +02:00
Hynek Schlawack
e155b00e9a
pre-commit autoupdate 2024-10-15 10:55:07 +02:00
Hynek Schlawack
12f702d0bc
YOLO cibuildwheel 2024-10-15 10:54:37 +02:00
Hynek Schlawack
ba32d5f392
Use 3.13 by default in dev 2024-10-12 09:19:08 +02:00
Hynek Schlawack
f1c4650e14
Add workaround for https://github.com/pypa/setuptools/pull/4647
Co-authored-by: Thomas A Caswell
<199813+tacaswell@users.noreply.github.com>
2024-10-12 07:44:57 +02:00
Hynek Schlawack
dff48c09f5
Adjust tox envs to pkg metadata 2024-10-08 08:12:51 +02:00
Hynek Schlawack
4e78fa5654
Use latest cibuildwheel 2024-10-08 08:12:44 +02:00
pre-commit-ci[bot]
8455ab1009
[pre-commit.ci] pre-commit autoupdate (#69)
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.6.0 → v5.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.6.0...v5.0.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-10-08 05:05:24 +02:00
dependabot[bot]
cb01973fe6
Bump pypa/cibuildwheel from 2.20.0 to 2.21.1 (#68)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.20.0 to 2.21.1.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.20.0...v2.21.1)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 19:18:39 +02:00
dependabot[bot]
f55dc0165b
Bump pypa/cibuildwheel from 2.19.2 to 2.20.0 (#65)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.19.2 to 2.20.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.19.2...v2.20.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-10 07:44:17 +02:00
Hynek Schlawack
3cd4c49427
docs 2024-08-25 08:29:30 +02:00
Hynek Schlawack
79d0dccfd1
Add support for git archive installs 2024-08-25 08:23:40 +02:00
Hynek Schlawack
600a418955
They are amazing 2024-08-09 08:04:34 +02:00
Hynek Schlawack
549c2d6be4
Drop Python versions <3.9 (#64)
They make builds unnecessarily complicated and the old wheels that go
back to 3.6 exist.
2024-08-09 08:02:56 +02:00
Hynek Schlawack
25b1a81de1
Add 3.13 to CI (#57) 2024-08-09 07:47:39 +02:00
pre-commit-ci[bot]
ba6c30329a
[pre-commit.ci] pre-commit autoupdate (#63)
updates:
- [github.com/psf/black: 24.4.2 → 24.8.0](https://github.com/psf/black/compare/24.4.2...24.8.0)
- [github.com/PyCQA/flake8: 7.1.0 → 7.1.1](https://github.com/PyCQA/flake8/compare/7.1.0...7.1.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-08-05 19:44:42 +02:00
Hynek Schlawack
4792e8f087
docs: fix markup 2024-08-01 17:28:47 +02:00
Hynek Schlawack
39be5280f2
pre-commit update 2024-08-01 17:24:46 +02:00
Hynek Schlawack
bea3f8e908
macOS 12 is the oldest available builder :( 2024-08-01 17:24:19 +02:00
dependabot[bot]
6b2ba8c11e
Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 (#62)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.19.1 to 2.19.2.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.19.1...v2.19.2)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 16:52:14 +02:00
dependabot[bot]
19884234dd
Bump pypa/cibuildwheel from 2.18.1 to 2.19.1 (#61) 2024-07-01 16:35:32 +02:00
Hynek Schlawack
778f7d1cf6
pre-comit autoupdate 2024-06-26 11:40:50 +02:00
dependabot[bot]
3c40c7d051
Bump pypa/cibuildwheel from 2.17.0 to 2.18.1 (#59)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.17.0 to 2.18.1.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.17.0...v2.18.1)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-01 12:49:52 -04:00
pre-commit-ci[bot]
ee5233e314
[pre-commit.ci] pre-commit autoupdate (#58)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/psf/black: 24.3.0 → 24.4.2](https://github.com/psf/black/compare/24.3.0...24.4.2)

* Stop setting ARCHFLAGS

GHA's macOS is on arm64 now

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2024-05-08 10:49:01 +02:00
Hynek Schlawack
0a0b42348e
update linting 2024-04-10 10:59:44 -07:00
Hynek Schlawack
9e09093f19
pre-commit update 2024-04-10 10:49:53 -07:00
pre-commit-ci[bot]
a513883840
[pre-commit.ci] pre-commit autoupdate (#56)
updates:
- [github.com/psf/black: 24.1.1 → 24.3.0](https://github.com/psf/black/compare/24.1.1...24.3.0)
- [github.com/asottile/pyupgrade: v3.15.0 → v3.15.2](https://github.com/asottile/pyupgrade/compare/v3.15.0...v3.15.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-04-01 20:06:45 +02:00
dependabot[bot]
29f4465bd0
Bump pypa/cibuildwheel from 2.16.5 to 2.17.0 (#55)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.16.5 to 2.17.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.16.5...v2.17.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 16:38:58 +02:00
Hynek Schlawack
daff9ceb69
Ugh setuptools
This reverts commit f628759e15.
2024-01-31 09:54:46 +01:00
Hynek Schlawack
f628759e15
Fix metadata 2024-01-31 09:50:23 +01:00
Hynek Schlawack
eb6bc825c2
pre-commit autoupdate 2024-01-31 09:49:20 +01:00
Hynek Schlawack
0f955d203a
Fix callout 2024-01-31 09:48:54 +01:00
Hynek Schlawack
81c2d53075
Use 3.12 in dev (#54) 2024-01-31 09:47:25 +01:00
Hynek Schlawack
4f12ef1745
Add M1 builder, update cibuildwheel (#53)
* Add M1 builder, update cibuildwheel

* Oops

* Make pip shut up

* Try if we still have to silence warnings

* We do, but let's be more specific

* Nope, wasn't enough
2024-01-31 09:30:42 +01:00
Hynek Schlawack
45c53865d8
Update wheels build for upload@v4 2024-01-26 11:12:19 +01:00
Hynek Schlawack
259f0b7f3e
Update CI config (#52) 2024-01-26 11:08:18 +01:00
pre-commit-ci[bot]
8c12d500ad
[pre-commit.ci] pre-commit autoupdate (#51)
updates:
- [github.com/psf/black: 23.11.0 → 23.12.1](https://github.com/psf/black/compare/23.11.0...23.12.1)
- [github.com/PyCQA/isort: 5.12.0 → 5.13.2](https://github.com/PyCQA/isort/compare/5.12.0...5.13.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-01 18:33:38 +01:00
dependabot[bot]
a86bf45e6b
Bump actions/upload-artifact from 3 to 4 (#48)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-01 17:29:13 +01:00
dependabot[bot]
f7dc23bbab
Bump hynek/build-and-inspect-python-package from 1 to 2 (#50) 2024-01-01 15:37:52 +01:00
dependabot[bot]
affc40d00d
Bump actions/setup-python from 4 to 5 (#47)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2024-01-01 15:34:01 +01:00
dependabot[bot]
c844e61d9e
Bump github/codeql-action from 2 to 3 (#49)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-01 15:30:38 +01:00
pre-commit-ci[bot]
2235dfbad7
[pre-commit.ci] pre-commit autoupdate (#46)
updates:
- [github.com/psf/black: 23.10.1 → 23.11.0](https://github.com/psf/black/compare/23.10.1...23.11.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-12-04 18:33:18 +01:00
pre-commit-ci[bot]
73c1d93998
[pre-commit.ci] pre-commit autoupdate (#45)
updates:
- [github.com/psf/black: 23.9.1 → 23.10.1](https://github.com/psf/black/compare/23.9.1...23.10.1)
- [github.com/asottile/pyupgrade: v3.14.0 → v3.15.0](https://github.com/asottile/pyupgrade/compare/v3.14.0...v3.15.0)
- [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.4.0...v4.5.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-06 18:56:17 +01:00
dependabot[bot]
51a245fd4a
Bump pypa/cibuildwheel from 2.16.1 to 2.16.2 (#44)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.16.1 to 2.16.2.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.16.1...v2.16.2)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-01 15:30:34 +01:00
Hynek Schlawack
4d51167e07
Give intermediate wheels meaningful version numbers 2023-10-04 08:49:42 +02:00
Hynek Schlawack
04158baf82
Update pyupgrade 2023-10-04 08:10:45 +02:00
Hynek Schlawack
7a4e48d2ec
Build wheels monthly to ensure everything still works 2023-10-04 08:10:13 +02:00
pre-commit-ci[bot]
68bad6ea12
[pre-commit.ci] pre-commit autoupdate (#42) 2023-10-03 09:14:06 +02:00
dependabot[bot]
8047197dca
Bump pypa/cibuildwheel from 2.15.0 to 2.16.1 (#39) 2023-10-01 18:06:48 +02:00
dependabot[bot]
83f99a5cab
Bump docker/setup-qemu-action from 2 to 3 (#41) 2023-10-01 17:42:28 +02:00
dependabot[bot]
c9049cdec0
Bump actions/checkout from 3 to 4 (#40) 2023-10-01 17:05:30 +02:00
dependabot[bot]
0eb5aff44f
Bump pypa/cibuildwheel from 2.14.1 to 2.15.0 (#38)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.14.1 to 2.15.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.14.1...v2.15.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-01 16:21:13 +02:00
pre-commit-ci[bot]
dec93689f0
[pre-commit.ci] pre-commit autoupdate (#37)
updates:
- [github.com/psf/black: 23.3.0 → 23.7.0](https://github.com/psf/black/compare/23.3.0...23.7.0)
- [github.com/asottile/pyupgrade: v3.8.0 → v3.10.1](https://github.com/asottile/pyupgrade/compare/v3.8.0...v3.10.1)
- [github.com/PyCQA/flake8: 6.0.0 → 6.1.0](https://github.com/PyCQA/flake8/compare/6.0.0...6.1.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-08-08 05:44:05 +02:00
dependabot[bot]
081857e657
Bump pypa/cibuildwheel from 2.13.1 to 2.14.1 (#36)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.13.1 to 2.14.1.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.13.1...v2.14.1)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-01 16:09:40 +02:00
Hynek Schlawack
0fdd84368e
Never enough consistency 2023-07-03 09:28:17 +02:00
Hynek Schlawack
58a9215915
More consistency 2023-07-03 09:18:38 +02:00
Hynek Schlawack
f0af0f7046
Consistency 2023-07-03 09:15:24 +02:00
dependabot[bot]
d112b04fc5
Bump pypa/cibuildwheel from 2.13.0 to 2.13.1 (#35)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.13.0 to 2.13.1.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.13.0...v2.13.1)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-03 09:13:43 +02:00
Hynek Schlawack
11bd3ef082
Tox is broken on pypy3.7 2023-07-03 08:38:00 +02:00
Hynek Schlawack
372901ea58
Update README.md 2023-06-28 12:08:06 +02:00
Hynek Schlawack
9915b1af20
Update README.md 2023-06-28 12:05:21 +02:00
Hynek Schlawack
89df7eac3f
pre-commit autoupdate 2023-06-21 14:19:10 +02:00
Hynek Schlawack
d7c50a0033
Fix 2023-06-21 14:18:34 +02:00
pre-commit-ci[bot]
3511d53ada
[pre-commit.ci] pre-commit autoupdate (#34)
updates:
- [github.com/asottile/pyupgrade: v3.3.2 → v3.4.0](https://github.com/asottile/pyupgrade/compare/v3.3.2...v3.4.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-05 21:08:45 +02:00
Hynek Schlawack
7bd3919da3
Only build 3.7 wheels to not be confusing 2023-06-02 12:10:33 +02:00
Hynek Schlawack
6d70769902
Simplify cmdclass logic 2023-06-02 12:04:16 +02:00
Hynek Schlawack
72081161a2
Add clean tox target 2023-06-02 11:49:02 +02:00
Hynek Schlawack
7d30ece56f
Minimize some more 2023-06-02 11:31:30 +02:00
Hynek Schlawack
2cea109d05
Minimize setup.py 2023-06-02 11:21:19 +02:00
Hynek Schlawack
9dfd7d7063
Remove harden 2023-06-02 10:10:56 +02:00
Hynek Schlawack
21e2e89dd5
Don't force a base python on pre-commit 2023-06-02 10:09:44 +02:00
Hynek Schlawack
b8f0be92b5
Use .python-version 2023-06-02 10:08:15 +02:00
Hynek Schlawack
2ae9b081e6
Simplify tox.ini 2023-06-02 09:52:00 +02:00
Hynek Schlawack
71aa601711
Tox filters paths, python -m is not necessary 2023-06-02 09:52:00 +02:00
dependabot[bot]
1b18f74923
Bump pypa/cibuildwheel from 2.12.3 to 2.13.0 (#33)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.12.3 to 2.13.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.12.3...v2.13.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-01 17:25:50 +02:00
Hynek Schlawack
326c0d583a
Use project capitalization 2023-05-31 16:28:20 +02:00
Hynek Schlawack
4bc9071249
More calming 2023-05-31 16:27:16 +02:00
Hynek Schlawack
ecfb22386e
Calm down 2023-05-31 16:25:12 +02:00
Hynek Schlawack
aa16810f44
Update tox.ini 2023-05-31 16:21:25 +02:00
Hynek Schlawack
fc64ae6c8f
Update readme 2023-05-31 16:17:46 +02:00
Hynek Schlawack
448b5834ac
Drop 3.6 & update CI (#32)
* Drop ko-fi

PayPal eats too much

* Update ci

* Better title

* fix

* Screw 3.6

* Use all-green

* Update readme

* Add cogCheck target
2023-05-31 16:08:00 +02:00
Hynek Schlawack
21e6afaeb0
Stop hardening
Too many host names in play
2023-05-31 15:31:13 +02:00
Hynek Schlawack
12ea074212
Add Python 3.12 2023-05-31 07:42:10 +02:00
dependabot[bot]
28a8088b88
Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 (#30)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.12.1 to 2.12.3.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.12.1...v2.12.3)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2023-05-06 17:09:37 -06:00
pre-commit-ci[bot]
609cff9a9a
[pre-commit.ci] pre-commit autoupdate (#31) 2023-05-01 17:46:07 -06:00
pre-commit-ci[bot]
b69eb61d00
[pre-commit.ci] pre-commit autoupdate (#29)
updates:
- [github.com/psf/black: 23.1.0 → 23.3.0](https://github.com/psf/black/compare/23.1.0...23.3.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-04-04 06:44:49 +02:00
dependabot[bot]
4a0a138da4
Bump pypa/cibuildwheel from 2.12.0 to 2.12.1 (#27)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.12.0...v2.12.1)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-02 06:10:50 +00:00
Hynek Schlawack
4b3598fac4
Fix CI (#28) 2023-04-02 08:07:30 +02:00
dependabot[bot]
074ccfa26d
Bump pypa/cibuildwheel from 2.11.4 to 2.12.0 (#26)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.11.4 to 2.12.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.11.4...v2.12.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2023-02-01 16:28:02 +01:00
Hynek Schlawack
e0c2d457b2
pre-commit autoupdate 2023-02-01 16:23:00 +01:00
pre-commit-ci[bot]
c93de22ebf
[pre-commit.ci] pre-commit autoupdate (#25)
updates:
- [github.com/psf/black: 22.10.0 → 22.12.0](https://github.com/psf/black/compare/22.10.0...22.12.0)
- [github.com/PyCQA/isort: 5.10.1 → 5.11.4](https://github.com/PyCQA/isort/compare/5.10.1...5.11.4)
- [github.com/asottile/pyupgrade: v3.2.0 → v3.3.1](https://github.com/asottile/pyupgrade/compare/v3.2.0...v3.3.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-01-03 06:00:21 +01:00
dependabot[bot]
525b96015c
Bump pypa/cibuildwheel from 2.11.2 to 2.11.4 (#24) 2023-01-01 16:59:01 +01:00
pre-commit-ci[bot]
f8a42d1eb9
[pre-commit.ci] pre-commit autoupdate (#23)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/PyCQA/flake8: 5.0.4 → 6.0.0](https://github.com/PyCQA/flake8/compare/5.0.4...6.0.0)
- [github.com/pre-commit/pre-commit-hooks: v4.3.0 → v4.4.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.3.0...v4.4.0)

* Pin ubuntu for Python 3.6

* 3.11 proper

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2022-12-06 08:00:14 +01:00
dependabot[bot]
ca3dde09b6
Bump step-security/harden-runner from 1 to 2 (#22)
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 1 to 2.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/v1...v2)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-01 15:12:29 +01:00
pre-commit-ci[bot]
eac4e7b837
[pre-commit.ci] pre-commit autoupdate (#21) 2022-11-07 19:38:36 +01:00
dependabot[bot]
57dfac2a22
Bump pypa/cibuildwheel from 2.10.2 to 2.11.2 (#20)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.10.2 to 2.11.2.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.10.2...v2.11.2)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2022-11-02 04:41:40 +00:00
Hynek Schlawack
79fb37c097
Add setupt-python since baipp doesn't update the env anymore 2022-11-02 05:38:48 +01:00
dependabot[bot]
a84647db54
Bump pypa/cibuildwheel from 2.7.0 to 2.10.2 (#19)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.7.0 to 2.10.2.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v2.7.0...v2.10.2)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-29 16:22:21 +02:00
Hynek Schlawack
bd10f812c2
Housekeeping (#18)
* Housekeeping

* Add CodeQL

* Allow some endpoints

* Read-only
2022-09-29 09:37:24 +02:00
Step Security Bot
c06a638114
[StepSecurity] ci: Harden GitHub Actions (#17)
* [StepSecurity] ci: Harden GitHub Actions in ci.yml

* [StepSecurity] ci: Harden GitHub Actions in wheels.yml
2022-09-29 08:19:03 +02:00
pre-commit-ci[bot]
1c60246a96
[pre-commit.ci] pre-commit autoupdate (#16) 2022-09-05 22:34:54 +02:00
Hynek Schlawack
a9d295e577
Reflow GHA 2022-08-21 18:27:20 +02:00
Hynek Schlawack
432ff0c449
Use the action output to find the wheels (#15)
* Use the action output to find the wheels

* v1 isn't tagged yet

* Now it is
2022-08-21 18:25:44 +02:00
Hynek Schlawack
584bc8ed6f
Fix path 2022-08-21 17:02:59 +02:00
Hynek Schlawack
7427184b2b
Update build-and-inspect-python-package 2022-08-20 15:24:34 +02:00
Hynek Schlawack
1bb072cdba
Don't setup python ourselves 2022-08-20 15:05:39 +02:00
Hynek Schlawack
0fed701947
Use build-and-inspect-python-package (#14) 2022-08-20 08:55:11 +00:00
Hynek Schlawack
bd92845bd7
Minor housekeeping 2022-08-15 09:29:26 +02:00
Hynek Schlawack
ef3ce60a3c
Update .gitignore 2022-08-15 08:32:34 +02:00
pre-commit-ci[bot]
72f151d920
[pre-commit.ci] pre-commit autoupdate (#13) 2022-08-01 20:17:45 +02:00
Hynek Schlawack
5bdfe43185 Add Tidelift 2022-07-11 17:02:27 +02:00
Hynek Schlawack
dc633f2128
Update SECURITY.md 2022-07-11 16:55:20 +02:00
pre-commit-ci[bot]
8a778a0080
[pre-commit.ci] pre-commit autoupdate (#12) 2022-07-04 20:10:26 +02:00
Hynek Schlawack
1cc0e80f97 Update versions of wheel-building actions 2022-06-29 13:44:26 +02:00
Hynek Schlawack
f89b883c93
Try to limit cross-compiling the classic way (#11)
* Try to limit cross-compiling the classic way

* Simplify, since we're always on x64 on GHA
2022-06-29 12:46:00 +02:00
Hynek Schlawack
ba69fb3985 Update to latest action versions 2022-06-29 12:07:18 +02:00
Hynek Schlawack
e2daaed7d4 Use a milder way to work around macOS builder woes 2022-06-29 11:58:51 +02:00
Hynek Schlawack
09a6d25390
Python 3.11 (#9)
* Python 3.11

* Disable macOS dev env test for now
2022-06-29 11:44:30 +02:00
pre-commit-ci[bot]
1326ba8818
[pre-commit.ci] pre-commit autoupdate (#7)
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.1.0 → v4.2.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.1.0...v4.2.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-05-02 11:42:24 -06:00
pre-commit-ci[bot]
c58d51c6db
[pre-commit.ci] pre-commit autoupdate (#6)
updates:
- [github.com/psf/black: 22.1.0 → 22.3.0](https://github.com/psf/black/compare/22.1.0...22.3.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-04-04 21:25:56 +02:00
pre-commit-ci[bot]
1009e3d79c
[pre-commit.ci] pre-commit autoupdate (#5)
updates:
- [github.com/psf/black: 21.12b0 → 22.1.0](https://github.com/psf/black/compare/21.12b0...22.1.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-02-07 18:37:50 +01:00
pre-commit-ci[bot]
bc43fb160a
[pre-commit.ci] pre-commit autoupdate (#4)
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.0.1 → v4.1.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.0.1...v4.1.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hynek Schlawack <hs@ox.cx>
2022-01-04 07:16:23 +01:00
Hynek Schlawack
8a26bc6d67 Quell warning, add pypy3.8 2022-01-04 07:01:13 +01:00
Hynek Schlawack
5f6977215f Clarify versions and use correct words 2021-12-29 09:19:43 +01:00
Hynek Schlawack
2a575514b0 Add changelog marker 2021-12-10 13:31:18 +01:00
pre-commit-ci[bot]
c5b907b0b1
[pre-commit.ci] pre-commit autoupdate (#3)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/psf/black: 21.11b1 → 21.12b0](https://github.com/psf/black/compare/21.11b1...21.12b0)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-12-06 18:27:11 +01:00
Hynek Schlawack
58543f4b56 Add link to Changelog 2021-12-01 12:31:56 +01:00
Hynek Schlawack
e8c10163eb Turns out, we don't have to pin macOS
https://github.com/hynek/argon2-cffi-bindings/pull/2#discussion_r760059160
2021-12-01 12:29:20 +01:00
Hynek Schlawack
9fc3f25f6c Start new development cycle 2021-12-01 09:52:59 +01:00
22 changed files with 672 additions and 472 deletions

3
.git_archival.txt Normal file
View File

@ -0,0 +1,3 @@
node: $Format:%H$
node-date: $Format:%cI$
describe-name: $Format:%(describe:tags=true,match=*[0-9]*)$

View File

@ -1,133 +1,16 @@
# Code of Conduct
# Contributor Covenant Code of Conduct
While not being a [Python Software Foundation](https://www.python.org/psf-landing/) project, everyone interacting in this project is expected to follow the [PSF Code of Conduct](https://policies.python.org/python.org/code-of-conduct/).
## Our Pledge
In general, this means that everyone is expected to be **open**, **considerate**, and **respectful** of others no matter what their position is within the project.
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
<mailto:hs@ox.cx>.
All complaints will be reviewed and investigated promptly and fairly.
We take Code of Conduct violations seriously, and will act to ensure our spaces are welcoming, inclusive, and professional environments to communicate in.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
If you need to raise a Code of Conduct report, you may do so privately by email to [Hynek Schlawack](mailto:hs@ox.cx).
## Enforcement Guidelines
Reports will be treated confidentially.
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
Alternately you can make a [report to the Python Software Foundation](https://policies.python.org/python.org/code-of-conduct/Procedures-for-Reporting-Incidents/).

View File

@ -30,21 +30,30 @@ Please report any harm to [Hynek Schlawack] in any way you find appropriate.
You can (and should) run our test suite using [*tox*].
However, youll probably want a more traditional environment as well.
We highly recommend to develop using the latest Python release because we try to take advantage of modern features whenever possible.
First create a [virtual environment](https://virtualenv.pypa.io/) so you don't break your system-wide Python installation.
Its out of scope for this document to list all the ways to manage virtual environments in Python, but if you dont already have a pet way, take some time to look at tools like [*direnv*](https://hynek.me/til/python-project-local-venvs/), [*virtualfish*](https://virtualfish.readthedocs.io/), and [*virtualenvwrapper*](https://virtualenvwrapper.readthedocs.io/).
First, create a [virtual environment](https://virtualenv.pypa.io/) so you don't break your system-wide Python installation.
We recommend using the Python version from the `.python-version-default` file in project's root directory.
Next, get an up to date checkout of the *argon2-cffi-bindings* repository:
If you're using [*direnv*](https://direnv.net), you can automate the creation of a virtual environment with the correct Python version by adding the following `.envrc` to the project root after you've cloned it to your computer:
```bash
layout python python$(cat .python-version-default)
```
If you're using tools that understand `.python-version` files like [*pyenv*](https://github.com/pyenv/pyenv) does, you can make it a link to the `.python-version-default` file.
---
Next, fork the repository on GitHub and get an up-to-date checkout:
```console
$ git clone git@github.com:hynek/argon2-cffi-bindings.git
$ git clone git@github.com:<your-username>/argon2-cffi-bindings.git
```
or if you want to use git via `https`:
```console
$ git clone https://github.com/hynek/argon2-cffi-bindings.git
$ git clone https://github.com/<your-username>/argon2-cffi-bindings.git
```
Change into the newly created directory and **activate your virtual environment**
@ -60,14 +69,14 @@ $ git submodule update # update the vendored Argon2 C library to the version w
Now an editable version of *argon2-cffi-bindings* along with its test requirements can be installed as usual:
```console
$ python -m pip install --upgrade pip setuptools cffi # PLEASE don't skip this step
$ python -m pip install -e '.[dev]'
$ python -Im pip install --upgrade pip # PLEASE don't skip this step
$ python -Im pip install -e . --group dev
```
At this point,
```console
$ python -m pytest
$ python -Im pytest
```
should work and pass.
@ -78,7 +87,7 @@ When working on `src/_argons_cffi_bindings/_ffi_build.py`, it makes sense to reg
---
To avoid committing code that violates our style guide, we strongly advise you to install [*pre-commit*] [^dev] hooks:
To avoid committing code that violates our style guide, we strongly encourage you to install [*pre-commit*] [^dev] hooks:
```console
$ pre-commit install
@ -90,8 +99,8 @@ You can also run them anytime (as our tox does) using:
$ pre-commit run --all-files
```
[^dev]: *pre-commit* should have been installed into your virtualenv automatically when you ran `pip install -e '.[dev]'` above.
If *pre-commit* is missing, your probably need to run `pip install -e '.[dev]'` again.
[^dev]: *pre-commit* should have been installed into your virtualenv automatically when you ran `python -Im pip install -e . --group dev` above.
If *pre-commit* is missing, your probably need to run `python -Im pip install -e . --group dev` again.
## Code
@ -110,7 +119,8 @@ $ pre-commit run --all-files
"""
```
- If you add or change public APIs, tag the docstring using `.. versionadded:: 16.0.0 WHAT` or `.. versionchanged:: 16.2.0 WHAT`.
- We use [*isort*](https://github.com/PyCQA/isort) to sort our imports, and we use [*Black*](https://github.com/psf/black) with line length of 79 characters to format our code.
- We use [Ruff](https://ruff.rs/) to sort our imports and format our code with a line length of 79 characters.
As long as you run our full [*tox*] suite before committing, or install our [*pre-commit*] hooks (ideally you'll do both see [*Local Development Environment*](#local-development-environment) above), you won't have to spend any time on formatting your code at all.
If you don't, [CI] will catch it for you but that seems like a waste of your time!

4
.github/FUNDING.yml vendored
View File

@ -1,3 +1,5 @@
---
github: hynek
ko_fi: the_hynek
tidelift: pypi/argon2-cffi-bindings
thanks_dev: u/gh/hynek
custom: https://hynek.me/say-thanks/

9
.github/SECURITY.md vendored
View File

@ -2,14 +2,11 @@
## Supported Versions
We are following [CalVer](https://calver.org) with generous backward-compatibility guarantees.
We are following [CalVer](https://calver.org) with generous backwards-compatibility guarantees.
Therefore we only support the latest version.
## Reporting a Vulnerability
If you think you found a Vulnerability, please contact Hynek Schlawack at <hs@ox.cx>.
If you insist on using PGP, you can use the key `0xAE2536227F69F181`.
The fingerprint must be `C2A0 4F86 ACE2 8ADC F817 DBB7 AE25 3622 7F69 F181`.
You can also find it on [Keybase](https://keybase.io/hynek).
To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security).
Tidelift will coordinate the fix and disclosure.

14
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,14 @@
---
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
cooldown:
# https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns
default-days: 7
groups:
github-actions:
patterns:
- "*"

185
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,185 @@
---
name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
env:
FORCE_COLOR: "1" # Make tools pretty.
PIP_DISABLE_PIP_VERSION_CHECK: 1
PIP_NO_PYTHON_VERSION_WARNING: 1
SETUPTOOLS_SCM_PRETEND_VERSION: "1.0" # avoid warnings about shallow checkout
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
build-package:
name: Build & verify package
runs-on: ubuntu-latest
env:
BUILD_PYTHON: "3.14"
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false
- uses: hynek/build-and-inspect-python-package@fe0a0fb1925ca263d076ca4f2c13e93a6e92a33e # v2.17.0
id: baipp
with:
include-free-threaded: 'true'
python-version: ${{ env.BUILD_PYTHON }}
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
cache: pip
python-version: ${{ env.BUILD_PYTHON }}
# Smoke-check the wheel against argon2-cffi.
- run: python -Im pip install $DIST/*.whl
env:
DIST: ${{ steps.baipp.outputs.dist }}
- run: python -Im pip install --no-deps git+https://github.com/hynek/argon2-cffi.git
- run: python -Im argon2 -n 1 -t 1 -m 8 -p 1
outputs:
# Used to define the matrix for tests below. The value is based on
# packaging metadata (trove classifiers).
python-versions: ${{ steps.baipp.outputs.supported_python_classifiers_json_array }}
tests:
name: Tests on ${{ matrix.python-version }}
needs: build-package
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Created by the build-and-inspect-python-package action above.
python-version: ${{ fromJson(needs.build-package.outputs.python-versions) }}
env:
PYTHON: ${{ matrix.python-version }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache: pip
- run: python -Im pip install tox
- run: python -Im tox run -e $PYTHON
tests-pypy:
name: Tests against latest PyPy
runs-on: ubuntu-latest
env:
PYTHON: pypy3.11
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.PYTHON }}
allow-prereleases: true
cache: pip
- run: python -Im pip install tox
- run: python -Im tox run -e $PYTHON
system-package:
runs-on: ubuntu-latest
name: Install and test with system package of Argon2
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version-file: .python-version-default
cache: pip
- name: Install dependencies
run: |
sudo apt-get install libargon2-1 libargon2-dev
# Ensure we cannot use our own Argon2 by accident.
rm -rf extras
- run: python -Im pip install tox
- run: python -Im tox run -e system-argon2
install-dev:
name: Verify dev env
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version-file: .python-version-default
- run: python -Im pip install -e . --group dev
- name: Import package
run: python -c 'from _argon2_cffi_bindings import ffi, lib; print(lib.ARGON2_VERSION_NUMBER)'
- run: otool -L src/_argon2_cffi_bindings/_ffi.abi3.so
if: startsWith(matrix.os , 'macos')
- run: ldd src/_argon2_cffi_bindings/_ffi.abi3.so
if: startsWith(matrix.os , 'ubuntu')
- name: Check presence of pytest
run: pytest --version
cog-check:
name: Ensure cogified files are up-to-date
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
cache: pip
python-version: "3.x"
- run: python -Im pip install tox
- run: python -Im tox run -e cog-check
required-checks-pass:
name: Ensure everything required is passing for branch protection
if: always()
needs:
- build-package
- tests
- tests-pypy
- install-dev
- system-package
- cog-check
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
with:
jobs: ${{ toJSON(needs) }}

42
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@ -0,0 +1,42 @@
---
name: CodeQL
on:
schedule:
- cron: "41 3 * * 6"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
permissions: {}
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
security-events: write # necessary according to docs
strategy:
fail-fast: false
matrix:
language: [python]
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3

View File

@ -1,113 +0,0 @@
---
name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
workflow_dispatch:
env:
FORCE_COLOR: "1" # Make tools pretty.
TOX_TESTENV_PASSENV: "FORCE_COLOR"
PYTHON_LATEST: "3.10"
jobs:
tests:
name: "tox on ${{ matrix.python-version }}"
runs-on: "ubuntu-latest"
strategy:
matrix:
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "pypy-3.7"]
steps:
- uses: "actions/checkout@v2"
with:
submodules: "recursive"
- uses: "actions/setup-python@v2"
with:
python-version: "${{ matrix.python-version }}"
- name: "Install dependencies"
run: |
python -VV
python -m site
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade virtualenv tox tox-gh-actions
- name: "Run tox targets for ${{ matrix.python-version }}"
run: "python -m tox"
system-package:
runs-on: "ubuntu-latest"
name: "Install and test with system package of Argon2."
steps:
- uses: "actions/checkout@v2"
- uses: "actions/setup-python@v2"
with:
python-version: ${{env.PYTHON_LATEST}}
- name: "Install dependencies"
run: |
sudo apt-get install libargon2-0 libargon2-0-dev
# Ensure we cannot use our own Argon2 by accident.
rm -rf extras
python -VV
python -m site
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade virtualenv tox
- run: "python -m tox -e system-argon2"
package:
name: "Build & verify package"
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v2"
with:
submodules: "recursive"
- uses: "actions/setup-python@v2"
with:
python-version: ${{env.PYTHON_LATEST}}
- run: "python -m pip install build twine check-wheel-contents"
- run: "python -m build --sdist --wheel ."
- run: "ls -l dist"
- run: "check-wheel-contents dist/*.whl"
- name: "Check long_description"
run: "python -m twine check dist/*"
# Smoke-check the wheel against argon2-cffi.
- run: "python -m pip install dist/*.whl"
- run: "python -m pip install --no-deps git+https://github.com/hynek/argon2-cffi.git"
- run: "python -m argon2 -n 1 -t 1 -m 8 -p 1"
install-dev:
name: "Verify dev env"
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
steps:
- uses: "actions/checkout@v2"
with:
submodules: "recursive"
- uses: "actions/setup-python@v2"
with:
python-version: ${{env.PYTHON_LATEST}}
- run: python -m pip install --upgrade pip
- run: python -m pip install -e .[dev]
- name: "Import package"
run: "python -c 'from _argon2_cffi_bindings import ffi, lib; print(lib.ARGON2_VERSION_NUMBER)'"
- run: "otool -L src/_argon2_cffi_bindings/_ffi.abi3.so"
if: startsWith(matrix.os , 'macos')
- run: "ldd src/_argon2_cffi_bindings/_ffi.abi3.so"
if: startsWith(matrix.os , 'ubuntu')
...

View File

@ -4,8 +4,17 @@ name: Wheels
on:
push:
tags:
- '*'
- "*"
pull_request:
workflow_dispatch:
schedule:
- cron: "30 4 15 * *"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
@ -15,35 +24,64 @@ jobs:
strategy:
fail-fast: false
matrix:
# macOS-11 has no Python 3.6.
os: [ubuntu-latest, windows-latest, macOS-10.15]
include:
- os: ubuntu-22.04
- os: ubuntu-22.04-arm
- os: windows-2022
- os: windows-11-arm
- os: macOS-14
- os: ubuntu-24.04-riscv
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: "recursive"
submodules: recursive
fetch-depth: 0
fetch-tags: true
persist-credentials: false
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v1
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
platforms: arm64
enable-cache: "false"
- uses: pypa/cibuildwheel@v2.3.0
# Use the GitHub Action for all platforms except riscv64
- name: Build wheels on ${{ matrix.os }}
uses: pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
if: ${{ !endsWith(matrix.os, 'riscv') }}
env:
# Only build CPython 3.6, because we have portable abi3 wheels.
# Windows arm64 is only available on 3.9 and later, Apple Silicon on
# 3.8 and later.
CIBW_BUILD: "cp36-* pp37-* pp38-* cp39-win_arm64 cp38-macosx_universal2"
CIBW_ARCHS_LINUX: "auto aarch64"
CIBW_ARCHS_MACOS: "auto universal2"
CIBW_TEST_COMMAND: python -c "from _argon2_cffi_bindings import ffi, lib; print(lib.ARGON2_VERSION_NUMBER)"
# Silence warning we can't do anything about.
CIBW_TEST_SKIP: "*-macosx_universal2:arm64"
CIBW_ARCHS: auto
- uses: actions/upload-artifact@v2
- name: Build wheels on ${{ matrix.os }}
run: uvx --python 3.14 cibuildwheel --output-dir wheelhouse
if: ${{ endsWith(matrix.os, 'riscv') }}
env:
CIBW_ARCHS: riscv64
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels
path: wheelhouse/*.whl
if-no-files-found: error
name: wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
...
pypi-publish:
if: |
github.event.repository.fork == false
&& github.event_name == 'push'
&& startsWith(github.ref, 'refs/tags')
needs: wheels
runs-on: ubuntu-latest
name: Upload release to PyPI
environment:
name: release-pypi
url: https://pypi.org/p/argon2-cffi-bindings
permissions:
id-token: write # necessary for trusted publishing
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: wheels-*
path: dist
merge-multiple: true
- name: List files
run: ls -la dist/
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0

33
.github/workflows/zizmor.yml vendored Normal file
View File

@ -0,0 +1,33 @@
---
# https://github.com/woodruffw/zizmor
name: Zizmor 🌈
on:
push:
branches: ["main"]
pull_request:
branches: ["**"]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
zizmor:
name: Run zizmor 🌈
runs-on: ubuntu-latest
permissions:
security-events: write # Required for upload-sarif (used by zizmor-action) to upload SARIF files.
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Run zizmor 🌈
uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3
with:
persona: pedantic
...

8
.gitignore vendored
View File

@ -1,7 +1,11 @@
.tox
*.egg-info
*.so
.DS_Store
.direnv
.eggs
.tox
.vscode
__pycache__
build
dist
__pycache__
.envrc

View File

@ -3,28 +3,29 @@ ci:
autoupdate_schedule: monthly
repos:
- repo: https://github.com/psf/black
rev: 21.11b1
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.12
hooks:
- id: black
language_version: python3.10
- id: ruff-check
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
- repo: https://github.com/PyCQA/isort
rev: 5.10.1
- repo: https://github.com/econchick/interrogate
rev: 1.7.0
hooks:
- id: isort
additional_dependencies: [toml]
- id: interrogate
args: [tests]
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
- repo: https://github.com/codespell-project/codespell
rev: v2.4.2
hooks:
- id: flake8
language_version: python3.10
- id: codespell
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: debug-statements
- id: check-toml
- id: check-yaml

1
.python-version-default Normal file
View File

@ -0,0 +1 @@
3.13

View File

@ -1,14 +1,66 @@
# Changelog
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Calendar Versioning](https://calver.org/).
The first digit of the version is the year, the second digit is incremented with each release, starting at 1 for each year.
The third digit is when we need to start branches for older releases (only for emergencies).
The **first number** of the version is the year.
The **second number** is incremented with each release, starting at 1 for each year.
The **third number** is when we need to start branches for older releases (only for emergencies).
<!-- changelog follows -->
## [Unreleased](https://github.com/hynek/argon2-cffi-bindings/compare/25.1.0...HEAD)
<!-- [[[cog
# Extract commit ID; refresh using `tox -e cog`
import subprocess
out = subprocess.check_output(["git", "submodule"], text=True)
id = out.strip().split(" ", 1)[0]
link = f'[**`{id[:7]}`**](https://github.com/P-H-C/phc-winner-argon2/commit/{id})'
print(f"Vendoring *Argon2* @ {link}.")
]]] -->
Vendoring *Argon2* @ [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
<!-- [[[end]]] -->
### Added
- Python 3.15 support.
No free-threading wheels for now, because *cibuildwheel* doesn't support Python 3.15, yet.
- PyPy 3.11 wheels.
- Wheels for Linux on RISC-V 64bit.
[#106](https://github.com/hynek/argon2-cffi-bindings/pull/106)
## [25.1.0](https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0) - 2025-07-30
Vendoring Argon2 @ [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
### Added
- Official Python 3.12, 3.13, and 3.14 support.
No code or packaging changes were necessary.
- Support for free-threading (aka nogil) on Python 3.14.
[#70](https://github.com/hynek/argon2-cffi-bindings/pull/70)
[#93](https://github.com/hynek/argon2-cffi-bindings/pull/93)
- Wheels for Windows on ARM64.
[#83](https://github.com/hynek/argon2-cffi-bindings/pull/83)
### Removed
- Python 3.6, 3.7, and 3.8 support.
There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.
The [21.2.0 wheels on PyPI](https://pypi.org/project/argon2-cffi-bindings/21.2.0/) include support for Python 3.6 and are based on the same Argon2 version.
## [21.2.0](https://github.com/hynek/argon2-cffi-bindings/compare/21.1.0...21.2.0) - 2021-12-01
Vendoring *Argon2* @ [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
Vendoring Argon2 @ [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
### Added
@ -18,14 +70,14 @@ Vendoring *Argon2* @ [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/
### Changed
- The compilation of the vendored *Argon2* C library is now left to *CFFI*.
This prevents the accidental usage of a system-wide *Argon2* installation.
- The compilation of the vendored Argon2 C library is now left to CFFI.
This prevents the accidental usage of a system-wide Argon2 installation.
[#1](https://github.com/hynek/argon2-cffi-bindings/pull/1)
## [21.1.0](https://github.com/hynek/argon2-cffi-bindings/releases/tag/21.1.0) - 2021-11-28
Vendoring *Argon2* @ [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
Vendoring Argon2 @ [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
### Added

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2021 Hynek Schlawack
Copyright (c) 2021 Hynek Schlawack and the argon2-cffi-bindings contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,46 +1,51 @@
# Low-level Python CFFI Bindings for Argon2
*argon2-cffi-bindings* provides low-level [*CFFI*](https://cffi.readthedocs.io/) bindings to the [*Argon2*] password hashing algorithm including a vendored version of them.
[![License: MIT](https://img.shields.io/badge/license-MIT-C06524)](https://github.com/hynek/argon2-cffi-bindings/blob/main/LICENSE)
[![PyPI version](https://img.shields.io/pypi/v/argon2-cffi-bindings)](https://pypi.org/project/argon2-cffi-bindings/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/argon2-cffi-bindings.svg)](https://pypi.org/project/argon2-cffi-bindings)
*argon2-cffi-bindings* provides low-level [CFFI](https://cffi.readthedocs.io/) bindings to the official implementation of the [Argon2] password hashing algorithm.
<!-- [[[cog
# Extract commit ID; refresh using `tox -e cog`
# Extract commit ID; refresh using `tox -e cog-render`
import subprocess
out = subprocess.check_output(["git", "submodule"], text=True)
id = out.strip().split(" ", 1)[0]
link = f'[**`{id[:7]}`**](https://github.com/P-H-C/phc-winner-argon2/commit/{id})'
print(f"The currently vendored *Argon2* commit ID is {link}.")
print(f"The currently vendored Argon2 commit ID is {link}.")
]]] -->
The currently vendored *Argon2* commit ID is [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
The currently vendored Argon2 commit ID is [**`f57e61e`**](https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb).
<!-- [[[end]]] -->
> [!NOTE]
> If you want to hash passwords in an application, this package is **not** for you.
> Have a look at [*argon2-cffi*] with its high-level abstractions!
These bindings have been extracted from [*argon2-cffi*] and it remains its main consumer.
However, they may be used by other packages that want to use the *Argon2* library without dealing with C-related complexities.
However, they may be used by other packages that want to use the Argon2 library without dealing with C-related complexities.
## Usage
*argon2-cffi-bindings* is available from [PyPI](https://pypi.org/project/argon2-cffi-bindings/).
The provided *CFFI* bindings are compiled in API mode.
The provided CFFI bindings are compiled in API mode.
Best effort is given to provide binary wheels for as many platforms as possible.
### Disabling Vendored Code
A copy of [*Argon2*] is vendored and used by default, but can be disabled if *argon2-cffi-bindings* is installed using:
A copy of [Argon2] is vendored and used by default, but can be disabled if *argon2-cffi-bindings* is installed using:
```console
$ env ARGON2_CFFI_USE_SYSTEM=1 \
python -m pip install --no-binary=argon2-cffi-bindings argon2-cffi-bindings
python -Im pip install --no-binary=argon2-cffi-bindings argon2-cffi-bindings
```
### Overriding Automatic *SSE2* Detection
### Overriding Automatic SSE2 Detection
Usually the build process tries to guess whether or not it should use [*SSE2*](https://en.wikipedia.org/wiki/SSE2)-optimized code (see [`_ffi_build.py`](https://github.com/hynek/argon2-cffi-bindings/blob/main/src/_argon2_cffi_bindings/_ffi_build.py) for details).
Usually the build process tries to guess whether or not it should use [SSE2](https://en.wikipedia.org/wiki/SSE2)-optimized code (see [`_ffi_build.py`](https://github.com/hynek/argon2-cffi-bindings/blob/main/src/_argon2_cffi_bindings/_ffi_build.py) for details).
This can go wrong and is problematic for cross-compiling.
Therefore you can use the `ARGON2_CFFI_USE_SSE2` environment variable to control the process:
@ -66,15 +71,16 @@ Please refer to [*cffi* documentation](https://cffi.readthedocs.io/en/latest/usi
The list of symbols that are provided can be found in the [`_ffi_build.py` file](https://github.com/hynek/argon2-cffi-bindings/blob/main/src/_argon2_cffi_bindings/_ffi_build.py).
[*Argon2*]: https://github.com/p-h-c/phc-winner-argon2
[Argon2]: https://github.com/p-h-c/phc-winner-argon2
[*argon2-cffi*]: https://argon2-cffi.readthedocs.io/
## Project Information
*argon2-cffi-bindings* is available under the MIT license, available from [PyPI](https://pypi.org/project/argon2-cffi-bindings/), the source code and documentation can be found on [GitHub](https://github.com/hynek/argon2-cffi-bindings).
*argon2-cffi-bindings* targets Python 3.6 and later, including PyPy3.
- [**Changelog**](https://github.com/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md)
- [**Documentation**](https://github.com/hynek/argon2-cffi-bindings#readme)
- [**PyPI**](https://pypi.org/project/argon2-cffi-bindings/)
- [**Source Code**](https://github.com/hynek/argon2-cffi-bindings)
### Credits & License
@ -82,21 +88,29 @@ The list of symbols that are provided can be found in the [`_ffi_build.py` file]
*argon2-cffi-bindings* is written and maintained by [Hynek Schlawack](https://hynek.me/about/).
It is released under the [MIT license](https://github.com/hynek/argon2-cffi/blob/main/LICENSE>).
The development is kindly supported by [Variomedia AG](https://www.variomedia.de/).
The development is kindly supported by [Variomedia AG](https://www.variomedia.de/) and all my amazing [GitHub Sponsors](https://github.com/sponsors/hynek).
The authors of *Argon2* were very helpful to get the library to compile on ancient versions of Visual Studio for ancient versions of Python.
The authors of Argon2 were very helpful to get the library to compile on ancient versions of Visual Studio for ancient versions of Python.
The documentation quotes frequently in verbatim from the *Argon2* [paper](https://www.password-hashing.net/argon2-specs.pdf) to avoid mistakes by rephrasing.
The documentation quotes frequently in verbatim from the Argon2 [paper](https://www.password-hashing.net/argon2-specs.pdf) to avoid mistakes by rephrasing.
#### Vendored Code
The original *Argon2* repo can be found at <https://github.com/P-H-C/phc-winner-argon2/>.
The original Argon2 repo can be found at <https://github.com/P-H-C/phc-winner-argon2/>.
Except for the components listed below, the *Argon2* code in this repository is copyright (c) 2015 Daniel Dinu, Dmitry Khovratovich (main authors), Jean-Philippe Aumasson and Samuel Neves, and under [CC0] license.
Except for the components listed below, the Argon2 code in this repository is copyright (c) 2015 Daniel Dinu, Dmitry Khovratovich (main authors), Jean-Philippe Aumasson and Samuel Neves, and under [CC0] license.
The string encoding routines in src/encoding.c are copyright (c) 2015 Thomas Pornin, and under [CC0] license.
The string encoding routines in `src/encoding.c` are copyright (c) 2015 Thomas Pornin, and under [CC0] license.
The [*BLAKE2*](https://www.blake2.net) code in ``src/blake2/`` is copyright (c) Samuel Neves, 2013-2015, and under [CC0] license.
The [BLAKE2](https://www.blake2.net) code in `src/blake2/` is copyright (c) Samuel Neves, 2013-2015, and under [CC0] license.
[CC0]: https://creativecommons.org/publicdomain/zero/1.0/
### *argon2-cffi-bindings* for Enterprise
Available as part of the [Tidelift Subscription](https://tidelift.com/?utm_source=lifter&utm_medium=referral&utm_campaign=hynek).
The maintainers of *argon2-cffi-bindings* and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open-source packages you use to build your applications.
Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use.

View File

@ -1,25 +1,146 @@
[build-system]
requires = ["setuptools>=45", "setuptools_scm>=6.2", "wheel", "cffi>=1.0.1"]
requires = [
"setuptools>=77",
"setuptools_scm[toml]>=6.2",
"cffi>=1.0.1; python_version < '3.14'",
"cffi>=2; python_version >= '3.14'",
]
build-backend = "setuptools.build_meta"
[project]
dynamic = ["version"]
name = "argon2-cffi-bindings"
description = "Low-level CFFI bindings for Argon2"
readme = { content-type = "text/markdown", file = "README.md" }
authors = [{ name = "Hynek Schlawack", email = "hs@ox.cx" }]
requires-python = ">=3.9"
license = "MIT"
license-files = ["LICENSE"]
keywords = ["password", "hash", "hashing", "security", "bindings", "cffi"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Operating System :: Unix",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Programming Language :: Python :: Free Threading",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Security :: Cryptography",
"Topic :: Security",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"cffi>=1.0.1; python_version < '3.14'",
"cffi>=2; python_version >= '3.14'",
]
[dependency-groups]
tests = ["pytest"]
dev = [{ include-group = "tests" }, "cogapp", "pre-commit"]
[project.urls]
Tidelift = "https://tidelift.com/?utm_source=lifter&utm_medium=referral&utm_campaign=hynek"
Changelog = "https://github.com/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md"
GitHub = "https://github.com/hynek/argon2-cffi-bindings"
Funding = "https://github.com/sponsors/hynek"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools_scm]
# Dev versions are PREVIOUS.post1.devXYZ
version_scheme = "no-guess-dev"
# Dev versions are PREVIOUS.devN with N being the # of commits since PREVIOUS.
local_scheme = "no-local-version"
[tool.cibuildwheel]
build-frontend = "uv"
build = [
"cp39-*", # We have portable abi3 wheels.
"cp314t-*", # Free-threading / nogil.
# PyPy 3.9 is EOL and doesn't build on Windows anymore.
"pp310-*",
"pp311-*",
]
enable = ["pypy", "pypy-eol"]
before-all = "uname -a"
test-command = 'python -Ic "from _argon2_cffi_bindings import ffi, lib; print(lib.ARGON2_VERSION_NUMBER)"'
[[tool.cibuildwheel.overrides]]
select = "*linux_riscv64"
build-frontend = "build"
[tool.cibuildwheel.macos]
# PyPy has no universal2, so let's build them all, always.
archs = ["all"]
[tool.pytest.ini_options]
addopts = "-ra --strict-markers --capture=no"
addopts = ["-ra", "--strict-markers", "--strict-config", "--capture=no"]
xfail_strict = true
testpaths = "tests"
filterwarnings = [
"once::Warning",
]
filterwarnings = ["once::Warning"]
[tool.black]
[tool.interrogate]
omit-covered-files = true
verbose = 2
fail-under = 100
whitelist-regex = ["test_.*"]
[tool.ruff]
src = ["src", "tests"]
line-length = 79
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"A001", # shadowing is fine
"A002", # shadowing is fine
"A003", # shadowing is fine
"ANN", # Mypy is better at this
"ARG001", # unused arguments are normal when implementing interfaces
"COM", # Formatter takes care of our commas
"D", # We prefer our own docstring style.
"E501", # leave line-length enforcement to formatter
"ERA001", # Dead code detection is overly eager.
"FBT", # we have one function that takes one bool; c'mon!
"FIX", # Yes, we want XXX as a marker.
"INP001", # sometimes we want Python files outside of packages
"ISC001", # conflicts with ruff format
"PLC0415", # sometimes, imports must live elsewhere
"PLR2004", # numbers are sometimes fine
"PLW2901", # re-assigning within loop bodies is fine
"RUF001", # leave my smart characters alone
"SLF001", # private members are accessed by friendly functions
"TC", # TYPE_CHECKING blocks break autodocs
"TD", # we don't follow other people's todo style
]
[tool.isort]
profile = "attrs"
[tool.ruff.lint.per-file-ignores]
"tests/*" = [
"ARG", # stubs don't care about arguments
"S101", # assert
"SIM300", # Yoda rocks in asserts
"PT011", # broad is fine
"TRY002", # stock exceptions are fine in tests
"EM101", # no need for exception msg hygiene in tests
]
[tool.ruff.lint.isort]
lines-between-types = 1
lines-after-imports = 2

108
setup.py
View File

@ -1,112 +1,42 @@
# SPDX-License-Identifier: MIT
import pathlib
import platform
import sys
import sysconfig
from setuptools import find_packages, setup
from setuptools import setup
###############################################################################
NAME = "argon2-cffi-bindings"
DESCRIPTION = "Low-level CFFI bindings for Argon2"
URL = "https://github.com/hynek/argon2-cffi-bindings"
LICENSE = "MIT"
AUTHOR = "Hynek Schlawack"
EMAIL = "hs@ox.cx"
CFFI_MODULES = ["src/_argon2_cffi_bindings/_ffi_build.py:ffi"]
PYTHON_REQUIRES = ">=3.6"
SETUP_REQUIRES = ["cffi>=1.0.1", "setuptools_scm>=6.2"]
INSTALL_REQUIRES = ["cffi>=1.0.1"]
EXTRAS_REQUIRE = {"tests": ["pytest"]}
EXTRAS_REQUIRE["dev"] = EXTRAS_REQUIRE["tests"] + [
"cogapp",
"pre-commit",
"wheel",
]
KEYWORDS = ["password", "hash", "hashing", "security", "bindings", "cffi"]
PROJECT_URLS = {
"Source Code": "https://github.com/hynek/argon2-cffi-bindings",
"Funding": "https://github.com/sponsors/hynek",
"Tidelift": "https://tidelift.com/subscription/pkg/pypi-argon2-cffi?"
"utm_source=pypi-argon2-cffi&utm_medium=pypi",
"Ko-fi": "https://ko-fi.com/the_hynek",
}
CLASSIFIERS = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Operating System :: Unix",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Programming Language :: Python",
"Topic :: Security :: Cryptography",
"Topic :: Security",
"Topic :: Software Development :: Libraries :: Python Modules",
]
###############################################################################
cmdclass = {}
if platform.python_implementation() == "CPython":
try:
import wheel.bdist_wheel
except ImportError:
BDistWheel = None
else:
try:
from setuptools.command.bdist_wheel import bdist_wheel
except ImportError:
from wheel.bdist_wheel import bdist_wheel
class BDistWheel(wheel.bdist_wheel.bdist_wheel):
class BDistWheel(bdist_wheel):
def finalize_options(self):
self.py_limited_api = f"cp3{sys.version_info[1]}"
wheel.bdist_wheel.bdist_wheel.finalize_options(self)
# Free-threaded CPython doesn't support limited API.
if sysconfig.get_config_var("Py_GIL_DISABLED"):
self.py_limited_api = False
else:
self.py_limited_api = f"cp3{sys.version_info[1]}"
super().finalize_options()
else:
BDistWheel = None
cmdclass["bdist_wheel"] = BDistWheel
except ImportError:
pass
if __name__ == "__main__":
cmdclass = {}
if BDistWheel is not None:
cmdclass["bdist_wheel"] = BDistWheel
setup(
name=NAME,
use_scm_version=True, # setuptools_scm
description=DESCRIPTION,
license=LICENSE,
url=URL,
project_urls=PROJECT_URLS,
author=AUTHOR,
author_email=EMAIL,
maintainer=AUTHOR,
maintainer_email=EMAIL,
long_description=pathlib.Path("README.md").read_text(),
long_description_content_type="text/markdown",
keywords=KEYWORDS,
packages=find_packages(where="src"),
package_dir={"": "src"},
classifiers=CLASSIFIERS,
python_requires=PYTHON_REQUIRES,
setup_requires=SETUP_REQUIRES,
install_requires=INSTALL_REQUIRES,
extras_require=EXTRAS_REQUIRE,
# Ensure limited API is set on CPython
cmdclass=cmdclass,
# CFFI
zip_safe=False,
ext_package="_argon2_cffi_bindings",
cffi_modules=CFFI_MODULES,
cffi_modules=["src/_argon2_cffi_bindings/_ffi_build.py:ffi"],
)

View File

@ -2,6 +2,7 @@
import os
import platform
import sysconfig
from pathlib import Path
@ -11,6 +12,8 @@ from cffi import FFI
use_system_argon2 = os.environ.get("ARGON2_CFFI_USE_SYSTEM", "0") == "1"
use_sse2 = os.environ.get("ARGON2_CFFI_USE_SSE2", None)
windows = platform.system() == "Windows"
# Free-threaded CPython doesn't support limited API.
limited_api = not sysconfig.get_config_var("Py_GIL_DISABLED")
# Try to detect cross-compilation.
@ -48,6 +51,7 @@ if use_system_argon2:
"_ffi",
"#include <argon2.h>",
libraries=["argon2"],
py_limited_api=limited_api,
)
else:
lib_base = Path("extras") / "libargon2" / "src"
@ -55,7 +59,8 @@ else:
"_ffi",
"#include <argon2.h>",
extra_compile_args=["-msse2"] if (optimized and not windows) else None,
include_dirs=[os.path.join("extras", "libargon2", "include")],
include_dirs=[str(Path("extras", "libargon2", "include"))],
py_limited_api=limited_api,
sources=[
str(lib_base / path)
for path in [

View File

@ -4,7 +4,7 @@ from _argon2_cffi_bindings._ffi_build import _get_target_platform
@pytest.mark.parametrize(
"arch_flags, expected",
("arch_flags", "expected"),
[
(" -arch arm64", "arm64"),
("abc -arch arm64 xyz", "arm64"),

70
tox.ini
View File

@ -1,72 +1,50 @@
[flake8]
exclude = src/_argon2_cffi_bindings/_ffi.py
ignore:
# Black vs flake8 conflict
E203
# We don't run pre-commit in CI, because we use pre-commit.ci.
[gh-actions]
python =
3.6: py36
3.7: py37
3.8: py38
3.9: py39
3.10: py310, cogCheck
pypy-3: pypy3
[tox]
envlist = pre-commit,cogCheck,cog,py36,py37,py38,py39,py310,pypy3,system-argon2,pypi-description
isolated_build = true
min_version = 4.25
env_list =
pre-commit,
cog-{check,render},
3.{9-15},
3.1{4-5}t,
pypy3.{9-11},
system-argon2
[testenv:pre-commit]
description = Run all pre-commit hooks.
basepython = python3.10
skip_install = true
deps = pre-commit
passenv = HOMEPATH # needed on Windows
commands = pre-commit run --all-files
[testenv:cog]
description = "Update README"
[testenv:cog-render]
description = Update README and CHANGELOG
skip_install = true
deps =
cogapp>=3.3.0
commands = python -m cogapp -rP README.md CHANGELOG.md
deps = cogapp>=3.3.0
commands = cog -rP README.md CHANGELOG.md
[testenv:cogCheck]
description = "Ensure README.md is up to date"
[testenv:cog-check]
description = Ensure README and CHANGELOG are up-to-date
skip_install = true
deps = {[testenv:cog]deps}
commands = python -m cogapp --check -P README.md CHANGELOG.md
deps = {[testenv:cog-render]deps}
commands = cog --check -P README.md CHANGELOG.md
[testenv]
description = Run tests.
extras = tests
commands =
python -m pytest {posargs}
dependency_groups = tests
commands = pytest {posargs}
[testenv:system-argon2]
description = Run tests against bindings that use a system installation of Argon2.
setenv = ARGON2_CFFI_USE_SYSTEM=1
extras = tests
set_env = ARGON2_CFFI_USE_SYSTEM=1
dependency_groups = tests
install_command = pip install {opts} --no-binary=argon2-cffi-bindings {packages}
commands =
python -m pytest {posargs}
[testenv:pypi-description]
description = Ensure README.rst renders on PyPI.
[testenv:clean]
description = Remove build artifacts.
allowlist_externals = rm
skip_install = true
deps =
twine
pip >= 18.0.0
commands =
pip wheel -w {envtmpdir}/build --no-deps .
twine check {envtmpdir}/build/*
commands = rm -rf .tox build src/argon2_cffi_bindings.egg-info