conda build recipes for the Omnia project
C Python Shell Batchfile PowerShell C++
Clone or download
Latest commit 54deefb Aug 10, 2018
Permalink
Failed to load latest commit information.
alchemy
algopy
ambermini
assaytools Skip assaytools on windows until assay tools fixes it Jun 23, 2017
autoprotocol Fix md5 Nov 3, 2016
cclib
clusterutils
covar
cpptraj Revert the safety check Apr 20, 2017
cuda75
cuda80
cuda90
cuda91 Update maintainer for cuda feature packages Jun 27, 2018
cuda92
deepchem tf req May 24, 2017
devtools Add omnia/label/dev too Jul 8, 2018
eigen3
ensembler
fahmunge
fftw3f
forcebalance Skip Windows build Jan 29, 2018
gpflow tf req May 24, 2017
gpy Change GPy test to avoid conda's mpl pyqt4 issue Mar 2, 2017
hmmlearn
iapetus [iapetus] 0.1.0 May 29, 2018
jom
lomap Update Lomap recepie. PyQt4 is needed Apr 9, 2017
m2r
mdentropy bump mdentropy version Oct 2, 2017
molpx bump v0.1.5 Mar 23, 2017
msmb_data Release msmb_data v2.0 Jul 10, 2016
msmexplorer
munkres
numdifftools
omnia
openbabel
openforcefield
openmm-example-plugin disable openmm example plugin on py36 for now Apr 25, 2017
openmm-setup
openmm OpenMM 7.2.2 May 10, 2018
openmmtools [openmmtools] release 0.15.0 Mar 23, 2018
openmoltools Update OpenMolTools to 0.8.3 Mar 8, 2018
openpathsampling Should now be py3k-available Feb 26, 2018
oset Revert the safety check Apr 20, 2017
osprey Skip on one line Dec 9, 2016
packmol Update packmol to 18.013 Mar 7, 2018
paramz Set the decorator as a runtime req for paramz so its not passed on to… Mar 2, 2017
parmed
pdbfixer Added include_omnia_label option Dec 6, 2017
perses
protons Update meta.yaml Mar 23, 2018
pybtex-docutils
pybtex
pygraphviz Revert the safety check Apr 20, 2017
pytest-ipynb
quadprog
rdkit
saltswap
sams Skip on one line Dec 9, 2016
schema Made version number string again Sep 16, 2016
scripttest Initial commit Mar 10, 2014
shiftx2 Bump shiftx2 to v1.10 Aug 31, 2017
silo Skip on one line Dec 9, 2016
simpletraj Skip on one line Dec 9, 2016
skorch bump to scorch v0.3.0 Aug 6, 2018
smarty Update for 0.1.5 smarty release Mar 24, 2017
solvationtoolkit Update solvation toolkit recipe for new release Mar 22, 2018
sphinxcontrib-bibtex MAINT: Update recipes to latest pypi versions Apr 30, 2015
sphinxcontrib-lunrsearch Update Lunrsearch May 3, 2018
svgwrite
yank-examples Update meta.yaml Sep 17, 2017
yank
.gitignore Add shiftx2 recipe Mar 12, 2016
.pre_black_listed
.travis.yml Disable cache, which was causing osx builds to fail Jun 26, 2018
LICENSE.txt
README.md Drop Python 3.4 support while I'm at it May 24, 2017
appveyor.yml Build on Python 3.7 Aug 8, 2018
conda-build-all

README.md

  • Travis-CI linuxand osx builds Travis Build Status
  • Appveyor-CI win builds AppVeyor Build status

omnia-md/conda-recipes

The recipes here create conda packages for scientific and numerical software components associated with the omnia project. The packages built from these recipes are shared with the community on anaconda.org. These packages also depend on the conda-forge conda channel.

Installing packages from omnia

To install a package (mdtraj for example)

# Add conda-forge and omnia to your channel list, one time action
conda config --add channels omnia --add channels conda-forge
# Install the 'mdtraj' a package
conda install mdtraj

To install a package in one line:

# channels searched in order they are added here
conda install -c conda-forge -c omnia mdtraj

When setting up the configuration through conda config, the channels are added to the top of the search priority sequentially. So conda config --add channels omnia --add channels conda-forge first adds omnia to the top of the list, then adds conda-forge on top of that, giving conda-forge the highest priority.

When temporarily searching through channels with conda install, the channels are prioritized in the order they are provided. So conda install -c conda-forge -c omnia prioritizes conda-forge first, then omnia.

Migration to conda-forge

The Omnia project has started migrating to conda-forge. New packages that do not depend on OpenMM should be developed on conda-forge and existing packages which do not depend on OpenMM should start migrating if possible.

