Releases: neutrinoceros/gpgi
v2.0.0
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
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
v0.10.0
What's Changed
- MNT: setup dependabot for github workflows by @neutrinoceros in #85
- Bump mypy from 0.991 to 1.0.0 in /requirements by @dependabot in #88
- Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.4 in /.github/workflows by @dependabot in #87
- Bump pypa/cibuildwheel from 2.11.2 to 2.12.0 in /.github/workflows by @dependabot in #86
- API: invert definitions of CYLINDRICAL and POLAR geometries by @neutrinoceros in #89
- REL: prep release 0.10.0 by @neutrinoceros in #90
New Contributors
- @dependabot made their first contribution in #88
Full Changelog: v0.9.0...v0.10.0