.. _contributors_guide:

Contributing
============

As with all `Astropy <https://www.astropy.org>`_ coordinated packages, **Specreduce** is
developed *by* the astrophysics community, *for* the astrophysics community. We warmly welcome
contributions of all kinds, whether it’s sharing feedback, reporting bugs, suggesting new
features, or improving code and documentation. Every contribution, big or small, helps make
Specreduce more useful and reliable for everyone.

Specreduce follows the `Astropy development and contribution guidelines
<https://docs.astropy.org/en/latest/index_dev.html>`_ and the
`Astropy Community Code of Conduct <https://www.astropy.org/code_of_conduct.html>`_.
By contributing, you agree to uphold these community standards, which help ensure that the
project remains a welcoming and inclusive space for all contributors.

Getting Started
---------------

If you’re new to open-source development or to the Astropy ecosystem, do not worry. The best place
to start is by visiting the
`Specreduce GitHub repository <https://github.com/astropy/specreduce>`_,
where you can find current issues, pull requests, and the latest development activity.

Before you begin contributing code, you may want to:

* Read through the Astropy developer documentation linked above.
* Explore the existing documentation and tutorials to get a sense of how Specreduce works.
* Comment on an issue to let others know you’d like to work on it — or open a new issue to
  discuss an idea or feature you’d like to propose.

Roadmap
-------

.. image::
   roadmap.png
   :align: center
   :width: 100%

Contribute feedback
-------------------

The Specreduce team values feedback from all users. If something doesn’t work as expected,
if you encounter a bug, or if you have an idea for an improvement, please let us know by opening
a new issue on the
`Specreduce GitHub issue tracker <https://github.com/astropy/specreduce/issues>`_.

For bug reports, please include:

* A short description of the problem.
* The version of Specreduce and Python you are using.
* A minimal example (if possible) that reproduces the issue.

For feature requests or usability feedback, describe your idea clearly and explain how it would
improve the user experience. Even short notes are valuable and help guide development priorities.


Contribute Code or Documentation
--------------------------------

If you see an open issue you’d like to work on, or if you’ve spotted an error or missing detail
in the documentation, you can submit your own improvements through GitHub.
To get started:

1. Fork the Specreduce repository and create a new branch for your changes.
2. Make your edits or additions, whether it’s a bug fix, a new feature, or a documentation update.
3. Commit your changes with a clear message describing what you did.
4. Open a pull request to the main repository.

Contribute Tutorials and Examples
---------------------------------

Tutorials and worked examples are among the most valuable contributions. They help other users
learn from real data and see how different tools fit together in practice.

While the main steps of spectroscopic reduction (for example, tracing, extraction, and wavelength
calibration) are similar across most instruments, the best workflow can still depend on the
setup and science goals. In the long term, we aim to build a library of example reduction recipes
for different instruments that users can adapt for their own observations.

If you have a reduction example, a notebook, or a teaching resource that might help others,
please share it, either by opening a pull request or by discussing it in an issue first.
We’re happy to help with formatting and integration into the documentation.

Staying in Touch
----------------

Development discussions happen mainly on GitHub, but you can also connect with the wider Astropy
community through the `Astropy Discussion Forum <https://community.openastronomy.org/c/astropy/>`_,
where you can ask questions, share ideas, and get advice from other developers and users.

Your contributions help make Specreduce and the Astropy ecosystem stronger and more sustainable.
Whether you fix a typo, improve a function, or share a new example, you are helping build a tool
that benefits the entire astrophysics community. Thank you for being part of it!

.. toctree::
    :maxdepth: 1
    :hidden:

    process/index
    terms