Planed Migration Stages

  1. Update build image to CentOS 6 from CentOS 5

    The base Docker image for linux builds will be updated to CentOS 6 with its new glibc. The base image is the conda-forge anvil, with some custom addons to include things like the AMD SDK, TexLive, and CUDA for GPU builds. The updated version will ensure packages can work on the conda-forge platform which is CentOS 6 based.

  2. (Current) For packages that appear in conda-forge, remove the corresponding recipes in omnia

    We want to minimize the amount of work we have to do as maintainers. To that end, we will stop building things which freely appear on conda-forge and maintained by someone other than us! For reproducibility purposes, we will keep our previously compiled versions, but they will not longer be updated.

    • Developers: if you want users to still exclusivley use the omnia conda channel, please see the Copying from conda-forge section below
  3. Allow recipes that do not depend on OpenMM to migrate from omnia to conda-forge

    • Packages which do not depend on OpenMM and can be run on CPUs only should start migrating over to conda-forge in preparation for the total migration.
    • Packages which can compile with just the conda-forge linux-anvil should also start migrating.
    • We highly encourage devs of individual packages to start migrating now.
    • Once a package is on conda-forge, it should no longer depend packages from omnia!
  4. Determine the appropriate way to build packages which require more than the conda-forge linux-anvil can provide

    • The conda-forge linux-anvil does not support some things such as some LaTeX packages, AMD SDK, and CUDA files.
    • We will need to reach out to the conda-forge people to see what the best course of action is
  5. Migrate OpenMM to conda-forge

    • This requires us to identify the best way to add CUDA and AMD APP SDK developer tools to the conda-forge linux-anvil docker image. We have some ideas, but no concrete solution yet.
  6. Move the remainder of packages to conda-forge

    • Also ensure that all former omnia packages can be installed without the omnia conda channel
  7. Change this repo into an archive for reproducibility.

How to migrate to conda-forge (for existing packages)

PLACEHOLDER

Copying from Conda Forge

It can be a bit confusing to rely on two conda channels where the order they are specified in changes which version of packages are installed. During the migration to conda-forge, developers can copy their binary tarballs from conda-forge to the omnia channel using the Anaconda Cloud API, allowing users to rely only on the omnia channel. There are a couple conditions for this though:

  • Packages still built in omnia will search for dependencies in conda-forge then omnia, in that order
  • Your package should not depend on packages which only exist in omnia
  • You the developer will be responsible for also copying any dependencies from conda-forge to omnia that you need and are not on the default channel

To copy packages:

If you have write access to the omnia cloud

  1. Open an Issue
    • This is important so we can track changes made to the cloud in a public space
    • Note which package, version, and any dependencies you are bringing over
  2. Get the Anaconda CLI Tool
  3. Copy the package with the CLI
    • anaconda copy conda-forge/{PACKAGE}/{VERSION} --to-owner omnia
    • Replace {PACKAGE} and {VERSION} accordingly
  4. Copy any dependencies you need in the same way
  5. Close the issue

If you do NOT have cloud write access

  1. Open an issue, request which package and dependencies
  2. Request a maintainer who has cloud write access follow the steps above.

Eventually, all packages will be on conda-forge and we won't have to worry about the multiple channels any more, until then, we thank you for your patience as we go through this transition.

Supported versions

Python packages are built against latest two releases of python (3.5 and 3.6) and python 2.7. Packages which have a binary dependency on numpy are built against the latest two releases of numpy (1.10 and 1.11).

WARNING: Numpy 1.09 support will be phased out now that numpy 1.11 has been released.

Building the packages

The recipes here are automatically built using Travis-CI for linux and osx and Appveyor-CI for win.

For linux builds, we use a modified version of the conda-forge linux-anvil, to ensure that the packages are fully compatible across multiple linux distributions and versions. This build image contains the additional tools:

There is an additional image which has clang 3.8.1

To build a package yourself, run conda build <package_name>, or ./conda-build-all ./* to build multiple packages across each of the supported python/numpy configurations.

Contributing a recipe (this has not been updated to reflect the conda-forge changes)

  1. Fork this repo
  2. Add your conda recipe for building your package packagename in a subdirectory called packagename. Feel free to use other recipes here as examples.
  3. Open a pull request to merge your branch into this master repo.
  4. It will automatically be tested to make sure it compiles.
  5. We will discuss the recipe and give suggestions about how to fix any issues.
  6. The recipe will be merged and our automated build framework will build and deploy the packages to the omnia anaconda channel under the rc label.
  7. Test the binaries by using conda install -c omnia/label/rc packagename
  8. When you're sure the binaries are ready for a full release, comment on the original pull request and a maintainer will move the package from the rc label to the main label.

FAQ

Q: Should I include an md5 hash in my source: section if using a Github compressed archive url:?
A: No. Github compressed archives are frequently regenerated with different compression settings, etc., so md5 hashes cannot be trusted to be invariant. (#699)