Skip to content

move argon2-cffi to optional [password] dependency for Python 3.13 #1520

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

minrk
Copy link
Contributor

@minrk minrk commented May 5, 2025

a temporary measure, to allow installation on free-threaded Python while CFFI is unsupported. Adds a test run against 3.13t.

When PEP 780 lands, we can move this to a free-threaded condition, instead of a version one. But it's possible that CFFI will be fixed before that happens.

  • big downside: pip install jupyterlab becomes incomplete on Python >=3.13, as passwords cannot be set or checked without adding jupyter-server[password] dependency. Of course, only password-setting users are affected, not default tokens.
  • upside: 3.13t installation is possible, where it wasn't before

The standard library does have support for scrypt now, so we could at the same time add support for scrypt passwords and use that by default. Then the degradation would be smaller, in that only password checking for already-stored argon2 passwords would be affected, instead of also losing the ability to set new ones.

xref jupyterlab/jupyterlab#16915

a temporary measure, to allow installation on free-threaded Python while CFFI is unsupported

When PEP 780 lands, we can move this to a free-threaded condition,
instead of a version one

- big downside: `pip install jupyterlab` is incomplete on Python 3.13 if you have a password set
- upside: 3.13t installation is _possible_, where it wasn't before
why is hatch fmt inconsistent with ruff?
@minrk
Copy link
Contributor Author

minrk commented May 5, 2025

going to be a little harder than I thought to test, since hatch itself can't be installed on free-threading. We don't technicaly need hatch for anything, but it's how the CI scripting is currently run and none of it is optional or even controllable.

The maintainer-tools/base-setup action really removes a lot of flexibility and control from repos, and I don't think we should use it as much as we do for pure Python packages like this one.

@ngoldbaum
Copy link

since hatch itself can't be installed on free-threading.

I also had to deal with this over in LibCST: https://github.com/Instagram/LibCST/blob/11d6e36450f9062b74bf82f314d42456aabf5625/.github/workflows/ci.yml#L67-L88

The Hatch issue is over here: pypa/hatch#1801

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants