mkconda building and releasing new versions - kutaslab/mkconda GitHub Wiki

To build and test on TravisCI

In the local mkconda repo on a working (not master) branch ...

  • run make mkconda and monitor for trouble, this is slow.

  • confirm that

    • there is one package tarball for the current version mkconda-VERSION-blahblah.tar.bz2 in ./conda/conda-bld/linux-64/ directory: ls ./conda/conda-bld/linux-64/mkconda*.tar.bz

    • it is staged to be added to the git repo: git status

  • confirm there are no previous versions of the mkconda*tar.bz2 tarballs in the repo

    git ls-files *mkconda*.tar.bz2

    (if so remove them with git rm <filename>)

. git commit and make sure the new tarball was added to the git repo: git ls-files

. git push origin

. monitor the TravisCI build for trouble

To release

Release versions must be N.N.N for the Major.Minor.Patch semantic versioning.

  1. In the local repo on a working branch, update the Major.Minor.Patch version string in conda/meta.yaml, ensure it is not already in use in kutaslab/mkconda

  2. Build as above with the commit message Release N.N.N for the new version string

  3. On github, pull into master, confirm TravisCI passes

  4. On github make a new release with (exactly) tag vN.N.N and (exactly) label N.N.N and description text.

Why

For TravisCI, the mkconda metapackage tar.bz2 is prebuilt in /tmp/mkconda on the local machine b.c. the dependency resolution during conda build and conda create is slow and TravisCI may time out.

The steps in scripts/create.sh sort of mimic TravisCI

  • set up and activate minimal env for conda building (/tmp/mkconda/build_env)
  • build the linux-64 conda package, roughly conda build conda the mkconda metapackage from the conda meta.yaml. This what may timeout on TravisCI.
  • populate a new conda env with mkconda (only), roughly conda create --name run_env mkconda
  1. snapshot the specific packages to a file with conda list --explicit
  2. paste the fresh tarball from /tmp/conda/conda-bld back into local for loading into the repo where Travis can find it.

Now the repo has the the tarball and explicit environment. Travis can reconstruct the explicit environment quickly, if all goes well, the tarball is converted for other platforms. For versions released on github tagged vN.N.N the packages are uploaded to Anaconda Cloud kutaslab/mkconda.

⚠️ **GitHub.com Fallback** ⚠️