You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
NLPPlus v2.2.39 (engine v4.2.0) never reached PyPI: the Linux wheel job failed uploading its artifact (403) #38
PyPI's newest NLPPlus is 2.2.38, built on an engine from before v4.2.0. So pip install NLPPlus still gets an engine that cannot parse the empty string literal "" (nlp-engine #166, fixed in v4.2.0 by nlp-engine #743). Any analyzer containing "" fails to build under NLPPlus with no line number:
↳ Build source distribution / MacOS / Windows wheels
success
↳ Build wheels on Linux
failure: every wheel compiled (cp310–cp313), then ##[error]Failed to FinalizeArtifact: Received non-retryable error: Failed request: (403) Forbidden
↳ upload_pypi, Make release
skipped
Nothing is wrong with v2.2.39 itself. The Linux job built the wheels and then could not upload them as a workflow artifact (GitHub returned 403). Because upload_pypi needs every build job, nothing was published.
The same thing happened once before: v2.2.37's first Build and upload to PyPI run on 2026-09-14 failed, and a second run a minute later succeeded.
What needs to be done
Re-run the failed jobs of run 35643462731 (Actions → the run → Re-run failed jobs). The Linux job should upload, and upload_pypi and Make release then publish NLPPlus 2.2.39 with engine v4.2.0.
Check: pip install NLPPlus==2.2.39, then build an analyzer with L("a") = "";. It should build, which 2.2.38 does not.
So this does not happen silently again: when Build and upload to PyPI fails on a v* tag, let the failure be seen (for example a retry of the artifact upload step, or a failure notice on the nlp-engine release). This failure went unnoticed for five days, and the successful Update nlp-engine & publish run made it look as though v4.2.0 had shipped.
Re-ran the failed jobs of run 35643462731; all jobs passed and NLPPlus 2.2.39 (engine v4.2.0) is on PyPI. Verified: pip install NLPPlus==2.2.39, a pass with L("a") = ""; builds and outputs empty=[] resubst=[xy]. Step 3 (make failures visible) is in #39.
Activity
ddehilster commentedon Sep 26, 2026
Re-ran the failed jobs of run 35643462731; all jobs passed and NLPPlus 2.2.39 (engine v4.2.0) is on PyPI. Verified:
pip install NLPPlus==2.2.39, a pass withL("a") = "";builds and outputsempty=[] resubst=[xy]. Step 3 (make failures visible) is in #39.