CHANGES
=======

2.4
---

- Added state/energy
- Made state/id an index instead of an int
- Added JSON configuration data as a C variable in trexio.h
- Added JSON configuration file in tar.gz release
- Added Rust interface

2.3
---

- Removed dependency to hdf5_hl
- Fixed Fortran interface on 32-bit (e.g. i386) architectures
- Changed the structure of the state group
- Sparse data type is patched to work with different dimensions
- Safer cleaning of the output files in TREXIO_TEXT tests
- The global `state` switch is replaced with `state_id` attribute
- Added `float buffered` type for vectors like CI/CSF coefficients
- .git folder is no longer needed to activate TREXIO_DEVEL mode
- Renamed debian folder into helpers-debian
- Added plane wave basis set
- Added trexio_to_bitfield_list functionality
- Added `trexio_has_group` functionality
- Added numerical integration grid (`grid` group)
- Added OCaml binding
- Added spin and energy in MOs
- Added CSF group
- Added Jastrow group
- Added Amplitude group
- Added Cholesky-decomposed two-electron integrals
- Added Cholesky-decomposed RDMs for Gammcor
- Added `trexio_flush` functionality
- Optional compilation `--without-fortran`

2.2
---

- Added `dim_readonly` data type for read-only dimensions
- Added I/O for the CI determinants (lists and coefficients) in #91
- Merged local and non-local components of pseudopotential integrals in  #89
- Added QMC components to the format in #89
- Added debian packaging in #84
- Added support for Python-ic `with` statements
- Merged local and non-local pseudopotential integrals  in #86
- Fixed backwards incompatibility of the `TREXIO_TEXT` back end in #82
- Added `TREXIO_AUTO` back end for read-only mode (`r`) in PR #80
- Added unsafe mode (`u`) to `trexio_open`. When enabled, data can be
overwritten (using conventional `trexio_write`) and groups can be deleted
(using new set of `trexio_delete_[group]` functions). Also added `unsafe`
attribute to the `metadata` group to indicate that the file might be
inconsistent. See PR #79
- Added `trexio_info` function (prints basic info about the library) in PR #78
- Added `trexio_inquire` function (checks validity of TREXIO files) in PR #75
- Fixed ISO_C_BINDING types in the Fortran API (`trexio_f.f90`) in PR #74 and #77
- Fixed code generation and some missing dependencies in CMake in PR #74
- Fixed portability issue with sed on MacOS so that `make python-install` works
- Clean `docs` folder only in the maintainer mode

2.1
---

- Automatic maintainer mode in PR #66
- Optional compilation without HDF5 in PR #67
- Support for CMake build-system and GNU Guix package management in PR #69
- Add sparse datasets (e.g. for RDMs and 2e ERIs) in PR #70
- Add Python API for sparse datasets in PR #71
- Automate build and upload of CPython wheels in PR #72
- Documentation: changed ordering of AOs in spherical basis

2.0
---

- Fixed data structure of the <ecp> group in trex.org in order to simplify the
access to both local and non-local quantities
- Adapted data structure of the <basis> group to be consistent with the <ecp>

1.1
---

- Fixed bug when trying to lock read-only file in text back-end
- Raise autoconf error when not in developer mode
- Add version attributes to the Fortran module
- Remove PACKAGE_VERSION definition from trexio.h

1.0
---

- Python API developed with the SWIG code generator and deployed on PyPI and Binder
- Memory-safe functions introduced for write/read operations with arrays
- Better handling of single numerical (int/float) attributes + new dim type (strictly positive integers)
- Added functionality to return the error code from the trexio_open function
- Pinned minimal numpy version for the Python API build and distribution [to be tested]
- Parallel unit tests in C


0.3
---

- Using libtool/automake
- Rewrote generator
