1_Obtaining

Lori A. Burns edited this page Apr 28, 2017 · 34 revisions

STOP! This page is out-of-date and is superseded by the docs

###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. 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 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

    • 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. Goto Psi3-from-SourceForge.

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


Binary

  • Get Initially

    Just go to [http://www.psicode.org/downloads.html] and follow the instructions there.

  • Build

    Not applicable as binary is pre-built.

  • Get Updates

conda update psi4


* ##### Contribute Back

Not applicable as not under git control.


---
### <a name="clonepsi4public"></a>Clone from Public GitHub Repository

* ##### Get Initially

The Psi4 repository at https://github.com/psi4/psi4 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/psi4.git
>>> cd psi4
# this is your $top-level-psi4-dir

on branch master

git pull 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


---
### <a name="forkpsi4public"></a>Fork from Public GitHub Repository

* ##### Get Initially
Go to https://github.com/psi4/psi4, and hit the [Fork](https://help.github.com/articles/fork-a-repo/) button to store a Psi4 repository in your GitHub account. Locally, proceed to clone:

```bash
# 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 between your forked repository and the parent repository.

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

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

on branch working_branch

git fetch upstream git rebase upstream/master git push origin working_branch


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

* ##### 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/). Psi4 [contributions](https://github.com/psi4/psi4/blob/master/CONTRIBUTING.md) process.

---

### <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
  • Build
  • Get Updates

    Locally, update your fork from the parent repository and store on GitHub at your fork. psi4private/master should never be modified by humans.

on branch master

git pull origin master git fetch upstream git merge upstream/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
  • Build
  • 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.