[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1020772: ITP: trexio -- TREX I/O library and data format to exchange the quantum chemistry data.



Package: wnpp
Severity: wishlist
Owner: Evgeny <posenitskiy@irsamc.ups-tlse.fr>

* Package name    : trexio
  Version         : 2.2.0
  Upstream Author : Evgeny Posenitskiy <posenitskiy@irsamc.ups-tlse.fr>
* URL             : https://github.com/TREX-CoE/trexio 
* License         : (BSD)
  Programming Lang: (C, C++, Fortran, Python)
  Description     : TREX I/O library and data format to exchange the quantum chemistry data.


The TREXIO library is an open-source software for the quantum chemistry community. It allows
to efficiently write and read data in a common format using the default back end which relied 
on the HDF5 library. 
TREXIO has been developed within the TREX-CoE project and it is now a hard dependency
of several scientific codes including Quantum Package, QMC=Chem, CHAMP, GammCor, QMCkl etc.

Moreover, TREXIO has bindings in the OCaml programming language and having a Debian package 
for it would simplify the installation experience for OCaml users.

For now, it would be nice to package at least the C library with the Fortran binding as these 
are the most commonly used ones. Having a C library installed via Debian will simplify a lot
development of binding with languages like Rust, OCaml and Julia.

The build system relies on Autotools to build and install the shared C library `libtrexio`.
It provides additional `m4` macros to detect the HDF5 library and some other dependencies.
We can already produce debian package on the user machine and I wrote a short README about
it here: https://github.com/TREX-CoE/trexio/blob/master/debian/README.md. It requires only
the Autotools-generated distribution tarball.

TREXIO default dependencies are (when building from the distribution tarball, not from the 
GitHub repository clone):
 - libc
 - C compiler (gcc/icc/clang)
 - Autotools (autoconf >= 2.69, automake >= 1.11, libtool >= 2.2) or CMake (>= 3.16)
 - Fortran compiler (gfortran/ifort) [can be disabled at the `configure` time]
 - HDF5 library (>= 1.8) for high-performance I/O [can be disabled at the `configure` time]


This package can be particularly interesting for the Debichem team 
(https://wiki.debian.org/Debichem) and, in particular,
for the *Input prepataion and output processing* subsection:
https://blends.debian.org/debichem/tasks/input-generation-output-processing

To the best of our knowledge, TREXIO is the first package that attemps to unify data exchange.
However, there are some Python packages like `cclib` that can parse the output of some 
chemistry programs and convert them into other formats. However, they do not provide a uniform
API that can be used within the chemistry programs to *a priori* write/read data in a common 
format.

As this is my first packaging attempt, I do not know about the best practices and would 
appreciate any piece of advice.


Reply to: