First release since 1.0.15 (2025-07-21). Bumps VERSION so the publish
workflow can upload; it has been failing on every push to main with
400 File already exists ('mapillary-1.0.15-py3-none-any.whl')
because PyPI never permits reusing a version number.
User-visible changes since 1.0.15:
- fields=["id"] is now accepted on every entity type. It previously
raised InvalidFieldError even though the Graph API returns id and
every decoded feature carries one.
- save_locally() no longer defaults to writing inside the installed
package. Its default was evaluated at import and resolved to the
site-packages directory; it now resolves to the current working
directory at call time, which is what the docstring always described.
- python_requires corrected from ">=3.0" to ">=3.10". The old value was
not satisfiable: shapely>=2.1.0 requires >=3.10, so the package could
never install below that. Classifiers updated to match, with 3.13 and
3.14 added. Installers on older interpreters keep resolving to 1.0.15.
- A dead reference link in the exif_orientation docstrings now points at
an archived copy instead of a host that no longer exists.
Everything else since 1.0.15 - the lockfile refresh, CI repairs and the
Docusaurus upgrade - does not affect installed behaviour.
Also fixes the publish workflow's environment.url, which pointed at
pypi.org/p/notehub-py, an unrelated project. It is only the display link
shown in the GitHub UI, not part of the OIDC exchange, so the publish was
unaffected - but it linked somewhere wrong.
Verified before release: the built wheel reports Version 1.0.16 and
Requires-Python >=3.10, installs into a clean 3.13 environment, returns
22524 features from a live query, and writes save_locally output to the
working directory. twine check passes on both artifacts.
First release since 1.0.15 (2025-07-21). Bumps VERSION so the publish workflow can upload — it has been red on every push to main with:
400 File already exists ('mapillary-1.0.15-py3-none-any.whl')PyPI never permits reusing a version number, so the job cannot go green until the version moves.
⚠️ Merging this publishes to PyPI immediately and irreversibly. pypi-publish.yml fires on push to main and uploads via OIDC trusted publishing. 1.0.16 can never be re-uploaded once it exists.
User-visible changes since 1.0.15
Everything else merged since 1.0.15 — the lockfile refresh (#183), CI repairs (#179, #188) and the Docusaurus 3 upgrade (#186) — does not affect installed behaviour.
Version number
1.0.16 rather than 1.1.0, following the project's convention: every release from 1.0.4 through 1.0.15 has been a patch bump. Worth noting that the save_locally and python_requires changes are arguably minor-bump material under strict semver, so if you would rather signal them more loudly, say and I will change it before merge.
Verified before release
Built the artifacts and tested them rather than assuming:
twine check is what PyPI validates on upload, so this should not fail at the last step.
Also fixed
pypi-publish.yml had environment.url: https://pypi.org/p/notehub-py — an unrelated project, copy-pasted from elsewhere. It is only the display link in the GitHub UI, not part of the OIDC exchange, so the publish was unaffected; but it pointed somewhere wrong. Now pypi.org/p/mapillary.
Post-merge
The repo tags releases (v1.0.12 and earlier) but the recent ones are untagged. Worth adding v1.0.16 and a GitHub release entry if you want to restore that.