Add Amp to Debian Archive

Issue #119 resolved
Muammar El Khatib created an issue

There already exists an intend to package (ITP) in Debian https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790803. I have contacted Graham Inggs who kindly gave me the package advance he had so far. I have modified it now to work with Amp:

https://anonscm.debian.org/cgit/collab-maint/amp.git

The only issue I see in this regard is that TensorFlow is not available in Debian although there exists an ITP as well: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804612. There is a blocking dependency that is stopping the process: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782654.

A package could be provided without this dependency and users may install tensorflow using pip. In the long term, having amp in debian will make it available to be installed with apt and in debian based distros.

Comments (16)

  1. andrew_peterson repo owner

    Right now we have been having the dependency be the development branch of ASE. This is for a couple of reasons (1) ASE is quite reliable in the development branch, although some import names occasionally change around, (2) I use the development branch in research, and (3) we occasionally have needed to change something in the development branch of ASE to get Amp to work (although exactly what, I have forgotten -- perhaps we were only keeping it open as a possibility).

    I imagine that for Debian we should have our dependency be a numbered release of ASE? Is the most recent okay? If so, we should try to figure out how to test against this.

    I think the user will never see an issue with the tensorflow dependency unless they try to use that particular module. Should we have a warning pop up instead of an error if this is the case?

    We should probably also figure out how to have the tensorflow test be skipped if tensorflow is not present. This is what ASE does for lots of its calculator tests.

  2. Muammar El Khatib reporter

    Right now we have been having the dependency be the development branch of ASE. This is for a couple of reasons (1) ASE is quite reliable in the development branch, although some import names occasionally change around, (2) I use the development branch in research, and (3) we occasionally have needed to change something in the development branch of ASE to get Amp to work (although exactly what, I have forgotten -- perhaps we were only keeping it open as a possibility).

    For the packaging proposed so far, the dependencies can be seen in here: https://anonscm.debian.org/cgit/collab-maint/amp.git/tree/debian/control#n21. So yes, python-amp will depend on python-ase and python-scipi (and some others picked up automatically by ${misc:Depends}, ${python:Depends}, ${shlibs:Depends}). TensorFlow can be later added as Suggested package.

    I imagine that for Debian we should have our dependency be a numbered release of ASE? Is the most recent okay? If so, we should try to figure out how to test against this.

    Currently, in debian the most recent version of python-ase is the following:

    Package: python-ase                      
    Version: 3.12.0-1
    New: yes
    State: installed
    Automatically installed: no
    Priority: optional
    Section: python
    Maintainer: Debichem Team <debichem-devel@lists.alioth.debian.org>
    Architecture: all
    Uncompressed Size: 5,670 k
    Depends: python-numpy, python-scipy, python:any (< 2.8), python:any (>= 2.7.5-5~)
    Recommends: python-gtk2, python-matplotlib
    Suggests: python-ase-doc
    Description: Atomic Simulation Environment (Python 2)
     ASE is an Atomic Simulation Environment written in the Python programming language with the aim of setting up, stearing, and analyzing atomic simulations.
     ASE is part of CAMPOS, the CAMP Open Source project. 
    
     ASE contains Python interfaces to several different electronic structure codes including Abinit, Asap, Dacapo, Elk, GPAW and SIESTA. 
    
     This package provides the Python 2 modules.
    Homepage: https://wiki.fysik.dtu.dk/ase/
    

    From a packaging point of view, we can set the minimum or maximum version of python-ase to be used by python-amp in debian/control. Right now, this debian package will try whichever version installed of python-ase in the system that is greater than 3.9.0.

    python-ase (>= 3.9.0~)
    

    So we can always control the version of the dependency.

    I think the user will never see an issue with the tensorflow dependency unless they try to use that particular module. Should we have a warning pop up instead of an error if this is the case?

    That makes a lot of sense.

    We should probably also figure out how to have the tensorflow test be skipped if tensorflow is not present. This is what ASE does for lots of its calculator tests.

    That would be very useful. Currently, such tests will fail in a clean debian environment. Thus, bypassing them would avoid bugs of the type: fail to build from source.

  3. Muammar El Khatib reporter

    I am now the official maintainer of Amp in Debian. I decided to team-maintain it with the Debian Science team. I plan to upload it to the archives after latest Debian release happening in a couple of days. Then, Amp will be installable in Debian and Debian-based distros (e.g. Ubuntu) by using apt.

  4. Muammar El Khatib reporter

    I have built the Debian packages for Amp this weekend. They build correctly on my machine, and all tests are working well. I am now in the phase of doing tests in clean environments using tools provided by Debian.

  5. andrew_peterson repo owner

    Great. I just finalized the v0.6 release so you can work with that stable version. Let me know if anything needs to be changed; the changes I made in the 0.6 branch were just cosmetic (e.g., documentation, version numbering, etc.) However I did make some changes over this past weekend to get all the tests running, but those were already in master before this morning.

  6. Muammar El Khatib reporter

    The packaging is done!. The GIT for it is here https://anonscm.debian.org/git/debian-science/packages/amp.git. I have sent an email to Debian-science mailing list to discuss with others team members before uploading to the official archives for final revision. This package will only have a python3 version. That is the Debian Python Policy for newly uploaded python packages. This will give us the opportunity to test this code base before we can get rid of Python2 completely in future versions of Amp.

  7. andrew_peterson repo owner

    Interesting. I assume that since it works that ASE is in there as a python3 package, too?

  8. Muammar El Khatib reporter

    Yes, that's correct:

    % aptitude search ase |grep Atomic                                                                                                                                                                        !10008
    i A ase - Atomic Simulation Environment
    i  python-ase - Atomic Simulation Environment (Python 2)
    p  python-ase-doc - Atomic Simulation Environment (common documentation)
    i  python3-ase - Atomic Simulation Environment (Python 3)
    

    As ASE was uploaded before this latest Debian Python Policy it still has a python2 version there.

  9. andrew_peterson repo owner

    Cool. What is the rough timeline now, specifically when might we expect to see it in ubuntu?

  10. andrew_peterson repo owner

    Also, if you install with a package manager from debian do you also get tensorflow?

    On Tue, Aug 22, 2017 at 3:15 PM, Peterson, Andrew <andrew_peterson@brown.edu

    [image: muammar] Muammar El Khatib commented on issue #119: Add Amp to Debian Archive https://bitbucket.org/andrewpeterson/amp/issues/119/add-amp-to-debian-archive

    I uploaded today Amp to the debian archives: https://ftp-master.debian.org/new/amp_0.6-1.html I hope it passes the NEW queue soon :). View this issue https://bitbucket.org/andrewpeterson/amp/issues/119/add-amp-to-debian-archive or add a comment by replying to this email. Unsubscribe from issue emails https://bitbucket.org/api/1.0/repositories/andrewpeterson/amp/issue/119/unsubscribe/andrewpeterson/9c3013d520fb5932cb280eb984f07db3b463d18f/ for this repository. [image: Bitbucket] https://bitbucket.org

    -- Andrew Peterson Assistant Professor Brown University School of Engineering Barus & Holley 247 184 Hope Street Providence, RI 02912 (401) 863-2153 http://brown.edu/go/catalyst

  11. Muammar El Khatib reporter

    Cool. What is the rough timeline now, specifically when might we expect to see it in ubuntu?

    It might take from 2 to 6 weeks to be revised by humans in the team in charge of accepting new packages in Debian. Then it will hit Debian unstable. Ubuntu syncs packages from unstable regularly, but given that Ubuntu 17.10 is being released in October, I think that for Ubuntu 18.04 Amp will be officially included in that version. However, the differences between 17.10 and 18.04 are not that large and then people using 17.10 can already install the Amp package.

    Also, if you install with a package manager from debian do you also get tensorflow?

    There is no tensorflow debian package yet although there is an Intent To Package (ITP). The problem seems to be bazel that has to undergo important changes to comply with Debian Policy. However, installing it with pip will still make it work if you have the deb installation.

  12. Muammar El Khatib reporter

    Accepted!1!

    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790803#94

    Accepted:
    
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    Format: 1.8
    Date: Sat, 29 Jul 2017 21:12:31 -0400
    Source: amp
    Binary: python3-amp
    Architecture: source amd64
    Version: 0.6-1
    Distribution: unstable
    Urgency: medium
    Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
    Changed-By: Muammar El Khatib <muammar@debian.org>
    Description:
     python3-amp - Atomistic Machine-learning Package (python 3)
    Closes: 790803
    Changes:
     amp (0.6-1) unstable; urgency=medium
     .
       * Initial release (Closes: #790803)
    Checksums-Sha1:
     ce1700e77a4f7bdfb86ce9ea02447475ea0b9820 2114 amp_0.6-1.dsc
     6bb88003be352f9c3a2610a3675ef37a1c3632ae 3222959 amp_0.6.orig.tar.gz
     1bd1122ad32bb2f8d51032c281e963a0daf9b58c 2912 amp_0.6-1.debian.tar.xz
     3926a2b4c60f9bb02aca33a447f9e6ee0abb6738 8302 amp_0.6-1_amd64.buildinfo
     f92caeaf19d289f7e24a8bbf1d8b3f16fb298106 482888 python3-amp-dbgsym_0.6-1_amd64.deb
     12fe99c00ee87ed75d4a692385cb190ddf9520ae 225644 python3-amp_0.6-1_amd64.deb
    Checksums-Sha256:
     900a5bf96d54674564d97898065dbc1f8ee6d6f5dd9cad8c0ba6c6b6f538ab99 2114 amp_0.6-1.dsc
     70863584c340ffbcc6be22876fa515b04ea03f893f46404f97a240dbedd6c730 3222959 amp_0.6.orig.tar.gz
     b245ec4bf28521ce252d0b516205dd3bdb3fc159e1357ab34099f7ccd1d2f177 2912 amp_0.6-1.debian.tar.xz
     b0ed00e19174afe44635a198035f8ffb908179b4dc0e46418a40f1ab338610f3 8302 amp_0.6-1_amd64.buildinfo
     63ae87fc79fdf4fd60800d978fe4aa9558236b6726e7a475462933bb61542bf6 482888 python3-amp-dbgsym_0.6-1_amd64.deb
     6c12bb0fc02955f42dae623a6fad53d9e2a6362fdac03895adcb8afd9ab807a7 225644 python3-amp_0.6-1_amd64.deb
    Files:
     befed29b2bc8466e2e8b4e65b619c486 2114 science optional amp_0.6-1.dsc
     cb5b79b15eaba0703f1ccd698b406e7a 3222959 science optional amp_0.6.orig.tar.gz
     63fa91b5f4c1c8efbd0e7466598f9f0f 2912 science optional amp_0.6-1.debian.tar.xz
     ebaec299ca536c19a7b4f1934e98f255 8302 science optional amp_0.6-1_amd64.buildinfo
     cb64cc0cf1a686522a568baf3d085853 482888 debug extra python3-amp-dbgsym_0.6-1_amd64.deb
     7b793310322763ec1b75a43f70295b56 225644 science optional python3-amp_0.6-1_amd64.deb
    
    -----BEGIN PGP SIGNATURE-----
    
    iQIzBAEBCAAdFiEEHJoldLGkjYrCQ8rlXCkTcnEkbkoFAlmcPogACgkQXCkTcnEk
    bkpn8w//ZjXa7ERlxmf4PbqR/goFd5BZ3dehH0Sthvd6dptnHcQ5F7JiI607UAR1
    MNx2RuEWgggsRM3YakWpvGiBtUfzZ0ouYmgu7Dnj4Y6m131JNZVOEgAUj5BXramC
    oHr7gHiVu6BJ04lr/Czu3SDcg3yvEvwF6P7K2EYmSobYW/b2UC66EZw1HwYp5l9P
    IMNVBBUPbGNgswtl5XSc/QTXR9sFiSFJ34qLXtWNLYrS1WcH6NNlk1ibfZOb3W7T
    I7J9mL35Rff6LPP7dD6TtVlyNKLARJ8JEmzcoB/NLmjj2aSMhRndTekGMataYXvn
    WrsoHVL6QuffHWmzaE8EwJ1OIAik5bBh/zPT8RoPhiTfamZqWWwtfq88wkH0rorv
    JlTy1xPaWZjyzHypxFRIRH1a0kmTeKiFuj4oHOoocNhrTzPzqyDWRl62t1q4l0nK
    mKcMIGx4j5CxYJSekQ61MmJfQl096LHAcwhouCaBLJtbe+VybXVDb322IXL4+oVG
    86B24nFZwsux1r5amAyt3xfwWZ/v7FxQUkjFiihb4oD8UBufsETFSh45XlRc0wCq
    +QS06JT3MCZv/9uI8WGjX0ViJu1bPUV7rxAgSm4HJ2xAdLMLIc2OR7iOvYnoPsGD
    fOb+VDvqAe+u3sb9gfTN+L16dG87SyvtnPb2r7gsrTzhECK0n8I=
    =wPeo
    -----END PGP SIGNATURE-----
    
    
    Thank you for your contribution to Debian.
    
  13. Muammar El Khatib reporter

    It is finally in Debian official archives.

      % sudo apt-get install python3-amp                                                              !10512
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following additional packages will be installed:
      libjs-bootstrap libjs-jquery-ui python3-ase python3-matplotlib python3-scipy
    Suggested packages:
      libjs-jquery-ui-docs python-ase-doc dvipng ipython3 python-matplotlib-doc python3-cairocffi
      python3-gobject python3-pyqt4 python3-tornado ttf-staypuft python-scipy-doc
    The following NEW packages will be installed:
      libjs-bootstrap libjs-jquery-ui python3-amp python3-ase python3-matplotlib python3-scipy
    0 upgraded, 6 newly installed, 0 to remove and 8 not upgraded.
    Need to get 11.9 MB/14.9 MB of archives.
    After this operation, 86.2 MB of additional disk space will be used.
    Do you want to continue? [Y/n] 
    

    I will proceed to close this report.

  14. Log in to comment