These pages are for people interested in using the development copy of PETSc (called petsc-dev) or contributing to the PETSc libraries. This information is intended only for people who are experienced with building, using, and debugging PETSc. If you cannot use makefiles, a debugger, and EMACS etags, then please don't access these pages.

Consider joining petsc-dev mailing-list.

How to:

Browsing source:

One can browse the development repositories at the following location

Obtaining the development version of PETSc:

You have three options:
  1. download and install via Git (recommended)
  2. access tarballs directly from 'master' branch.
  3. access the nightly tarball snapshot at http://ftp.mcs.anl.gov/pub/petsc/petsc-dev.tar.gz

1. Using Git

Install Git if it is not already installed on your machine. Once Git is installed obtain petsc-dev with the following: PETSc can now be configured in the usual way, specified on the Installation page. To update your copy of petsc-dev Once updated, you will usually want to rebuild completely The Git download always has the latest version of petsc-dev. For additional help use

2. Tarball of 'master'

One can obtain the current petsc-dev repositories as tarball from the git server using the following URL:

Note 1:

This mode is useful if you are on a machine where you cannot install Git or if it has a firewall blocking http downloads.

After the tarballs is obtained - do the following:

To update this copy of petsc-dev, re-download the above tarball. The URL above gets the latest changes immediately when they are pushed to the repository.

3. Nightly tarball

The nightly tarball will be equivalent to the release tarball - with all the doumentation built. To use the nightly tarball snapshot, simply download http://ftp.mcs.anl.gov/pub/petsc/petsc-dev.tar.gz and extract it.

To update your copy of petsc-dev simply get a new copy of the tar file. The tar file at the ftp site is updated once each night [arround midnight CST] with the latest changes to petsc-dev.

Compiling and using the development copy (petsc-dev):

Use ./configure to install PETSc. If you have problems, please use the petsc-dev mailing list).

Building documentation:

The documentation tools listed below (except for pdflatex) are automatically downloaded and installed by ./configure.

Note: sowing and c2html have additional dependencies like gcc, g++, and flex and do not use compilers specified to PETSc configure. [Windows users please install the corresponding cygwin packages]

Once pdflatex (e.g., from TeX Live) is in your PATH, you can build the documentation with:

Sending patches to update the master copy of petsc-dev:

By submitting code, the contributor gives irretrievable consent to the redistribution and/or modification of the contributed source code as described in the PETSc open source license.

Please read the code standards chapter of the developer guide before sending patches.

One can send us changes to PETSc such as bug fixes or new feature additions via e-mail. Please refer to the PETSc developer wiki for detailed instructions on how to create a patch for PETSc using Git.

Once you have gained experience with developing PETSc source code, you can become an active member of our development and push changes directly to the petsc-dev repository. Send mail to petsc-maint@mcs.anl.gov to arrange it.

Developer guide:

The developer guide gives an overview of the design and detailed style specifications.

Nightly builds:

The logs for the nightly builds at

PETSc developers can automatically log into any PETSc test directory with ${PETSC_DIR}/bin/maint/petscgoto arch-of-test-system

The coverage(what lines of source code are tested in the nightly builds) can be found at http:/www.mcs.anl.gov/petsc/petsc-dev/index_gcov1.html