Contributing to AutoEmulate#

💫⚙️🤖 We’re excited that you’re here and want to contribute. 🤖⚙️💫

We want to ensure that every user and contributor feels welcome, included and supported to participate in the AutoEmulate community. Whether you’re a seasoned developer, a machine learning researcher, a data scientist, or just someone eager to learn and contribute, you are welcome here. We value every contribution, be it big or small, and we appreciate the unique perspectives you bring to the project.

We hope that the information provided in this document will make it as easy as possible for you to get involved. If you find that you have questions that are not discussed below, please let us know through one of the many ways to get in touch.

Important Resources#

If you’d like to find out more about AutoEmulate, make sure to check out:

  1. README: For a high-level overview of the project, please refer to our README.

  2. Documentation: For more detailed information about the project, please refer to our documentation.

How to Contribute#

This section provides a high-level guide to contributing to AutoEmulate, designed for those with little or no experience with open source projects. For more detailed information, please also refer to the docs for:

We welcome contributions of all kinds, be it code, documentation, or community engagement. We encourage you to read through the following sections to learn more about how you can contribute to the package.

How to Submit Changes#

We follow the same instructions for submitting changes to the project as those developed by The Turing Way. In short, there are five steps to adding changes to this repository:

  1. Fork the Repository: Start by forking the AutoEmulate repository.

  2. Make Changes: Ensure your code follows the existing code style (PEP 8) and passes all tests.

  3. Commit and Push: Use clear commit messages.

  4. Open a Pull Request: Ensure you describe the changes made and any additional details.

1. Fork the Repository#

Once you have created a fork of the repository, you now have your own unique local copy of AutoEmulate. Changes here won’t affect anyone else’s work, so it’s a safe space to explore edits to the code!

Make sure to keep your fork up to date with the main repository, otherwise, you can end up with lots of dreaded merge conflicts.

2. Make Changes#

After writing new code or modifying existing code, please make sure to:

It would be great if you could also update the documentation to reflect the changes you’ve made. If you plan to add a new emulator have a look at the contributing emulators docs.

3. Commit and Push#

While making your changes, commit often and write good, detailed commit messages. This blog explains how to write a good Git commit message and why it matters.

4. Open a Pull Request#

We encourage you to open a pull request as early in your contributing process as possible. This allows everyone to see what is currently being worked on. It also provides you, the contributor, feedback in real-time. GitHub has a nice introduction to the pull request workflow.

First-timers’ Corner#

Just to-reiterate: We welcome all contributions, no matter how big or small! If anything in this guide is unclear, please reach out to ask or simply ask questions in a PR or issue.

Reporting Bugs#

Found a bug? Please open an issue here on GitHub to report it. We have a template for opening issues, so make sure you follow the correct format and ensure you include:

  • A clear title.

  • A detailed description of the bug.

  • Steps to reproduce it.

  • Expected versus actual behavior.

Recognising Contributions#

All contributors will be acknowledged in the contributors section of the README.

AutoEmulate follows the all-contributors specifications. The all-contributors bot usage is described here.

To add yourself or someone else as a contributor, comment on the relevant Issue or Pull Request with the following:

@all-contributors please add username for contribution1, contribution2

You can see the Emoji Key (Contribution Types Reference) for a list of valid types and examples of how this command can be run in this issue. The bot will then create a Pull Request to add the contributor and reply with the pull request details.

PLEASE NOTE: Only one contributor can be added with the bot at a time! Add each contributor in turn, merge the pull request and delete the branch (all-contributors/add-<username>) before adding another one. Otherwise, you can end up with dreaded merge conflicts. Therefore, please check the open pull requests first to make sure there aren’t any open requests from the bot before adding another.

What happens if you accidentally run the bot before the previous run was merged and you got those pesky merge conflicts? (Don’t feel bad, we have all done it! 🙈) Simply close the pull request and delete the branch (all-contributors/add-<username>). If you are unable to do this for any reason, please reach out to us via email or open an issue, and one of our core team members will be very happy to help!

Need Help?#

If you’re stuck or need assistance:

  • Reach out via email for personalised assistance. (See Get in touch above for links.)

  • Consider pairing up with a another contributor for guidance. Contact us for guidance on this topic

Once again, thank you for considering contributing to AutoEmulate! We hope you enjoy your contributing experience.

Inclusivity#

We aim to make AutoEmulate a collaboratively developed project. We, therefore, require that all our members and their contributions adhere to our Code of Conduct. Please familiarise yourself with our Code of Conduct that lists the expected behaviours.

Every contributor is expected to adhere to our Code of Conduct. It outlines our expectations and ensures a safe, respectful environment for everyone.


These Contributing Guidelines have been adapted from the Contributing Guidelines of The Turing Way! (License: CC-BY)

Get in touch#

Email: For any inquiries, please reach out to lead Developer Martin Stoffel, mstoffel@turing.ac.uk.