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 notify 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!

Justifying your contribution for academics

Contributing to the Astropy Project as a volunteer directly benefits the astronomical research community in tangible ways. Nevertheless, people employed in academic departments may be asked to justify their time and efforts in terms of direct benefit to their own department or organization. In this case it is worth highlighting the well-established role of community service in academia, including:

  • Referring journal papers
  • Reviewing proposals for funding or for an observatory time allocation committee
  • Serving on a conference science organizing committee
  • Serving on an external review committee such as the NASA Senior Review

These volunteer duties typically bring no direct benefit to the home department of a researcher, yet they are widely accepted as necessary to the functioning of global research astronomy. We should now add the following to the above list of community service duties:

  • Contribute to open source software projects that benefit astronomical research