|
| 1 | +--- |
| 2 | +layout: page |
| 3 | +title: Contribute |
| 4 | +order: 6 |
| 5 | +--- |
| 6 | + |
| 7 | +MDAnalysis is an open-source project that welcomes and encourages contributions from the community. Whether you're a developer, documentation writer, or interested in improving the website, there are many ways to get involved. |
| 8 | + |
| 9 | +You can contribute by **developing new features, fixing bugs, improving documentation, enhancing tutorials, contributing to MDAKits, improving the website, or engaging in discussions**. |
| 10 | + |
| 11 | +Contributions also extend to our **mentoring and outreach programs**, where participants gain hands-on experience in open-source development and scientific software. You can also contribute by **mentoring new contributors**, helping them navigate MDAnalysis, review their work, and share best practices. |
| 12 | + |
| 13 | +If you're new, you can start by participating in community conversations and mentoring programs. For more information on how you can participate, check out the [Community]({{ site.baseurl }}/pages/community/) and [Events]({{ site.baseurl }}/pages/events/) pages. |
| 14 | + |
| 15 | +The [MDAnalysis Project][] hosts several open-source repositories beyond the main library and MDAKits. You are welcome to contribute to any of them! Each repository typically has a `CONTRIBUTING.md` file to help you get started. If you’re unsure where to begin, you can: |
| 16 | + |
| 17 | +- Check the repository’s issue tracker for open tasks. |
| 18 | +- Submit a pull request for improvements. |
| 19 | +- Contact maintainers via [GitHub discussions][] or MDAnalysis [Community]({{ site.baseurl }}/pages/community/) forums. |
| 20 | + |
| 21 | +This page provides an overview of how you can contribute to the [Codebase](#contributing-to-the-codebase), [MDAKits](#contributing-to-mdakits), [Documentation](#contributing-to-the-documentation), or [Mentoring & Outreach Programs](#mentoring--outreach-programs). |
| 22 | + |
| 23 | +## Contributing to the Codebase |
| 24 | +If you are interested in developing new features, fixing bugs, or improving performance, contributing to the MDAnalysis main codebase is a great way to get involved. |
| 25 | + |
| 26 | +### Main Codebase Repository |
| 27 | +MDAnalysis is developed and maintained in the [MDAnalysis Main Code Repository]({{ site.github.repo }}), which contains: |
| 28 | + |
| 29 | +- The core library for molecular dynamics analysis. |
| 30 | +- The [API documentation]({{ site.docs.mdanalysis.url }}/stable/index.html), generated from in-code docstrings. |
| 31 | +- [Open issues]({{ site.github.issues }}), where contributions such as bug fixes and feature implementations are tracked. |
| 32 | + |
| 33 | +#### How to Get Started |
| 34 | +- Read the [Contributing to the Main Codebase]({{ site.docs.userguide.url }}/stable/contributing_code.html#working-with-mdanalysis-code) guide, which outlines all the necessary steps. |
| 35 | +- Browse [GitHub Issues]({{ site.github.issues }}) to find open tasks. Look for "good first issue" if you're a beginner. You can also report bugs or suggest improvements there. |
| 36 | +- Follow best practices, including |
| 37 | + - [Writing and Running Tests]({{ site.docs.userguide.url }}/stable/testing.html#testing) to ensure your changes work correctly. |
| 38 | + - [Updating the Documentation]({{ site.docs.userguide.url }}/stable/contributing_code.html#building-code-documentation) when making modifications. |
| 39 | + |
| 40 | +## Contributing to MDAKits |
| 41 | +[MDAKits]({{ site.mdakits.registry }}) are **community-driven projects** that extend MDAnalysis functionality. They allow researchers and developers to build tools tailored for specific workflows while staying within the MDAnalysis ecosystem. |
| 42 | + |
| 43 | +### MDAKits Registry |
| 44 | +The [MDAKits Registry]({{ site.mdakits.registry }}) lists active projects contributed by the community. These projects cover various applications, such as enhanced trajectory analysis, molecular simulations, and integration with machine learning frameworks. |
| 45 | + |
| 46 | +#### How to Get Started |
| 47 | +- Find open issues in [MDAKits GitHub Issues]({{ site.mdakits.issues }}). |
| 48 | +- Propose a new MDAKit by following the [MDAKits Guide]({{ site.mdakits.guide }}). |
| 49 | +- Contribute to an existing MDAKit by collaborating with maintainers to improve functionality, fix bugs, or add new features. |
| 50 | +- Explore existing MDAKits in the [MDAKits Registry]({{ site.mdakits.registry }}) to find projects that match your interests. Each entry includes functionality, installation instructions, and contribution guidelines. |
| 51 | + |
| 52 | +MDAKits follow MDAnalysis coding standards but operate independently. Contributions to these projects are highly encouraged and help expand the MDAnalysis ecosystem. |
| 53 | + |
| 54 | +## Contributing to the Documentation |
| 55 | +Good documentation is essential to making MDAnalysis accessible to users and developers. MDAnalysis maintains two types of documentation: the [User Guide]({{ site.docs.userguide.url }}) and the [API Reference]({{ site.docs.mdanalysis.url }}/stable/index.html). |
| 56 | + |
| 57 | +### User Guide |
| 58 | +The [User Guide]({{ site.docs.userguide.url }}/stable/index.html) provides tutorials and explanatory content to help users install and learn MDAnalysis. You can contribute by updating unclear explanations, adding new tutorials or examples, or fixing outdated information. |
| 59 | + |
| 60 | +#### How to Get Started |
| 61 | +- Work on the [User Guide Repository]({{ site.docs.userguide.repo }}). |
| 62 | +- Follow the [Contributing to the User Guide]({{ site.docs.userguide.url }}/stable/contributing_docs.html). |
| 63 | +- Check for open documentation-related issues in the [User Guide GitHub Issues]({{ site.docs.userguide.issues }}). |
| 64 | + |
| 65 | +### API Reference |
| 66 | +The [API reference]({{ site.docs.mdanalysis.url }}/stable/index.html) is **automatically generated** from *docstrings* in the codebase. It provides a structured reference for developers working with MDAnalysis. You can contribute by improving *docstrings* for functions, classes, and modules or updating outdated documentation. |
| 67 | + |
| 68 | +#### How to Get Started |
| 69 | +- Work on the [MDAnalysis Main Code Repository]({{ site.github.repo }}). |
| 70 | +- Follow the [API Documentation Contribution Guide]({{ site.docs.userguide.url }}/stable/contributing_code.html#working-with-mdanalysis-docs). |
| 71 | +- Browse open API documentation issues in [GitHub Issues]({{ site.github.issues }}). |
| 72 | + |
| 73 | +## Mentoring & Outreach Programs |
| 74 | +MDAnalysis has actively participated in various mentoring and outreach programs **to help students, researchers, and early-career contributors gain experience in open-source development and scientific software**. Through these programs, participants receive mentorship, contribute to real-world projects, and develop valuable skills in computational science and software engineering. |
| 75 | + |
| 76 | +### Stay informed |
| 77 | +For the latest announcements, deadlines, and project ideas, check out our [blog]({{ site.baseurl }}/blog/) where we share updates on participation and application guidelines. |
| 78 | + |
| 79 | +We have been involved in several mentoring initiatives: |
| 80 | + |
| 81 | +- **[Google Summer of Code (GSoC)](https://summerofcode.withgoogle.com/)** \ |
| 82 | + A global, remote program where students contribute to open-source projects under mentorship, enhancing their programming skills while engaging with the open-source community. |
| 83 | + |
| 84 | +- **[Google Season of Docs](https://developers.google.com/season-of-docs)** \ |
| 85 | + A program that connects technical writers with open-source projects to improve documentation quality and accessibility. |
| 86 | + |
| 87 | +- **[Outreachy](https://www.outreachy.org/)** \ |
| 88 | + A diversity-focused program offering paid remote internships to individuals underrepresented in tech, providing opportunities to contribute to open-source software. |
| 89 | + |
| 90 | +- **[Station1 Frontiers Fellowship](https://www.station1.org/sff)** \ |
| 91 | + A unique research and internship program designed for students in science and technology, promoting inclusive and socially impactful research. |
| 92 | + |
| 93 | +- **[CompChemURG](https://www.bindingsites.co.uk/home)** \ |
| 94 | + A mentoring initiative focused on computational chemistry, supporting undergraduates and early-career researchers in gaining expertise in the field. |
| 95 | + |
| 96 | +Many of our [core developers]({{ site.baseurl }}/governance/#mdanalysis-core-developers) started through these programs — consider joining and becoming part of the MDAnalysis community! |
| 97 | + |
| 98 | +### GSoC |
| 99 | +MDAnalysis has participated in Google Summer of Code for several years, mentoring students on a variety of open-source projects. Explore our past projects: |
| 100 | + |
| 101 | +- [GSoC 2025]({% post_url 2025-02-28-gsoc2025 %}) |
| 102 | +- [GSoC 2024]({% post_url 2024-02-27-gsoc2024 %}) |
| 103 | +- [GSoC 2023]({% post_url 2023-02-22-gsoc2023 %}) |
| 104 | +- [GSoC 2022]({% post_url 2022-03-07-gsoc2022 %}) |
| 105 | +- [GSoC 2021]({% post_url 2021-03-09-gsoc2021 %}) |
| 106 | +- [GSoC 2020]({% post_url 2020-02-22-gsoc2020 %}) |
| 107 | +- [GSoC 2019]({% post_url 2019-03-04-gsoc2019 %}) |
| 108 | +- [GSoC 2018]({% post_url 2018-02-14-gsoc2018 %}) |
| 109 | +- [GSoC 2017]({% post_url 2017-03-02-gsoc2017 %}) |
| 110 | +- [GSoC 2016]({% post_url 2016-04-26-gsoc %}) |
| 111 | + |
| 112 | +## Other Contributions |
| 113 | +If you are interested in contributing in other ways, such as writing a **blog post**, we welcome contributions that document your experience with MDAnalysis — whether it's learning the software, participating in a UGM, or working on a project. Feel free to reach out via the [Community]({{ site.baseurl }}/pages/community/) page for guidance on submitting a post. |
| 114 | + |
| 115 | +If you are interested in improving our website, you can refer to the [README file][] in the [Website Repository][]. While the website is already maintained by the MDAnalysis team, any fixes and updates are always welcome. |
| 116 | + |
| 117 | +[MDAnalysis Project]: https://github.com/MDAnalysis/ |
| 118 | +[GitHub discussions]: https://github.com/MDAnalysis/mdanalysis/discussions |
| 119 | +[Website Repository]: https://github.com/MDAnalysis/MDAnalysis.github.io |
| 120 | +[README file]: https://github.com/namiroues/MDAnalysis.github.io/blob/master/README.md |
| 121 | + |
0 commit comments