-
Notifications
You must be signed in to change notification settings - Fork 0
build_with_conda
Building |Cyclus| With Conda
Warning
In the cyclus ecosystem, only versions whose micro or patch number
(the third and last number) are zero are considered stable.
Other releases where the version number is greater than zero are
bugfix and maintainence releases and are considered unstable.
For example, a release number of 1.42.0
is stable, while
1.42.3
is unstable.
The process of building Conda packages involves a system called
Conda Recipes . A Conda Recipe
is a directory containing at least two files, meta.yaml and build.sh.
Version information, build and run dependencies, the location of the source
code, and other information about the package are stored in meta.yaml, while
build.sh contains a script to build from source. Packages are built from
recipes using the conda build <recipe dir>
command. Necessary dependency
packages will be automatically downloaded and installed before the build.sh
script is run and installed. The final output is a tar.bz2 file which is a
Conda package containing the necessary binaries, libraries, etc. This package
can then be installed or can be uploaded to Binstar,
which is a service provided to store and distribute Conda packages. Notice
that Conda requires all dependencies explicitly listed in meta.yaml must have
an available Conda package to install.
All associated Conda recipes can be found in the
Ciclus Repo. As part of installing and
maintaining |Cyclus| with Conda, recipes for a number of dependencies have
also been created. All lowercase directories in this repo (except fetch) are
Conda recipes. Additionally, this repo contains a stock .condarc
file
which automatically points to the
|Cyclus| Binstar Account.
There are many ways to customize the files in Ciclus repo.
1) Push a package to Binstar Once you have successfully built a Conda recipe, it can be uploaded to Binstar with the command
binstar upload -u cyclus anaconda/conda-bld/linux-64/cyclus-<VERSION>.tar.bz2
So, for instance, uploading version 1.0 of |Cyclus| would be
binstar upload -u cyclus anaconda/conda-bld/linux-64/cyclus-1.0.tar.bz2
2) Change the repository to build: Say you want to test your fork of |Cyclus|
before making a pull request. To customize what repos |Cyclus| and Cycamore
are pulled from, look in cyclus/meta.yaml
and cycamore/meta.yaml
respectively. In these files you can change the git_url
field to point to
the repo of your choice.
3) Change the branch to build: In cyclus/meta.yaml
(or Cycamore), alter the
git_tag
field to the branch or tag you want to use.
4) Test a new build process for Cyclus and Cycamore: To alter |Cyclus| or
Cycamore's build process, look at build.sh
in |Cyclus| or Cycamore
respectively.
5) Create/upload a new version of a dependency: Alter the dependency's
meta.yaml
file to point to the correct version of dependency source code.
Build the package, follow instructions in 1 to upload to Binstar.