fecon236 docs :: INSTALLATION

Basic install

Developers may prefer working with a git repository from https://git.io/fecon236 but the user may just want a simple install. (Important: there is a non-system pip which is conda-aware: conda install pip virtualenv)

    pip install fecon236
    pip install --upgrade fecon236
    pip uninstall fecon236

Your system pip will also obtain fecon236 from PyPI. Development versions may be installed using the --pre flag.

Details on dependencies are covered towards the end of this file.

Installing from a copy of fecon236

In this section, we assume you have a git clone of the repository, or (for non-git users) have unzipped the master branch obtained from: https://github.com/MathSci/fecon236/archive/master.zip

Here an excellent overall TUTORIAL for Python installation in general: https://packaging.python.org/tutorials/installing-packages especially regarding pip.

An egg is a Built Distribution format which is being replaced by wheel.

How are the versions named?

Semantic Versioning and more formally in PEP440

Within a numeric release (1.0, 2.7.3), the following suffixes are permitted and are be ordered as follows: .devN, aN, bN, rcN, <None>, .postN. Note that c is considered to be semantically equivalent to rc (release candidate) and must be sorted as if it were rc. Letters: "a" denotes alpha, "b" beta, whereas None will signify a Major.Minor release from the master branch. The ".post" suffix is used when code itself unaffected, for example, corrected typos in documentation.

fecon236 version specifics

In general, the version at PyPI (and thus the pip installed versions) will lag that of the "develop" branch at GitHub.

Version 10 denotes our effort to port and refactor only the source code from fecon235 (excluding the Jupyter notebooks). It will maintain compatibility with both python27 and python34 series.

After 2019-01-01, our official support for python27 will discontinue (like numpy and pandas), however, straddling code may still continue to work.

Version 11 is expected to require at least Python 3.6.

Installing pre-release versions

By default, pip only finds stable versions at PyPI. So to seek pre-release and development versions, in addition to stable versions: pip install --upgrade --pre fecon236

fecon236 docs :: DEPENDENCIES

Why is requirements.txt missing?

When we do continuous integration testing, we prefer the environment created by conda, rather than by pip. Travis CI automatically installs from requirements.txt when the language is Python -- which is something we want to intentionally avoid for that reason. This is the developers' preference, but the user may have different practices.

So, require.txt is designed to be COPIED as requirements.txt for the bare essentials, which excludes software optimizations such as MLK (Math Kernel Library) and LLVM, as well as Jupyter notebook and IPython console.

Translation: just get an Ana/Mini/conda distribution to fulfill the very complex dependencies which includes difficult binaries. The sad truth is that pip is incapable of dependency resolution.

On virtual environments

Reading the require.txt will be helpful in precisely setting your virtual environment.

conda environment is compatible with pip

However, there is a conda-aware version of pip which should be installed as: conda install pip or upgraded as: conda upgrade pip

The must-read article here is http://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions especially for those who rely on the numpy pandas stack. It includes a terrific comparison between virtualenv and conda environments.

Manual for conda environment: https://conda.io/docs/user-guide/tasks/manage-environments.html

Docker container

When fecon236 becomes stable, we plan to include its codebase, together with fecon235 notebooks, at https://hub.docker.com/r/rsvp/fecon235

References


Last update : 2018-05-15