Navigation

git is the name of a source code management system. It is used to keep
track of changes made to code and to manage contributions coming from
several different people. If you want to read more about git right now
take a look at Git Basics.

If you have never used git before, allow one hour the first time you do
this. If you find this taking more than one hour, post in one of the
astropy forums to get help.

Trying out the development version of Astropy is useful in three ways:

More users testing new features helps uncover bugs before the feature is
released.

A bug in the most recent stable release might have been fixed in the
development version. Knowing whether that is the case can make your bug
reports more useful.

You will need to go through all of these steps before contributing any
code to Astropy. Practicing now will save you time later if you plan to
contribute.

Set up authentication so you don’t have to type your github password every
time you need to access github from the command line. The default method at
Set Up Git at GitHub may require administrative privileges; if that is a
problem, set up authentication
using SSH keys instead

We also recommend setting up git so that when you copy changes from your
computer to GitHub only the copy (called a branch) of Astropy that you are
working on gets pushed up to GitHub. If your version of git is 1.7.11 or,
greater, you can do that with:

gitconfig--globalpush.defaultsimple

If you skip this step now it is not a problem; git will remind you to do it in
those cases when it is relevant. If your version of git is less than 1.7.11,
you can still continue without this, but it may lead to confusion later, as you
might push up branches you do not intend to push.

Note

Make sure you make a note of which authentication method you set up
because it affects the command you use to copy your GitHub fork to your
computer.

If you set up password caching (the default method) the URLs will look like
https://github.com/your-user-name/astropy.git.

If you set up SSH keys the URLs you use for making copies will look
something like git@github.com:your-user-name/astropy.git.

One of the commands below will make a complete copy of your GitHub fork
of Astropy in a directory called astropy; which form you use depends
on what kind of authentication you set up in the previous step:

If there is an error at this stage it is probably an error in setting up
authentication.

Tell git where to look for changes in the development version of Astropy¶

Right now your local copy of Astropy doesn’t know where the development
version of Astropy is. There is no easy way to keep your local copy up to
date. In git the name for another location of the same repository is a
remote. The repository that contains the latest “official” development
version is traditionally called the upstream remote, but here we use a
more meaningful name for the remote: astropy.

Change into the astropy directory you created in the previous step and
let git know about about the astropy remote:

cdastropygitremoteaddastropygit://github.com/astropy/astropy.git

You can check that everything is set up properly so far by asking git to
show you all of the remotes it knows about for your local repository of
Astropy with gitremote-v, which should display something like:

Right now you have the development version of Astropy, but python will not
see it. Though there are more sophisticated ways of managing multiple versions
of Astropy, for now this straightforward way will work (if you want to jump
ahead to the more sophisticated method look at Python virtual environments).

Note

There are a couple of circumstances in which this quick method of
activating your copy of Astropy will NOT work and you need to go
straight to using a virtual python environment:

Several pages of output will follow the first time you do this; this wouldn’t
be a bad time to get a fresh cup of coffee. At the end of it you should see
something like Finishedprocessingdependenciesforastropy==0.3.dev6272.

To make sure it has been activated change to a different directory outside of
the astropy distribution and try this in python:

>>> importastropy>>> astropy.__version__'0.3.dev6272'

The actual version number will be different than in this example, but it
should have dev in the name.

Warning

Right now every time you run Python, the development version of astropy
will be used. That is fine for testing but you should make sure you change
back to the stable version unless you are developing astropy. If you want
to develop astropy, there is a better way of separating the development
version from the version you do science with. That method, using a
virtualenv, is discussed at Python virtual environments.

For now remember to change back to your usual version when you are
done with this.

Testing is an important part of making sure Astropy produces reliable,
reproducible results. Before you try out a new feature or think you have found
a bug make sure the tests run properly on your system.

If the test don’t complete successfully, that is itself a bug–please
report it.

To run the tests, navigate back to the directory your copy of astropy is in on
your computer, then, at the shell prompt, type:

pythonsetup.pytest

This is another good time to get some coffee or tea. The number of test is
large. When the test are done running you will see a message something like
this:

4741passed,85skipped,11xfailed

Skips and xfails are fine, but if there are errors or failures please
report them.