Skip to content
Lori A. Burns edited this page Feb 17, 2016 · 34 revisions

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

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. Conda Binary
  2. Clone from Public GitHub Repository (read-only unless core developer)
  3. Tarball from Public GitHub Repository
  4. Fork from Public GitHub Repository
  5. Fork from Private Mirror GitHub Repository (with permission)
  6. Clone from Private Mirror GitHub Repository (core developers only)
  7. Psi3 from SourceForge

Find-the-code Quiz

  • 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, I’m willing to sacrifice processor architecture tuning to avoid compiling it myself.

      • I'm on Linux. Goto Binary

      • I'm on Mac. Binary forthcoming as soon as I get a chance to work on it. Meanwhile, Goto ???

    • I want to compile it myself for best performance on my computer.

      • 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 have scientific competitors, and I don't want to get scooped. Goto Fork-from-GitHub-Private

    • something about plugins

  • I really like parentheses and/or DBOC, so I want Psi3. Goto Psi3-from-SourceForge.

  • I am a core Psi4 developer, yet I'm still taking this quiz.


Conda Binary

  • Get Initially

    Follow instructions for download and installation of both conda and Psi4. Key command as follows.

conda install -c https://conda.anaconda.org/psi4 psi4


* ##### Build

Not applicable as binary is pre-built.

* ##### Get Updates

```bash
>>> conda update psi4
  • Contribute Back

    Not applicable as not under git control.


Clone from Public GitHub Repository

use https or ssh

git clone --recursive https://github.com/psi4/psi4.git cd psi4

this is your $top-level-psi4-dir


* ##### [Build](3_Building)

* ##### Get Updates

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

    Not applicable unless core developer, in which case:

on branch master

git pull origin master git push origin master



---
### <a name="clonepsi4private"></a>Clone from Private Mirror GitHub Repository

* ##### Get Initially

The Psi4 repository at https://github.com/psi4/psi4private works like [every other GitHub repo](https://help.github.com/articles/which-remote-url-should-i-use/). Locally, clone as below.

```bash
# use https or ssh
>>> git clone --recursive https://github.com/psi4/psi4private.git
>>> cd psi4private
# this is your $top-level-psi4-dir

on branch master

git pull origin master


* ##### Contribute Back

Core developers can store private branches at will. Commits to master are eligible for publishing on the public repository.

```bash
# on branch master
>>> git pull origin master
>>> git push origin master

Fork from Public GitHub Repository

replace johndoe

use https or ssh

git clone --recursive https://github.com/johndoe/psi4.git cd psi4

this is your $top-level-psi4-dir


[Set up a connection](https://help.github.com/articles/configuring-a-remote-for-a-fork/) between your forked repository and the parent repository.

```bash
>>> git remote add upstream https://github.com/psi4/psi4.git
  • Get Updates

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

on branch master

git pull origin master git fetch upstream git merge upstream/master git push origin master


* ##### Contribute Back

Consider [preparing your contribution in a branch](http://blog.jasonmeridth.com/posts/do-not-issue-pull-requests-from-your-master-branch/) then issue a [GitHub pull request](https://help.github.com/articles/creating-a-pull-request/)

---

### <a name="forkpsi4private"></a>Fork from Private Mirror GitHub Repository

* ##### Get Initially

E-mail a [Professor-in-charge](http://psicode.org/developers.php) with your situation and your GitHub username to arrange collaborator access to the private GitHub repository. After you've received e-mail from GitHub notifying you've been added to the repo and *are logged in to GitHub*, https://github.com/psi4/psi4private should be accessible. Hit the [Fork](https://help.github.com/articles/fork-a-repo/) button to store a non-public Psi4 repository in your GitHub account without associated fees. Locally, proceed to clone:

```bash
# replace johndoe
# use https or ssh
>>> git clone --recursive https://github.com/johndoe/psi4private.git
>>> cd psi4private
# 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/psi4private.git
  • Get Updates

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

on branch master

git pull origin master git fetch upstream git merge upstream/master git push origin master


* ##### Contribute Back

Consider [preparing your contribution in a branch](http://blog.jasonmeridth.com/posts/do-not-issue-pull-requests-from-your-master-branch/) then issue a [GitHub pull request](https://help.github.com/articles/creating-a-pull-request/)


---
### <a name="tarballpsi4public"></a>Tarball from Public GitHub Repository

* ##### Get Initially

From the Psi4 repository at https://github.com/psi4/psi4, hit the "Download ZIP" button. Locally, unpack as below.

```bash
>>> unzip psi4-master.zip
# leave the zip file here during build for version info
>>> cd psi4-master
# this is your $top-level-psi4-dir
  • Get Updates

    Download new tarball and rebuild.

  • Contribute Back

    Not applicable as source not under git control.


Psi3 from SourceForge

  • Get Initially

    A tarball of the most recent version of Psi3 (3.4.0 circa 2009) is available from SourceForge

  • Build

    Follow the INSTALL file that comes with the distribution. An old computer is probably handy for generating a working executable.

  • Get Updates

    Updates are not forthcoming.

  • Contribute Back

    This code is not under any development.