All functional changes to the project are documented in this file.
2026.1 (29 Jan 2026)
- gh-1034: Expose glass.healpix module (#1035)
- gh-923: migrate from mypy to ty (#926)
- gh-977: Actually test deprecated fields.py functions (#1033)
- gh-977: Port remaining functions in
fields.py(#979) - gh-903: Port galaxies.py to support jax (#919)
- gh-1002: Add a section to the contributing guidelines on regression (1019)
- gh-996: Fix bug in
apply_along_axis(#997) - gh-969: determine
xpwhen function called in XPAdditions (#994) - gh-990: fix
vmap_galactic_eclipticporting (#991) - gh-970: Move rng code to its own module (#971)
- gh-960: move
healpy/healpixwork to own module (#968) - gh-902: port
cls2cov,spectra_indices,_glass_to_healpix_alminfields.py(#963) - gh-958: make
positions_from_deltaArray API compatible (#959) - gh-907: Port points.uniform_positions to support jax (#955)
- gh-908: Port
shapes.pyto support jax (#954) - gh-906: Port
observations.vmap_galactic_eclipticto array-api (#953) - gh-943: bump
array-api-compatand fix tests (#944) - gh-186: add GLASS extensions to documentation (#927)
- gh-905: Port lensing.py functions to array-api with jax (#925)
- gh-921: pin
pre-committo oldest support Python version (#924) - gh-901: Port
algorithm.nnlsto support jax (#918) - gh-914: fix versions for array backends for 3.10 (#916)
- gh-910: consistent definition of displacement (#911)
- gh-880: Fix inconsistencies in the documentation rendering (#889)
- gh-637: Use xpx.at in fields.cls2cov (#874)
- gh-824: expose
glass.arraytoolsmodule (#857)
2025.3 (2 Dec 2025)
- gh-323: add
uvsupport innoxand CI (#801) - gh-410: Port straightforward functions in
observations(#677) - gh-417: Improve type rendering in the documentation (#746)
- gh-683: rewrite dispatch mechanism for GRF transformations (#697)
- gh-700: remove
typing-extensionsdependency (#701) - gh-705: add displace() and displacement() (#708)
- gh-720: add warning if
nearcorrhas no convergence (#757) - gh-721: Port RNG functions in
shapes.py(#722) - gh-723: Port RNG functions in
galaxies.py(#724) - gh-731: create spherical harmonic utilities module (#761)
- gh-734: Port points.uniform_positions (#736)
- gh-747: Force nox to default to 3.13 (#748)
- gh-793: remove
inplaceoption tomultalm(#797) - gh-836: consistent setting of seed throughout (#837)
- gh-661: Add Python 3.14 support (#662)
2025.2 (21 Oct 2025)
- gh-578: mutable argument should be empty list rather than
None(#579) - gh-552: add docs on all-contributors (#565)
- gh-573: add keyword
rngto functions in notebooks (#574) - gh-583: fix flakiness of
test_generate(#584) - gh-575: bring back inv_triangle_number (#577)
- gh-572: make
multalmprivate (#576) - gh-487: reorder alms in _generate_grf to glass ordering (#533)
- gh-568: convert
_weightfuncs to classes for_windowsfuncs (#589) - gh-495: allow
zeffto be computed automatically (#590) - gh-566: add example on galaxy redshift distributions (#567)
- gh-616: use
position_weights()in galaxy redshift example (#617) - gh-124: use
cosmology.apiover thecosmologypackage (#537) - gh-621: bump
array-api-strictversion to2024.12(#625) - gh-639: fix compute_gaussian_spectra() for empty spectra (#640)
- gh-652: make
array-api-strictan official dependency (#653) - gh-407: Port functions in fields.py (#642)
- gh-633: switch to
dependency-groups(#634) - gh-408: porting straightforward functions in
shells(#643) - gh-667: Make JAX an optional dependency as intended (#672)
- gh-409: Port straightforward functions in
points(#663) - gh-691: rename envvar to
ARRAY_BACKEND(#692) - gh-693: Add script to generate release notes (#694)
2025.1 (21 Feb 2025)
- gh-163: drop
Python 3.9&NumPy < 2.1.1support (#391) - gh-368: add type overloading for
lensing.from_convergence(#395) - gh-384: rename all internal functions to
trapezoidovertrapz(#392) - gh-440: remove scipy as a test dependency (#462)
- gh-443:
ifshould beelifinfixed_zbins(#444) - gh-445: place all public function in
__all__(#446) - gh-465: enable installing glass through git archives (#483)
- gh-470: instructions to install using conda (#481)
- gh-478:
glass.core.array->glass.arraytools(#524) - gh-493: add module for Gaussian random fields (#494)
- gh-496: functions for legacy mode (#497)
- gh-501: change imports to be directly from
glass(#512) - gh-504: deprecate old generator functions (#523)
- gh-508: create standalone bibliography page (#518)
- gh-509:
inv_triangle_number->nfields_from_nspectra(plus make it public) (#527) - gh-513: make algorithm a public module (#514)
2024.2 (15 Nov 2024)
- gh-188: add docstrings to all functions and tidy docs (#381)
- gh-336: support Python 3.13 (#337)
- gh-358: add static types support (#368)
- gh-131: rename
gaussian_glstodiscretized_cls(#345) - gh-328: efficient resampling in
ellipticity_ryden04(#341) - gh-137: deprecate
redshifts_from_nzin favor ofredshifts(#333) - gh-328: fix shape mismatch bug in ellipticity_ryden04 (#332)
- gh-315: add broadcasting rule in ellipticity_ryden04 + tests (#317)
- gh-198: enforce
python>3.8&numpy>1.21(#326) - gh-260: remove glass.core.constants (#261)
- gh-107: add all public functions/classes under glass namespace (#221)
- gh-168: move examples into repository (#169)
- gh-156: add FITS catalogue writer tool (#158)
2024.1 (16 Jul 2024)
- A new function
combine()that evaluates the linear combination of radial window functions with given weights. - A new function
effective_cls()which combines power spectra using a list of weights, which models what happens in the simulation. - A new function
position_weights()that returns weights foreffective_cls()to model the result ofpositions_from_delta(). - A new function
multi_plane_weights()that returns weights foreffective_cls()to model the result ofMultiPlaneConvergence. - The
glass.core.algorithmmodule. - The new
partition(method="nnls")function computes a partition with non-negative contributions for each shell. - Function
redshifts()to sample redshifts following a radial window function.
- The default method for
partition()is now"nnls". - Both
partition(method="nnls")andpartition(method="lstsq")now have an additional integral constraint so that the sum of the partition recovers the integral of the input function. - The output of
partition()now has the shells axis as its first.
- Now uses the updated intersphinx URL for the GLASS examples.
- A bug in
effective_cls()that caused arrays to be one entry too long iflmaxwas not given explicitly. - A bug in
partition()with the default method. partition()now works correctly with functions having extra axes.
2023.7 (1 Aug 2023)
- Function
getcl()to return angular power spectra by index from a list using GLASS ordering. - New
linear_windows()andcubic_windows()window functions for shells.
- The
gaussian_phz()function now accepts bounds usinglower=andupper=keyword parameters. - The
partition()function now returns an array of weights to approximate the given function by the windows.
2023.6 (30 Jun 2023)
deflect()applies deflections to positionsfrom_convergence()returns other lensing fields given the convergence- A new
glass.extnamespace, reserved for extensions
- The
glassmodule is no longer a namespace package - The point sampling functions
positions_from_delta()anduniform_positions()now return an iterator ellipticity_gaussian()andellipticity_intnorm()accept array inputs- Use pyproject.toml for packaging
shear_from_convergence()is deprecated in favour offrom_convergence()
- The
glass.allmeta-module is no longer necessary
- Incorrect extrapolation in
glass.core.array.trapz_product(), causing a bug inglass.points.effective_bias()
2023.5 (31 May 2023)
- Allow dimensional input to the sampling functions in
glass.points(#80) - The
redshifts_from_nz()function supportscountarrays (#83)
- Position sampling returns counts alongside points (#80)
redshifts_from_nz()no longer returnsgal_pop(#83)- Move core functionality that is used by other, user-facing modules into the
glass.coremodule (#88)
- Remove profiling functions (#89)
2023.2 - 1 Mar 2023
- The
glass.lensing.MultiPlaneConvergence.add_windowmethod to add a convergence plane given by a window function. - The
glass.shellsmodule for shell definitions. - User functions to save and load Cls
- This changelog added to keep track of changes between versions
- Instead of an array of shell boundaries and
MatterWeights, the shells are entirely defined by aRadialWindowwindow function. - The
glass.lensing.multi_plane_matrixfunction now takes a sequence of window functions. - The arguments of
glass.lensing.MultiPlaneConvergence.add_planeare calledzsrcandwlensinstead of the more ambiguouszandw. The propertiesMultiPlaneConvergence.zandMultiPlaneConvergence.wthat return these values are similarly changed. - The
glass.points.effective_biasnow takes a single window function as input and computes its effective bias parameter. - Some type hints added to library functions
- The
glass.lensing.multi_plane_weightsfunction, replaced by theglass.lensing.MultiPlaneConvergence.add_windowmethod. - The
glass.galaxies.constant_densitiesanddensity_from_dndzfunctions, since densities can now easily be partitioned by window functions for shells. - The
zmin, zmaxparameters ofglass.galaxies.redshifts_from_nz, for the same reason. - The
glass.math.restrict_intervalfunction, as shells are now defined by window functions instead of sharp intervals. - The
glass.mattermodule, in favour of the more appropriately-namedglass.shellsmodule.
2023.1 - 31 Jan 2023
- Initial wide release for GLASS paper