********************************
Contributing to ``irispy-lmsal``
********************************

``irispy-lmsal`` is open-source and community-developed and we are always glad to welcome new contributors and users.
You can contribute in several ways, from providing feedback, reporting bugs, contributing code, and reviewing pull requests.
There is a role for almost any level of engagement.

Providing Feedback
==================

We could always use more voices and opinions in the discussions about ``irispy-lmsal`` and its development from both users and developers.
There are ways to make your voice heard.
Whether it be constructive criticism, inquiries about current or future capabilities, or flattering praise, we would love to hear from you.

Reporting Bugs
==============

If you run into unexpected behavior or a bug please report it.
All bugs are raised and stored on our `issue tracker`_.
If you are not sure if your problem is a bug, a deficiency in functionality, or something else, you can email ``freij@baeri.org``.
Ideally, we would like a short code example so we can run into the bug on our own machines.

Contributing Code
=================

If you would like to contribute code, it is strongly recommended that you first discuss your aims with the ``irispy-lmsal`` community.
We strive to be an open and welcoming community for developers of all experience levels.
Discussing your ideas before you start can give you new insights that will make your development easier, lead to a better end product, and reduce the chances of your work being regretfully rejected because of an issue you weren't aware of, e.g. the functionality already exists elsewhere.

In the rest of this section we will go through the steps needed to set up your system so you can contribute code to ``irispy-lmsal``.
This is done using `git`_ version control software and `GitHub`_, a website that allows you to upload, update, and share code repositories (repos).
If you are new to code development or git and GitHub you can learn more from the following guides:

* `SunPy Newcomers Guide`_
* `GitHub guide`_
* `git guide`_

The principles in the SunPy guides for contributing code and utilizing GitHub and git are exactly the same for ``irispy-lmsal`` except that we contribute to the irispy repository rather than the ``sunpy`` one.
If you are a more seasoned developer and would like to get further information, you can check out the `sunpy Developers Guide`_.

Before you can contribute code to irispy, you first need to install the development version of ``irispy-lmsal``.
To find out how, see :ref:`dev_install`.

.. _issue tracker: https://github.com/LM-SAL/irispy-lmsal/issues
.. _SunPy Newcomers Guide: http://docs.sunpy.org/en/latest/dev_guide/newcomers.html
.. _GitHub: https://github.com/
.. _git: https://git-scm.com/
.. _GitHub guide: https://github.com/git-guides
.. _git guide: https://git-scm.com/book/en/v2/Getting-Started-Git-Basics
.. _sunpy Developers Guide: http://docs.sunpy.org/en/latest/dev_guide
