Skip to content

Register fastfields-helpers as a sixth indexed project - #6

Merged
balbasty merged 1 commit into
mainfrom
register-fastfields-helpers
Aug 17, 2026
Merged

Register fastfields-helpers as a sixth indexed project#6
balbasty merged 1 commit into
mainfrom
register-fastfields-helpers

Conversation

@balbasty

Copy link
Copy Markdown
Contributor

Why

fastfields-helpers is a new, sixth distribution: the pure-Python enums (Spline/Bound) and argument normalisers being split out of fastfields-dlpack, so a one-line Python fix no longer needs a full compiled-wheel release cycle across every platform.

It publishes a single universal py3-none-any wheel exactly like the other pure-Python distributions, so it is registered as a peer of the existing five, not a special case: one entry in projects, one [[sources.release]].

Registering before the release exists is safe — verified, not assumed

The plan called for registering the project ahead of its first release. I checked generate.py rather than assuming it tolerates that, and it does, for two independent reasons:

  1. projects is never read.generate.py consumes only index.{title,base_url,backends} and sources.release[].repo. The index tree is built purely from wheels actually discovered, so a listed-but-wheel-less project simply never appears in any folder.
  2. A repo whose Releases API call errors is skipped with a warning, not a failure — wheels_from_releases() catches URLError/HTTPError per repo and continues (the docstring already promises "Repos that error (404, rate limit) are skipped with a warning").

Confirmed empirically by running the generator against this exact config, with the repo not yet existing:

$ python generate.py --from-releases --out /tmp/whlout
::warning::skipping fastfields/fastfields-helpers: HTTP Error 403: Forbidden
wrote 0 wheels across 0 published backend(s) (none) to /tmp/whlout;
4 planned backend(s) (cpu, cu118, cu126, cu130) serve no packages
$ echo $?
0

It warns, skips, and still writes a valid index. Once the first release lands, the entry starts resolving with no further change here.

Verification

python -m pytest test_generate.py -q17 passed, 16 subtests passed, unchanged.

Sequencing

Part of the fastfields-helpers extraction. The prerequisite workflow change (fastfields/.github#10, needs-dlpack input) is already merged. The repo fastfields/fastfields-helpers itself could not be created from this session — org repo creation returns 403 Resource not accessible by integration — so that step is human-gated; this registration is deliberately landed first since it is safe either way and unblocks the release the moment the repo exists.

🤖 Generated with Claude Code

https://claude.ai/code/session_016AjQcY78NgbagPSbPJRr6Z


Generated by Claude Code

fastfields-helpers is the pure-Python enums/normalisation package being split
out of fastfields-dlpack, so Python-only fixes ship without a compiled-wheel
release cycle. It publishes a universal wheel exactly like the other
pure-Python distributions, so it is registered as a peer of the existing five
rather than as a special case.
Registering it before its first release exists is deliberate and safe:
generate.py catches the Releases-API error per repo and skips it with a
::warning::, and the `projects` list is declarative -- the index tree is built
only from wheels actually discovered. Verified by running
`generate.py --from-releases` against this config: it warns
"skipping fastfields/fastfields-helpers" and still exits 0 with a valid index.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AjQcY78NgbagPSbPJRr6Z
@balbasty
balbasty merged commit 72b956b into mainAug 17, 2026
1 check passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@balbasty