Releases: neutrinoceros/gpgi
v2.1.0
Summary
Pre-compiled binaries for this release are stable-ABI compliant (abi3), which means that only one binary is built for each target platform, which is compatible with all supported Python versions (3.11 - 3.14).
Support was added for Linux ARM64 targets.
Added
- TYP: also typecheck against pyright by @neutrinoceros in #311
- BLD: enable building abi3 wheels by @neutrinoceros in #331
- ENH:
GridandParticleSetnow report all invalid inputs instead of just the first one they find by @neutrinoceros in #354 - WHL: add wheels for Linux ARM64 by @neutrinoceros in #385
Fixed
- TYP: fix type annotations for
_CoordinateValidatorMixin._get_safe_datatypefor compatibility with numpy 2.2 by @neutrinoceros in #289 - BUG: fix an error message that could incorrectly refer to the specific class, possibly not involved in the error itself by @neutrinoceros in #309
- DOC: fixup Dataset's docstring by @neutrinoceros in #310
- TYP: refine type hints to reflect relationships between arguments and return values in terms of array dtype by @neutrinoceros in #314
Internal
-
Bump mypy from 1.11.2 to 1.13.0 in /requirements in the actions group by @dependabot[bot] in #281
-
Bump the actions group in /.github/workflows with 5 updates by @dependabot[bot] in #280
-
TST: avoid pyplot interface in tests by @neutrinoceros in #282
-
MNT: cleanup unused CI step by @neutrinoceros in #283
-
MNT: Update github actions by @neutrinoceros in #284
-
MNT: migrate requirement files to PEP 735 dependency groups by @neutrinoceros in #279
-
Bump astral-sh/setup-uv from 3.2.3 to 4.2.0 in /.github/workflows in the actions group by @dependabot[bot] in #285
-
TST: rewrite testing workflows around
uv.lockby @neutrinoceros in #286 -
TST: test against CPython 3.11.0 (instead of latest 3.11.x) by @neutrinoceros in #287
-
DEP: bump numpy to 2.2.0 by @neutrinoceros in #288
-
RFC: spread field maps validation logic into smaller functions by @neutrinoceros in #291
-
MNT: upgrade uv.lock (fonttools 4.55.3, matplotlib 3.10.0) by @neutrinoceros in #292
-
MNT: add uv-lock to pre-commit by @neutrinoceros in #293
-
DEP: enable auto updates to uv.lock with renovatebot by @neutrinoceros in #295
-
Update pypa/gh-action-pypi-publish action to v1.12.3 by @renovate[bot] in #297
-
Update actions/upload-artifact action to v4.5.0 by @renovate[bot] in #298
-
Update astral-sh/setup-uv action to v5 by @renovate[bot] in #299
-
MNT: update renovate config and drop dependabot by @neutrinoceros in #301
-
MNT: update renovate schedule by @neutrinoceros in #302
-
[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #305
-
MNT: fix incorrect pre-commit hook tag by @neutrinoceros in #306
-
TST: update uv configuration in bleeding-edge CI by @neutrinoceros in #307
-
RFC: goodbye inheritance, hello composition by @neutrinoceros in #308
-
RFC: avoid importing enum as a namespace by @neutrinoceros in #312
-
RFC: rename private classes by @neutrinoceros in #313
-
Update pypa/gh-action-pypi-publish action to v1.12.4 by @renovate[bot] in #316
-
Update actions/upload-artifact action to v4.6.0 by @renovate[bot] in #317
-
Update astral-sh/setup-uv action to v5.2.1 by @renovate[bot] in #318
-
MNT: bump uv.lock by @neutrinoceros in #315
-
TYP: cleanup unused TypeVar by @neutrinoceros in #319
-
Update astral-sh/setup-uv action to v5.2.2 by @renovate[bot] in #320
-
TST: add explicit mention of the GIL's state to pytest header by @neutrinoceros in #322
-
TST: drop QuansightLabs/setup-python action by @neutrinoceros in #321
-
TST: disable uv caching for future deps tests by @neutrinoceros in #323
-
MNT: bump uv.lock by @neutrinoceros in #324
-
TST: separate uv sync from uv run by @neutrinoceros in #325
-
TST: adopt -ra pytest flags by @neutrinoceros in #326
-
TST: report coverage for all files, including 100% covered ones by @neutrinoceros in #327
-
TST: bump ubuntu image in minimal requirements jobs (20.04 -> 22.04) by @neutrinoceros in #328
-
TST: trigger wheel builds on modifications to all build-related files by @neutrinoceros in #329
-
DOC: update badges in README by @neutrinoceros in #330
-
BLD: migrate to the mesonpy build backend by @neutrinoceros in #269
-
TST: disable uv cache pruning in most CI by @neutrinoceros in #332
-
Update actions/download-artifact action to v4.1.9 by @renovate[bot] in #335
-
Update actions/upload-artifact action to v4.6.1 - autoclosed by @renovate[bot] in #336
-
MNT: update pre-commit config by @neutrinoceros in #341
-
ENH: report as many exceptions as possible from
gpgi.loadinstead of just the first one encountered by @neutrinoceros in #339 -
TYP: auto-fix TC006 violations by @neutrinoceros in #342
-
TYP: fix missing type arguments for generic types by @neutrinoceros in #343
-
Update actions/setup-python action to v5.4.0 by @renovate[bot] in #344
-
Update pypa/cibuildwheel action to v2.23.1 by @renovate[bot] in #346
-
Update astral-sh/setup-uv action to v5.3.1 by @renovate[bot] in #345
-
Update actions/setup-python action to v5.5.0 by @renovate[bot] in #351
-
Update actions/download-artifact action to v4.2.1 by @renovate[bot] in #350
-
Update actions/upload-artifact action to v4.6.2 by @renovate[bot] in #348
-
Update pypa/cibuildwheel action to v2.23.2 by @renovate[bot] in #349
-
DEP: lock file maintenance by @neutrinoceros in #347
-
[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #353
-
TST: revert involuntary internal var renaming by @neutrinoceros in #355
-
Update astral-sh/setup-uv action to v6 by @renovate[bot] in #356
-
Update pypa/cibuildwheel action to v2.23.3 by @renovate[bot] in #358
-
Update astral-sh/setup-uv action to v6.0.1 by @renovate[bot] in #357
-
Update actions/download-artifact action to v4.3.0 by @renovate[bot] in #359
-
Update actions/setup-python action to v5.6.0 by @renovate[bot] in #360
-
MNT: switch back to stable versions of Cython by @neutrinoceros in #361
-
MNT: lockfile maintenance by @neutrinoceros in #362
-
MNT: lock file maintenance by @neutrinoceros in #364
-
DOC: complete thread-safety documentation by @neutrinoceros in #365
-
MNT: upgrade pre-commit hooks by @neutrinoceros in #367
-
TST: start testing against CPython 3.14 by @neutrinoceros in #366
-
TST: fix incorrect uv settings in cp314t tests by @neutrinoceros in #368
-
Update astral-sh/setup-uv action...
v2.0.0
Summary
- gpgi is now multi-threading aware in places where race conditions were possible like
Dataset.boundaries.registerandDataset.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_PYLIBruntime 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
geometryandgridmandatory keyword arguments togpgi.loadby @neutrinoceros in #210 - RFC: rename
gpgi._IS_PYLIB->gpgi._IS_PY_LIBby @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,ParticleSetandDatasetfor 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
methodargument inDataset.depositby @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_indexexplicitly 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.registerunless unsafe mutations are explicitly allowed. by @neutrinoceros in #240 - BUG: fix thread safety for
BoundaryRegistry.registerby @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
lockparameter toDataset.depositby @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
BoundaryRegistryby @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
v1.0.0
What's Changed
Summary
- all deprecated functionalities were removed
- Python >= 3.10 and NumPy >= 1.23 are now required
- NumPy 2.0 is now supported
- Mac-AMD is now supported
- the API is now considered stable. Any new breaking change will now be signaled by a major version bump and should be preceded by a deprecation period whenever possible.
All changes
- MNT: switch to faster black pre-commit hook by @neutrinoceros in #153
- MNT: cleanup redundant classifier by @neutrinoceros in #154
- MNT: simplify build dependencies by @neutrinoceros in #155
- MNT: don't skip tests for cp312 wheels by @neutrinoceros in #156
- Bump actions/checkout from 3 to 4 in /.github/workflows by @dependabot in #158
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #159
- TST: move tests to Python 3.12 (stable) by @neutrinoceros in #157
- TST: fix coverage checking by @neutrinoceros in #150
- Bump pypa/cibuildwheel from 2.16.1 to 2.16.2 in /.github/workflows by @dependabot in #161
- Bump mypy from 1.5.1 to 1.6.1 in /requirements by @dependabot in #162
- TST: use normalized issue prefix for auto reports by @neutrinoceros in #163
- MNT: update pre-commit configuration for compatibility with Python 3.12 by @neutrinoceros in #166
- STY: migrate from black to ruff-format by @neutrinoceros in #167
- DOC: add missing docstrings and fix linting errors in existing docstrings by @neutrinoceros in #165
- DOC: add missing documentation for sorting features by @neutrinoceros in #168
- MNT: opt-in numpy specific ruff linting rules by @neutrinoceros in #170
- DOC: fix naming consistency in doc by @neutrinoceros in #171
- Bump mypy from 1.6.1 to 1.7.1 in /requirements by @dependabot in #172
- DOC: fix typos by @neutrinoceros in #173
- MNT: group dependabot updates by @neutrinoceros in #176
- TYP: typecheck against Python 3.9 by @neutrinoceros in #175
- Bump the actions group in /requirements with 1 update by @dependabot in #178
- Bump the actions group in /.github/workflows with 3 updates by @dependabot in #177
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #179
- DEPR: expire deprecations and bump version to 1.0.0dev0 by @neutrinoceros in #182
- Bump the actions group in /.github/workflows with 1 update by @dependabot in #183
- MNT: show ruff fixes in pre-commit logs by @neutrinoceros in #184
- BLD: drop support for CPython 3.9 and numpy<1.23 following SPEC 0 by @neutrinoceros in #185
- BUG: fix a spurious error when parsing invalid equatorial coordinates by @neutrinoceros in #187
- RFC: refactor geometry validation with match/case by @neutrinoceros in #186
- TST: use uv pip compile to keep minimal deps in sync by @neutrinoceros in #189
- TST: refactor a test for readability by @neutrinoceros in #188
- TST: clarify minimal deps test job by @neutrinoceros in #190
- MNT: manual upgrade for pre-commit by @neutrinoceros in #191
- TST: test wheels on MacOS AMD by @neutrinoceros in #192
- CLN: cleanup unused future import by @neutrinoceros in #193
- TST: move --parallel-mode from configuration file to workflow to allow local coverage runs by @neutrinoceros in #194
- REL: prepare release 1.0.0 by @neutrinoceros in #174
Full Changelog: v0.14.0...v1.0.0
v0.14.0
What's Changed
This version introduces sort capabilities, allowing to sort particle data in memory for more efficient data analysis.
This is the first version to support Python 3.12 as well as muslinux. Support for Python 3.8 was dropped.
- Bump mypy from 1.3.0 to 1.4.1 in /requirements by @dependabot in #123
- Bump pypa/cibuildwheel from 2.13.0 to 2.13.1 in /.github/workflows by @dependabot in #125
- Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 in /.github/workflows by @dependabot in #126
- TYP: typecheck with Python 3.11 too by @neutrinoceros in #127
- TST: add future-proofing scheduled tests by @neutrinoceros in #128
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #130
- DEP: set upper limit to runtime numpy by @neutrinoceros in #132
- BLD: migrate from oldest-supported-numpy to NPY_TARGET_VERSION by @neutrinoceros in #131
- REL: migrate to PyPI trusted-publishing by @neutrinoceros in #133
- BLD: migrate to Cython 3.0, forbid deprecated numpy API by @neutrinoceros in #134
- BLD: add wheels for MacOS M1 arch by @neutrinoceros in #135
- BLD: drop support for Python 3.8 and numpy<1.21 by @neutrinoceros in #136
- BLD: unpin Cython by @neutrinoceros in #138
- TST: add a test to check compilation with build command by @neutrinoceros in #140
- TST: run check_manifest in CI by @neutrinoceros in #141
- Bump pypa/cibuildwheel from 2.13.1 to 2.14.1 in /.github/workflows by @dependabot in #142
- BLD: add wheels for musllinux by @neutrinoceros in #144
- BLD: add wheels for CPython 3.12 by @neutrinoceros in #143
- BLD: test wheels as part of the build/release process by @neutrinoceros in #145
- TST: improvements to future-proofing by @neutrinoceros in #146
- BUG: fix error message so it's identical on numpy 1.x and 2.0 by @neutrinoceros in #147
- Bump mypy from 1.4.1 to 1.5.1 in /requirements by @dependabot in #148
- ENH: add sorting API by @neutrinoceros in #149
- REL: bump version to 0.14.0 by @neutrinoceros in #151
Full Changelog: v0.13.0...v0.14.0
v.0.13.0
What's Changed
- ENH: add support for passing metadata to custom deposition methods by @neutrinoceros in #122
Full Changelog: v0.12.0...v0.13.0
v0.12.0
What's Changed
- STY: activate flake8-comprehensions and flake8-2020 (ruff) by @neutrinoceros in #115
- BLD: migrate to src layout by @neutrinoceros in #116
- Bump mypy from 1.2.0 to 1.3.0 in /requirements by @dependabot in #118
- Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 in /.github/workflows by @dependabot in #119
- Bump pypa/cibuildwheel from 2.12.3 to 2.13.0 in /.github/workflows by @dependabot in #120
- MNT: cleanup unused lines in setup.py by @neutrinoceros in #117
- ENH: allow passing a callable as a deposition method by @neutrinoceros in #121
Full Changelog: v0.11.2...v0.12.0
v0.11.2
What's Changed
- Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 in /.github/workflows by @dependabot in #109
- Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 in /.github/workflows by @dependabot in #110
- Bump numpy from 1.24.2 to 1.24.3 in /requirements by @dependabot in #111
- Bump mypy from 1.1.1 to 1.2.0 in /requirements by @dependabot in #112
- BUG: fix a bug where ds.grid.cell_volumes would be of a different shape than ds.grid.shape by @neutrinoceros in #114
Full Changelog: v0.11.1...v0.11.2
v0.11.1
What's Changed
This release fixes critical issues with single-precision data and edge cases where particles sitting exactly on the right edge of the domain would cause segfaults.
- Bump actions/upload-artifact from 2 to 3 in /.github/workflows by @dependabot in #96
- Bump mypy from 1.0.0 to 1.0.1 in /requirements by @dependabot in #97
- MNT: upgrade pre-commit hooks, simplify ruff config by @neutrinoceros in #99
- BLD: exclude generated C code from source distributions by @neutrinoceros in #100
- Bump mypy from 1.0.1 to 1.1.1 in /requirements by @dependabot in #101
- Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.4 in /.github/workflows by @dependabot in #102
- Bump pypa/cibuildwheel from 2.12.0 to 2.12.1 in /.github/workflows by @dependabot in #103
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #104
- DOC: a better headline by @neutrinoceros in #106
- BUG: resolve bugs with literal edge cases (particles living on the edge of the domain)" by @neutrinoceros in #107
- REL: prep release 0.11.1 by @neutrinoceros in #108
Full Changelog: v0.11.0...v0.11.1
v0.11.0
What's Changed
- UX: improve error message in case of unexpected axes ordering by @neutrinoceros in #92
- UX: improve error messages in case of mixed dtypes by @neutrinoceros in #94
- UX: ensure that coordinates are formatted with consistent types (float) in error messages by @neutrinoceros in #93
- REL: bump version to 0.11.0 by @neutrinoceros in #95
Full Changelog: v0.10.1...v0.11.0
v0.10.1
What's Changed
- BUG: fix a bug where float32 coordinates were incorrectly invalidated against double precision limits by @neutrinoceros in #91
Full Changelog: v0.10.0...v0.10.1