Summary
- gpgi is now multi-threading aware in places where race conditions were possible like
Dataset.boundaries.register
andDataset.deposit
- this release contains a couple small breaking changes that should only affect edge cases and not be visible in normal conditions (see items listed as
API:
in the following section) - Python 3.11 to 3.13 is supported
The library is now considered feature complete, and this version is intended as the "definitive" edition for gpgi. I'll still fix bugs as they are discovered and I intend to publish new binaries as needed, but development will now switch to maintenance mode.
All changes
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #195
- Bump the actions group in /requirements with 1 update by @dependabot in #196
- Bump mypy from 1.9.0 to 1.10.0 in /requirements in the actions group by @dependabot in #197
- RFC: drop misleading use of typing.Protocol by @neutrinoceros in #199
- Bump pypa/cibuildwheel from 2.17.0 to 2.18.1 in /.github/workflows in the actions group by @dependabot in #200
- TST: test against CPython 3.13 (GIL flavor) by @neutrinoceros in #201
- MNT: update .gitignore by @neutrinoceros in #203
- API: reduce size of wheels (hide unused but previously public API) by @neutrinoceros in #202
- ENH: implement GPGI_PY_LIB cleanup on Windows by @neutrinoceros in #206
- ENH: introduce
gpgi._IS_PYLIB
runtime constant by @neutrinoceros in #205 - TST: cleanup redundant call to pip list in CI and add info to pyttest logs by @neutrinoceros in #207
- TST: skip a test (non implemented feature) with GPGI_PY_LIB by @neutrinoceros in #209
- BUG: adjust inline assertions in GPGI_PY_LIB by @neutrinoceros in #208
- API: make
geometry
andgrid
mandatory keyword arguments togpgi.load
by @neutrinoceros in #210 - RFC: rename
gpgi._IS_PYLIB
->gpgi._IS_PY_LIB
by @neutrinoceros in #211 - TYP: refine auto-completion for grid.cell_edges and particles.coordinates by @neutrinoceros in #212
- API: forbid use of non-finite boxes by @neutrinoceros in #213
- TST: test GPGI_PY_LIB by @neutrinoceros in #204
- API: do not emit a warning when depositing on a single cell by @neutrinoceros in #215
- MNT: switch to uv in cibuildwheel by @neutrinoceros in #214
- TST: migrate from pip to uv in CI by @neutrinoceros in #218
- ENH: implement
repr()
forGrid
,ParticleSet
andDataset
for introspection by @neutrinoceros in #219 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #220
- Bump mypy from 1.10.0 to 1.10.1 in /requirements in the actions group by @dependabot in #221
- TST: avoid creating a requirement file in minimal deps jobs by @neutrinoceros in #222
- API: forbid integer datatypes by @neutrinoceros in #223
- TST: use non-interactive mpl backend in tests by @neutrinoceros in #224
- MNT: auto fix typos by @neutrinoceros in #226
- TST: use Cython nightlies in bleeding edge tests by @neutrinoceros in #227
- Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 in /.github/workflows in the actions group by @dependabot in #229
- TYP: fix type checking for the
method
argument inDataset.deposit
by @neutrinoceros in #230 - DEP: drop support for CPython 3.10 and numpy<1.25 by @neutrinoceros in #232
- RFC: consistent use of the enum namespace by @neutrinoceros in #234
- RFC: make
Dataset._setup_host_cell_index
explicitly thread-safe by @neutrinoceros in #233 - TST: refactor concurrency tests to reduce duplication by @neutrinoceros in #235
- WHL: run concurrency tests by @neutrinoceros in #237
- TST: test CPython 3.13 (free-threading flavor) by @neutrinoceros in #198
- TST: never compile dependencies when testing by @neutrinoceros in #238
- API: forbid overrides in
BoundaryRegistry.register
unless unsafe mutations are explicitly allowed. by @neutrinoceros in #240 - BUG: fix thread safety for
BoundaryRegistry.register
by @neutrinoceros in #241 - TST: fixup internal logic in concurrency test by @neutrinoceros in #242
- WHL: set a 10min timeout by @neutrinoceros in #243
- MNT: simplify test dependency (coverage) by @neutrinoceros in #245
- RFC: avoid abusive uses of numpy.ones by @neutrinoceros in #247
- TST: fixup coverage configuration by @neutrinoceros in #248
- TST: add Python 3.13 to normal CI by @neutrinoceros in #250
- ENH: add
lock
parameter toDataset.deposit
by @neutrinoceros in #246 - Bump mypy from 1.11.1 to 1.11.2 in /requirements in the actions group by @dependabot in #257
- Bump pypa/cibuildwheel from 2.19.2 to 2.20.0 in /.github/workflows in the actions group by @dependabot in #258
- DOC: Fix toc in documentation and a typo by @avirsaha in #255
- CLN: drop outdated comment by @neutrinoceros in #259
- MNT: enable ruff's TCH ruleset by @neutrinoceros in #260
- DOC: add missing versionadded/versionchanged to docstrings by @neutrinoceros in #261
- API: clearly define public/private APIs by @neutrinoceros in #256
- DOC: document thread-safety of
BoundaryRegistry
by @neutrinoceros in #263 - MNT: fixup coverage reporting by @neutrinoceros in #264
- TST: migrate to official astral-sh/setup-uv action by @neutrinoceros in #265
- TST: migrate to official astral-sh/setup-uv action (cd.yml) by @neutrinoceros in #266
- MNT: simplify setup-uv usage following 2.1.1 release by @neutrinoceros in #268
- TST: pin uv to 0.4.9 by @neutrinoceros in #270
- MNT: unpin uv by @neutrinoceros in #272
- Bump the actions group in /.github/workflows with 3 updates by @dependabot in #273
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #274
- WHL: enable cp313 wheels by @neutrinoceros in #231
- TST: add CPython 3.13 to regular test matrix by @neutrinoceros in #275
- MNT: auto-upgrade github actions with gha-update by @neutrinoceros in #276
- DOC: add changelog by @neutrinoceros in #249
- TST: simplify CI by @neutrinoceros in #278
- REL: prepare release 2.0.0 by @neutrinoceros in #277
New Contributors
Full Changelog: v1.0.0...v2.0.0