All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v2.0.0 - 2024-10-09
- TST: add CPython 3.13 to regular test matrix #275 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #274 (pre-commit-ci)
- MNT: unpin uv #272 (neutrinoceros)
- TST: pin uv to 0.4.9 #270 (neutrinoceros)
- MNT: simplify setup-uv usage following 2.1.1 release #268 (neutrinoceros)
- TST: migrate to official astral-sh/setup-uv action (cd.yml) #266 (neutrinoceros)
- TST: migrate to official astral-sh/setup-uv action #265 (neutrinoceros)
- MNT: fixup coverage reporting #264 (neutrinoceros)
- DOC: document thread-safety of
BoundaryRegistry
#263 (neutrinoceros) - DOC: add missing versionadded/versionchanged to docstrings #261 (neutrinoceros)
- MNT: enable ruff's TCH ruleset #260 (neutrinoceros)
- CLN: drop outdated comment #259 (neutrinoceros)
- API: clearly define public/private APIs #256 (neutrinoceros)
- DOC: Fix toc in documentation and a typo #255 (avirsaha)
- TST: add Python 3.13 to normal CI #250 (neutrinoceros)
- TST: fixup coverage configuration #248 (neutrinoceros)
- RFC: avoid abusive uses of numpy.ones #247 (neutrinoceros)
- ENH: add
lock
parameter toDataset.deposit
#246 (neutrinoceros) - MNT: simplify test dependency (coverage) #245 (neutrinoceros)
- PERF: release the GIL in hotloops #244 (neutrinoceros)
- WHL: set a 10min timeout #243 (neutrinoceros)
- TST: fixup internal logic in concurrency test #242 (neutrinoceros)
- BUG: fix thread safety for
BoundaryRegistry.register
#241 (neutrinoceros) - API: forbid overrides in
BoundaryRegistry.register
unless unsafe mutations are explicitly allowed. #240 (neutrinoceros) - TST: never compile dependencies when testing #238 (neutrinoceros)
- WHL: run concurrency tests #237 (neutrinoceros)
- TST: refactor concurrency tests to reduce duplication #235 (neutrinoceros)
- RFC: consistent use of the enum namespace #234 (neutrinoceros)
- RFC: make
Dataset._setup_host_cell_index
explicitly thread-safe #233 (neutrinoceros) - DEP: drop support for CPython 3.10 and numpy<1.25 #232 (neutrinoceros)
- WHL: enable cp313 wheels #231 (neutrinoceros)
- TYP: fix type checking for the
method
argument inDataset.deposit
#230 (neutrinoceros) - TST: use Cython nightlies in bleeding edge tests #227 (neutrinoceros)
- MNT: auto fix typos #226 (neutrinoceros)
- TST: use non-interactive mpl backend in tests #224 (neutrinoceros)
- API: forbid integer datatypes #223 (neutrinoceros)
- TST: avoid creating a requirement file in minimal deps jobs #222 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #220 (pre-commit-ci)
- ENH: implement
repr()
forGrid
,ParticleSet
andDataset
for introspection #219 (neutrinoceros) - TST: migrate from pip to uv in CI #218 (neutrinoceros)
- API: do not emit a warning when depositing on a single cell #215 (neutrinoceros)
- MNT: switch to uv in cibuildwheel #214 (neutrinoceros)
- API: forbid use of non-finite boxes #213 (neutrinoceros)
- TYP: refine auto-completion for grid.cell_edges and particles.coordinates #212 (neutrinoceros)
- RFC: rename
gpgi._IS_PYLIB
->gpgi._IS_PY_LIB
#211 (neutrinoceros) - API: make
geometry
andgrid
mandatory keyword arguments togpgi.load
#210 (neutrinoceros) - TST: skip a test (non implemented feature) with GPGI_PY_LIB #209 (neutrinoceros)
- BUG: adjust inline assertions in GPGI_PY_LIB #208 (neutrinoceros)
- TST: cleanup redundant call to pip list in CI and add info to pyttest logs #207 (neutrinoceros)
- ENH: implement GPGI_PY_LIB cleanup on Windows #206 (neutrinoceros)
- ENH: introduce
gpgi._IS_PYLIB
runtime constant #205 (neutrinoceros) - TST: test GPGI_PY_LIB #204 (neutrinoceros)
- MNT: update .gitignore #203 (neutrinoceros)
- API: reduce size of wheels (hide unused but previously public API) #202 (neutrinoceros)
- TST: test against CPython 3.13 (GIL flavor) #201 (neutrinoceros)
- RFC: drop misleading use of typing.Protocol #199 (neutrinoceros)
- TST: test CPython 3.13 (free-threading flavor) #198 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #195 (pre-commit-ci)
v1.0.0 - 2024-03-30
- BUG: fix a spurious error when parsing invalid equatorial coordinates #187 (neutrinoceros)
- DOC: fix naming consistency in doc #171 (neutrinoceros)
- DOC: add missing documentation for sorting features #168 (neutrinoceros)
- DOC: add missing docstrings and fix linting errors in existing docstrings #165 (neutrinoceros)
- TST: fix coverage checking #150 (neutrinoceros)
- REL: prepare release 1.0.0 #174 (neutrinoceros)
- TST: move --parallel-mode from configuration file to workflow to allow local coverage runs #194 (neutrinoceros)
- CLN: cleanup unused future import #193 (neutrinoceros)
- TST: test wheels on MacOS AMD #192 (neutrinoceros)
- MNT: manual upgrade for pre-commit #191 (neutrinoceros)
- TST: clarify minimal deps test job #190 (neutrinoceros)
- TST: use uv pip compile to keep minimal deps in sync #189 (neutrinoceros)
- TST: refactor a test for readability #188 (neutrinoceros)
- RFC: refactor geometry validation with match/case #186 (neutrinoceros)
- BLD: drop support for CPython 3.9 and numpy<1.23 following SPEC 0 #185 (neutrinoceros)
- MNT: show ruff fixes in pre-commit logs #184 (neutrinoceros)
- DEPR: expire deprecations and bump version to 1.0.0dev0 #182 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #179 (pre-commit-ci)
- MNT: group dependabot updates #176 (neutrinoceros)
- TYP: typecheck against Python 3.9 #175 (neutrinoceros)
- REL: prepare release 1.0.0 #174 (neutrinoceros)
- DOC: fix typos #173 (neutrinoceros)
- MNT: opt-in numpy specific ruff linting rules #170 (neutrinoceros)
- STY: migrate from black to ruff-format #167 (neutrinoceros)
- MNT: update pre-commit configuration for compatibility with Python 3.12 #166 (neutrinoceros)
- TST: use normalized issue prefix for auto reports #163 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #159 (pre-commit-ci)
- TST: move tests to Python 3.12 (stable) #157 (neutrinoceros)
- MNT: don't skip tests for cp312 wheels #156 (neutrinoceros)
- MNT: simplify build dependencies #155 (neutrinoceros)
- MNT: cleanup redundant classifier #154 (neutrinoceros)
- MNT: switch to faster black pre-commit hook #153 (neutrinoceros)
- REL: bump version to 0.14.0 #151 (neutrinoceros)
v0.14.0 - 2023-09-04
- ENH: add sorting API #149 (neutrinoceros)
- ENH: add support for passing metadata to custom deposition methods #122 (neutrinoceros)
- BUG: fix error message so it's identical on numpy 1.x and 2.0 #147 (neutrinoceros)
- REL: bump version to 0.14.0 #151 (neutrinoceros)
- TST: improvements to future-proofing #146 (neutrinoceros)
- BLD: test wheels as part of the build/release process #145 (neutrinoceros)
- BLD: add wheels for musllinux #144 (neutrinoceros)
- BLD: add wheels for CPython 3.12 #143 (neutrinoceros)
- TST: run check_manifest in CI #141 (neutrinoceros)
- TST: add a test to check compilation with build command #140 (neutrinoceros)
- BLD: unpin Cython #138 (neutrinoceros)
- BLD: drop support for Python 3.8 and numpy<1.21 #136 (neutrinoceros)
- BLD: add wheels for MacOS M1 arch #135 (neutrinoceros)
- BLD: migrate to Cython 3.0, forbid deprecated numpy API #134 (neutrinoceros)
- REL: migrate to PyPI trusted-publishing #133 (neutrinoceros)
- DEP: set upper limit to runtime numpy #132 (neutrinoceros)
- BLD: migrate from oldest-supported-numpy to NPY_TARGET_VERSION #131 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #130 (pre-commit-ci)
- TST: add future-proofing scheduled tests #128 (neutrinoceros)
- TYP: typecheck with Python 3.11 too #127 (neutrinoceros)
v0.13.0 - 2023-06-11
- ENH: add support for passing metadata to custom deposition methods #122 (neutrinoceros)
- ENH: allow passing a callable as a deposition method #121 (neutrinoceros)
v0.12.0 - 2023-06-09
- ENH: allow passing a callable as a deposition method #121 (neutrinoceros)
- BUG: fix a bug where ds.grid.cell_volumes would be of a different shape than ds.grid.shape #114 (neutrinoceros)
- MNT: cleanup unused lines in setup.py #117 (neutrinoceros)
- BLD: migrate to src layout #116 (neutrinoceros)
- STY: activate flake8-comprehensions and flake8-2020 (ruff) #115 (neutrinoceros)
v0.11.2 - 2023-05-05
- BUG: fix a bug where ds.grid.cell_volumes would be of a different shape than ds.grid.shape #114 (neutrinoceros)
- REL: prep release 0.11.1 #108 (neutrinoceros)
v0.11.1 - 2023-04-29
- BUG: resolve bugs with literal edge cases (particles living on the edge of the domain) #107 (neutrinoceros)
- DOC: a better headline #106 (neutrinoceros)
- REL: prep release 0.11.1 #108 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #104 (pre-commit-ci)
- BLD: exclude generated C code from source distributions #100 (neutrinoceros)
- MNT: upgrade pre-commit hooks, simplify ruff config #99 (neutrinoceros)
- REL: bump version to 0.11.0 #95 (neutrinoceros)
v0.11.0 - 2023-02-09
- BUG: fix a bug where float32 coordinates were incorrectly invalidated against double precision limits #91 (neutrinoceros)
- REL: bump version to 0.11.0 #95 (neutrinoceros)
- UX: improve error messages in case of mixed dtypes #94 (neutrinoceros)
- UX: ensure that coordinates are formatted with consistent types (float) in error messages #93 (neutrinoceros)
- UX: improve error message in case of unexpected axes ordering #92 (neutrinoceros)
v0.10.1 - 2023-02-08
- REL: prep release 0.10.0 #90 (neutrinoceros)
v0.10.0 - 2023-02-08
- REL: prep release 0.10.0 #90 (neutrinoceros)
- API: invert definitions of CYLINDRICAL and POLAR geometries #89 (neutrinoceros)
- MNT: setup dependabot for github workflows #85 (neutrinoceros)
- REL: prep release 0.9.0 #84 (neutrinoceros)
v0.9.0 - 2023-02-08
- DOC: fix a typo and rephrase a sentence #83 (neutrinoceros)
- TST: treat warnings as errors #82 (neutrinoceros)
- ENH: Dataset now respects the Liskov substitution principle #81 (neutrinoceros)
- TYP: use recent version of numpy for typechecking #79 (neutrinoceros)
- TYP: pin numpy version used for typechecking #78 (neutrinoceros)
- TST: setup dependabot #76 (neutrinoceros)
- TST: move minimal_dependencies.txt to a separate directory #75 (neutrinoceros)
- REL: prep release 0.8.0 #73 (neutrinoceros)
v0.8.0 - 2023-02-03
- DOC: flesh out algorithmic details #67 (neutrinoceros)
- BUG: fix boundary recipe validation for functools.partial recipes #66 (neutrinoceros)
- BLD: declare explicit build backend (setuptools) #72 (neutrinoceros)
- ENH: use an StrEnum for geometry #71 (neutrinoceros)
- TST: move test dependencies to requirement files #70 (neutrinoceros)
- STY: migrate linting to ruff, upgrade black #69 (neutrinoceros)
- [pre-commit.ci] pre-commit autoupdate #68 (pre-commit-ci)
v0.7.2 - 2022-11-17
- BUG: fix boundary recipe validation for functools.partial recipes #66 (neutrinoceros)
- DOC: fix a typo in documentation #65 (neutrinoceros)
- BUG: fix compatibility with numpy 1.18 #64 (neutrinoceros)
v0.7.1 - 2022-11-15
- BUG: fix compatibility with numpy 1.18 #64 (neutrinoceros)
v0.7.0 - 2022-11-06
- ENH: add support for weight fields #59 (neutrinoceros)
- BUG: fix a bug in boundary condition treatment (erroneous data selection) #61 (neutrinoceros)
- ENH: minimal support for Grid.cell_volumes property (cartesian only) #60 (neutrinoceros)
- TYP: improve type checking for builtin boundary recipes #58 (neutrinoceros)
- ENH: drop undocumented caching mechanism #57 (neutrinoceros)
v0.6.0 - 2022-10-30
- BUG: fix missing stacklevel arg in a userwarning #53 (neutrinoceros)
- MNT: add support for Python 3.8 #55 (neutrinoceros)
- REL: automate wheels publication to PyPI #54 (neutrinoceros)
v0.5.0 - 2022-10-29
- ENH: implement extensible boundary condition API #52 (neutrinoceros)
- TST: finish switching CI to Python 3.11 #51 (neutrinoceros)
- DEPR: rename 'pic' -> 'ngp', deprecate pic #50 (neutrinoceros)
- STY: add linters for yaml and cython #49 (neutrinoceros)
- TST: flesh out test matrix #48 (neutrinoceros)
v0.4.0 - 2022-10-19
- ENH: add support for storing arbitrary metadata in Dataset #45 (neutrinoceros)
- TST: test that 2D projections of 3D deposit match 2D deposit of projections #44 (neutrinoceros)
- TYP: add type hints for deposition methods #43 (neutrinoceros)
- ENH: implement option to output ghost layers in Dataset.deposit #42 (neutrinoceros)
v0.3.0 - 2022-10-08
- ENH: add equatorial geometry #41 (neutrinoceros)
- ENH: implement CIC deposition method #40 (neutrinoceros)
- TYP: add py.typed marker file to improve downstream type-checking #39 (neutrinoceros)
v0.2.0 - 2022-10-07
- BUG: fix a bug where field cache wasn't used in case a deposit field was queried with the full method name and the abbreviated name #26 (neutrinoceros)
- ENH: save memory allocation for particle coordinates #38 (neutrinoceros)
- DOC: polish and flesh out docs #37 (neutrinoceros)
- ENH: implement Triangular Shaped Cloud deposition method #33 (neutrinoceros)
- ENH: add verbose option to Dataset.deposit #31 (neutrinoceros)
- TST: fix test job concurrency rules #30 (neutrinoceros)
- ENH: implement ghost layer padding #29 (neutrinoceros)
- TST: better testing for deposition on stretched grids #28 (neutrinoceros)
- MNT: fix image test reports #27 (neutrinoceros)
- ENH: implement fast particle indexing for constant stepping grids #23 (neutrinoceros)
- REL: v0.1.0 #19 (neutrinoceros)