<div dir="ltr"><div><div><div>Hi Michael,<br><br></div>Thank you for your feedback!<br><br></div><div>Regarding your questions:<br></div><div><br></div>1. I created a new repository and will delete the old one:<br><br><div style="margin-left:40px"><a href="http://anonscm.debian.org/cgit/debichem/packages/chemps2.git/">http://anonscm.debian.org/cgit/debichem/packages/chemps2.git/</a><br></div><br>This new repository has a tagged version upstream/1.5 without the debian folder, as requested. I've also changed the general package name from libchemps2 to chemps2 in the new repo.<br><br></div><div>2. In the new rules file, the option "-D html_theme=default" is passed to sphinx-build, which uses the default theme instead of the classic theme:<br><br><div style="margin-left:40px"><a href="http://anonscm.debian.org/cgit/debichem/packages/chemps2.git/tree/debian/rules#n19">http://anonscm.debian.org/cgit/debichem/packages/chemps2.git/tree/debian/rules#n19</a><br></div><br></div><div>3. libpython-dev was added to the control file:<br><br><div style="margin-left:40px"><a href="http://anonscm.debian.org/cgit/debichem/packages/chemps2.git/tree/debian/control#n20">http://anonscm.debian.org/cgit/debichem/packages/chemps2.git/tree/debian/control#n20</a><br></div></div><div><br></div><div>4. I have currently used a work-around to make debuild work for sid:<br><br><div style="margin-left:40px"><a href="https://github.com/SebWouters/CheMPS2/blob/master/CheMPS2/CMakeLists.txt">https://github.com/SebWouters/CheMPS2/blob/master/CheMPS2/CMakeLists.txt</a><br></div><br></div><div>According to HDF5's specifications, one should include <hdf5.h>, see section 5 on<br><br><div style="margin-left:40px"><a href="http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/INSTALL">http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/INSTALL</a><br></div><br></div><div>In sid's packaged hdf5 version, this file is installed in /usr/include/hdf5/serial/:<br><br><div style="margin-left:40px"><a href="https://packages.debian.org/sid/amd64/libhdf5-dev/filelist">https://packages.debian.org/sid/amd64/libhdf5-dev/filelist</a><br></div><br>I think it is therefore CMake's task to correctly set the variable <span class="">HDF5_INCLUDE_DIRS with FindHDF5.cmake. They will probably do so at one point in a new version. So maybe this needs to be patched to sid's cmake version, because else many programs will have this problem?<br><br></span></div><div><span class="">5. Already resolved:<br><br></span><div style="margin-left:40px"><span class=""><a href="https://github.com/SebWouters/CheMPS2/commit/2468b307b9cabd91a558d83bd651dc27982dd522">https://github.com/SebWouters/CheMPS2/commit/2468b307b9cabd91a558d83bd651dc27982dd522</a></span><br></div><div style="margin-left:40px"><span class=""></span></div><span class=""><br></span></div><div><span class="">6. The idea of the chemps2 library is that it should be a lightweight and efficient library providing core functionality. Additional features, outside of this core functionality, make use of the classes and functionality in the core library without touching them. After some debate with </span><span class=""><span class="">Sandeep Sharma (who rewrote the Block code for Garnet Chan) and Garnet himself, we agreed that this is most likely the optimal balance between speed and stability on the one hand, and ease-of-use and recycling code for future development on the other hand.<br></span><br>From the tests, it seems that with ~ 30 functions, all API is provided. But for psi4 for example, all classes in DMRGSCF*.h are required as well, see <a href="https://github.com/psi4/psi4public/blob/master/src/bin/dmrg/dmrgscf.cc">https://github.com/psi4/psi4public/blob/master/src/bin/dmrg/dmrgscf.cc</a>. And for generic purpose classes such as Davidson or DIIS, it might be useful for other programs to use them for a different purpose. The classes which initially seem least useful, the Tensor*.h will then again be used to construct intermediary contracted objects for dynamic correlation theories such as DMRG-NEVPT2.<br><br>That being said, I'm well aware that any API change will break user space and will require a version number increase. The API in the version in this new repo is adjusted to MPI (although I don't officially support it yet -- still need to do scaling tests and write a paper). The only major feature which will be added before the end of 2016 in the core package is the calculation of the 3-RDM. This will only require additional functionality and I will take care that it doesn't break the current API. All further developments of CheMPS2 will be split into a separate library making use of the core library, as said above.<br><br>Due to the combination of all class functions in one header file (per class), currently the header files mutually call each other in a cascaded way. So either all or none are included (in practice). If you would like to have a minimal closed set of functions, I can make one specific header file with all relevant functions. As an alternative I could write C-wrappers around the CheMPS2 class, an option which I contemplated about for the python interface, but which I abandoned in favour of Cythonizing the C++-code.<br><br>Let me know what you think, and if you want, I can make specific installation headers for debian.<br><br></span></div><div><span class="">7. I've adjusted all your comments regarding the library description.<br><br></span></div><div><span class="">Best wishes,<br></span></div><div><span class="">Sebastian<br><br></span></div><div class="gmail_extra"><br><div class="gmail_quote">2015-06-13 13:24 GMT-04:00 Michael Banck <span dir="ltr"><<a href="mailto:mbanck@debian.org" target="_blank">mbanck@debian.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Sebastian,<br>
<span class=""><br>
On Thu, May 14, 2015 at 04:39:55PM -0400, Sebastian Wouters wrote:<br>
</span><span class="">> Hi Michael,<br>
><br>
> I have now also added the python package: python-chemps2:<br>
> <a href="http://anonscm.debian.org/cgit/debichem/packages/libchemps2.git/" rel="noreferrer" target="_blank">http://anonscm.debian.org/cgit/debichem/packages/libchemps2.git/</a><br>
><br>
> Is there anything else I can do?<br>
<br>
</span>I had a further look, sorry for the delay. My comments:<br>
<br>
1. Is there a good reason the source package is called "libchemps2"<br>
while the github project and release tarballs are called just "chemps2"<br>
(modulo capitalization)? I agree it would be awkward to switch the git<br>
repo basename and all, but maybe better now than after the package is in<br>
the archive? In general, the source package name should be called<br>
similar to the tarballs.<br>
<br>
2. A build on Debian unstable fails when running sphinx, cause it cannot<br>
find a 'classic' theme:<br>
<br>
<br>
|PYTHONPATH=. http_proxy='<a href="http://127.0.0.1:9" rel="noreferrer" target="_blank">127.0.0.1:9</a>' sphinx-build -N -b html -c obj-x86_64-linux-gnu/sphinx/ sphinx/ build/html<br>
|Making output directory...<br>
|Running Sphinx v1.2.3<br>
|loading pickled environment... not yet created<br>
|<br>
|Theme error:<br>
|no theme named 'classic' found (missing theme.conf?)<br>
|make[1]: *** [override_dh_auto_build] Error 1<br>
<br>
That's a bit weird, but indeed I don't have a<br>
/usr/share/sphinx/themes/classic/theme.conf<br>
<br>
Maybe it needs to be changed to "default"? That one is available and<br>
changing it to that makes the documentation build fine for me.<br>
<br>
3. The following Build-Depends is missing:<br>
<br>
- libpython-dev<br>
<br>
4. The include for HDF5 in CheMPS2/include/chemps2/MyHDF5.h is not<br>
working for me, there's no /usr/include/hdf5.h (anymore?). If I replace<br>
that with '#include <hdf5/serial/hdf5.h>', it builds fine.<br>
<br>
5. I was a bit surprised that there is only libchemps2.so.1 and not<br>
libchemps2.so.1.x.y as is usual for libtool projects, but I guess that<br>
is from CMake?<br>
<br>
6. As a general (targetted at upstream) comment, it seems to me that<br>
there are really a lot of files shipped in /usr/include/chemps2. Be<br>
aware that removing any function signature from any of those will<br>
require you to bump the library version. Is that really the external<br>
API in there or are some/most meant to be internal and should not be<br>
shipped?<br>
<br>
7. About the description in debian/control, I would advise the following<br>
changes. But those are not required before upload:<br>
<br>
- I would remove the first sentence of the 'design philosophy'<br>
paragraph, as implementation details or designs are usually<br>
discouraged in the description. Maybe to make it more readable, you<br>
could break it down into a list of bullet-points as well, introduced<br>
with something like "Further Features include: [...]".<br>
<br>
- remove the "In the future" paragraph - the description should be<br>
about the current state of affairs (though I agree we are sometimes<br>
bad at updating it when new upstream version implement new features).<br>
<br>
- personally I would drop the last paragraph as well. The homepage is<br>
already mentioned in the Homepage: field and in upstream-metadata,<br>
and the additional references are also mentioned in upstream-metadata<br>
(though I am not sure that information is exposed elsewhere yet).<br>
Finally, the documentation is shipped in the libchemps2-doc package,<br>
or is the documentation on your website different to it? That said,<br>
if you prefer to leave that paragraph in, I'm fine with it.<br>
<br>
- maybe expand 2-RDM as (I guess?) "second order reduced density<br>
matrix (2-RDM)" on first mention, though then again if users don't<br>
know what 2-RDM means they might not get a lot out of the package<br>
anyway. You are expanding most of the other acronyms (like FCI,<br>
CASCI, CASSCF) already, though.<br>
<br>
- Possibly add something like "CheMPS2 is parallelized via OpenMP." at<br>
the end, or am I mistaken about OpenMP?<br>
<br>
<br>
Cheers,<br>
<br>
Michael<br>
</blockquote></div><br><div dir="ltr"><div><div dir="ltr"><div><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"></span></div></div></div></div>
</div></div>