Obtaining PSI4

Warning

As of v1.8, primary binary distribution has moved from the psi4 channel to the conda-forge channel. Neither install docs for users nor compile docs for developers have been updated yet to reflect new patterns. Please consult psicode downloads page for the latest guides.

How to obtain Psi4: start with find-the-code quiz, end in {top-level-psi4-dir}

A better decision tree is available at psicode.org/installs/latest, though the below remains valid.

Take a quiz to find the best version of the codebase for your needs, be it binary, tarball, or version-controlled repository. Or, select outright among:

  1. Binary Installer

  2. Conda Binary Package

  3. Clone from GitHub Repository

  4. Fork from GitHub Repository (only path to develop PSI4)

  5. Tarball from GitHub Repository

Find-the-code Quiz

A better decision tree is available at psicode.org/installs/latest, though the below remains valid.

  • I just want to run the code. I may tweak the Python, but I’m not developing anything to contribute back to the code base.

    • Provided I still get good, threaded BLAS/LAPACK, OpenMP parallelism, and optimization for a variety of processor architectures, I’m willing to forgo architecture tuning wizardry to avoid compiling it myself.

      • I’m on Linux or Mac (Intel or Silicon chips) or Windows (native or WSL/Ubuntu Bash Shell).

    • I want to compile it myself to eke out best performance on my computer. I accept responsibility for navigating compiler, threading, and BLAS/LAPACK compatibility

      • I’m willing to have minimal dealings with git (e.g., commands git clone and git pull) in return for easy access in future to new features and bug fixes. — Goto Clone-from-GitHub

      • I don’t want to deal with this newfangled git, just give me a tarball of the source code — Goto Tarball-from-GitHub

  • I want to run and develop in PSI4.

    • In keeping with the open-source philosophy, I don’t mind my code being as public as Psi4 itself during the development process. — Goto Fork-from-GitHub

    • I want to develop using PSI4 infrastructure and libraries, not on them; I think a plugin might do.

  • I really like parentheses and/or DBOC, so I want Psi3. — Psi3 is available from sourceforge, but you’re on your own.

Binary Installer

  • Get Initially

    Just go to http://www.psicode.org/downloads.html, select “Installer”, “Stable Release”, and your choice of architecture and Python version, and follow the instructions there.

  • Build

    Not applicable as binary is pre-built.

  • Get Updates directions

    >>> conda update psi4
    
  • Contribute Back

    Not applicable as not under git control.

Conda Binary Package

  • Get Initially

    The pre-compiled conda packages at https://anaconda.org/conda-forge/psi4 can be installed into an existing Anaconda or Miniconda distribution according to directions. Locally, install into a conda environment as below.

    >>> conda create -n p4env psi4 -c conda-forge/label/libint_dev -c conda-forge
    >>> conda activate p4env
    
    >>> # nightly build (Linux and Windows only)
    >>> conda create -n p4env psi4/label/dev::psi4 -c conda-forge/label/libint_dev -c conda-forge
    >>> # release
    >>> conda create -n p4env                 psi4 -c conda-forge/label/libint_dev -c conda-forge
    
  • Build

    Not applicable as binary is pre-built.

  • Get Updates directions

    >>> conda update psi4 -c conda-forge
    
  • Contribute Back

    Not applicable as not under git control.

Clone from GitHub Repository

  • Get Initially

    The PSI4 repository at https://github.com/psi4/psi4 works like every other GitHub repo. Locally, clone as below.

    # use https or ssh
    >>> git clone https://github.com/psi4/psi4.git
    >>> cd psi4
    # this is your {top-level-psi4-dir}
    
  • Build directions

  • Get Updates

    # on branch master
    >>> git pull origin master
    
  • Contribute Back

    Contributions cannot be made directly to the main repository. Fork instead.

    To convert clone to fork, go to https://github.com/psi4/psi4, and hit the Fork button to store a PSI4 repository in your GitHub account.

    >>> git remote rename origin upstream
    >>> git remote add origin https://github.com/johndoe/psi4.git
    

Fork from GitHub Repository

  • Get Initially

    Go to https://github.com/psi4/psi4, and hit the Fork button to store a PSI4 repository in your GitHub account. Locally, proceed to clone:

    # replace johndoe
    # use https or ssh
    >>> git clone https://github.com/johndoe/psi4.git
    >>> cd psi4
    # this is your {top-level-psi4-dir}
    

    Set up a connection between your forked repository and the parent repository.

    >>> git remote add upstream https://github.com/psi4/psi4.git
    
  • Build directions

  • Get Updates

    Locally, update your fork from the parent repository and store on GitHub at your fork.

    # on branch working_branch
    >>> git pull --rebase upstream master
    >>> git push origin working_branch
    

    Remember: Working in the master branch of a fork is considered bad practice.

  • Contribute Back

    PSI4 contributions process here and here. Consider preparing your contribution in a branch then issue a GitHub pull request.

Tarball from GitHub Repository

  • Get Initially

    Discouraged! From the PSI4 repository at https://github.com/psi4/psi4, hit the “Clone or download” then “Download ZIP” button. Locally, unpack as below.

    >>> unzip psi4-master.zip
    >>> cd psi4-master
    # this is your {top-level-psi4-dir}
    
  • Build directions

  • Get Updates

    Download new tarball and rebuild.

  • Contribute Back

    Not applicable as source not under git control.

What is the suggested GitHub workflow

_images/prflow.001.jpeg _images/prflow.002.jpeg _images/prflow.003.jpeg