Contribute to Astropy

The Astropy project is made both by and for its users, so we accept contributions of many kinds. We always welcome contributors who will abide by the Astropy Community Code of Conduct.

Contribute feedback

There are several ways in which you can give feedback.

Reporting Issues

If you have found a bug in Astropy please report it. The preferred way is to create a new issue on the Astropy GitHub issue page; that requires creating a free account on GitHub if you do not have one.

If you prefer not to create a GitHub account, please report the issue to either the astropy mailing list, the astropy-dev mailing list or sending a private email to the astropy core developers at feedback@astropy.org

Please include an example that demonstrates the issue that will allow the developers to reproduce and fix the problem. You may be asked to also provide information about your operating system and a full Python stack trace; the Astropy developers will walk you through obtaining a stack trace if it is necessary.

Contribute code or documentation

If you are interested in contributing fixes, code or documentation to Astropy (whether the core package or affiliated packages), you should join the astropy-dev mailing list/forum, and start looking at any related issues. In particular, we have introduced a labeling system used across most Astropy-related packages which will allow you to find good starting issues. A good label to start with is Package-novice which means you don't need much prior experience of the package. You can use the following links to find all the issues labelled this way and also labeled by how much work they involve:

You may also want to familiarize yourself with the developer documentation, particularly the coding and documentation guidelines.

Once you have a change to propose, if it's a simple fix to just a single file, you can even just browse to the appropriate file and use the "edit" button on github. If it's a more complex change, we suggest you follow the developer install instructions, and use that with Astropy's github page to issue a pull request with your changes. If you aren't familiar with github, we suggest you looking over our workflow documentation. Once your code is accepted, you are officially an Astropy contributor and eligible to be included on the author list of future publications.

If you want to propose a larger change to Astropy, there's a procedure for that: Astropy Proposals for Enhancement (APEs) (modeled after Python's PEPs). The sort of changes that APEs are intended for include plans for new sub-packages, wide-ranging code re-organizations, a new procedure needing review by a lot of the Astropy community, or an informational document on some decision for Astropy that you want remembered. For more background on APEs, check out APE #1 and the APE repository's README. There is also a wiki page on Astropy's github repository that has an overview of the existing APEs.

Develop an affiliated package

Whether you have an idea for a new Astronomy package, or already have a package that you want to integrate with the Astropy project, you can develop an affiliated package! You'll want to join the astropy-dev list so you can notifying other developers of your intent to develop an affiliated package, and the astropy-affiliated-maintainers mailing list to be kept informed of updates to the package template, as well as to have any dicussions related to setting up affiliated packages. Then you can check out the affiliated package guidelines and the template for new affiliated packages to get started. We can even create a repository for your affiliated package in the astropy organization on GitHub, if you ask on the mailing list!