--- description: How to Contribute Back to the Avalanche Community --- # Contribute to Avalanche The last step to become a **real continual learning super-hero** ⚡ is to fall into a _radioactive dump_.☢️ Just kidding, it's much easier than that: you need to contribute back to _Avalanche_! There are no _superheroes_ that are not altruistic! {% hint style="info" %} In order to contribute to _Avalanche_, first of all you need to become familiar with all its features and the codebase structure, so if you have not followed the _"From Zero to Hero Tutorial"_ from the beginning we suggest to do it before starting to make changes. {% endhint %} First of all, [install _Avalanche_ in "_Developer Mode"_](../getting-started/how-to-install.md#developer-mode-install) _if you haven't already._ After you've familiarized with the _Avalanche_ codebase you have two roads ahead of you: 1. You can start working on a [open issue](../questions-and-issues/add-your-issue.md) \(we have dozen of them!\) 2. You can [submit a feature-request](../questions-and-issues/request-a-feature.md) and propose yourself to work on it. ![Examples of Avalanche Issues available on GitHub](../.gitbook/assets/issues.png) **In any of the two cases you'd need to follow the steps below**: 1. [Join our Slack](https://join.slack.com/t/continualai/shared_invite/enQtNjQxNDYwMzkxNzk0LTBhYjg2MjM0YTM2OWRkNDYzOGE0ZTIzNDQ0ZGMzNDE3ZGUxNTZmNmM1YzJiYzgwMTkyZDQxYTlkMTI3NzZkNjU) and **\#avalanche-dev** channel \(optional but recommended\) 2. ⭐_Star_ + 👁️_watch_ the repository. 3. Fork the repository. 4. Create or assign an existing issue/feature to yourself. 5. Make your changes. 6. Make a [Pull Request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-pull-requests) \(PR\). **The following rules should be respected:** * Use PEP8 coding style and work within the 80 columns limit. * Always pull before pushing a commit. * Try to assign to yourself one issue at a time. * Try closing an issue **within roughly 7 days**. If you are not able to do that, please break it down into multiple ones you can tackle more easily, or you can always remove your assignment to the issue! * If you add a new feature, please include also a _test_ and a usage example in your PR. Also, before making your PR **make sure** that the following commands return without any errors: ```bash pycodestyle avalanche tests examples python -m unittest discover -v ``` Otherwise fix them and run again these commands until everything is working correctly. You should also check if everything is working on GPUs, using the env variable `USE_GPU=True`: ```bash USE_GPU=True python -m unittest discover -v ``` Faster integrity checks can be run with the env variable `FAST_TEST=True` : ```bash USE_GPU=False FAST_TEST=True python -m unittest discover -v ``` **Contribute to the Avalanche documentation** Apart from the code, you can also contribute to the Avalanche documentation 📚! We use [Jupyter notebooks](https://jupyter.org/) to write the documentation, so both code and text can be smoothly inserted, and, as you may have noticed, all our documentation can be run on [Google Colab](https://colab.research.google.com/notebooks/intro.ipynb)! To contribute to the documentation you need to follow the steps below: 1. The notebooks are contained in the folder `notebooks`. The folder structure is specular to the documentation, so do not create or delete any folder. 2. Detect the notebook that you want to edit and do all the modifications 📝 3. Commit the changes and open a pull request (PR). 4. If your pull request will be accepted, your edited notebooks will be automatically converted and uploaded to the official Avalanche website 🎊! ## 🤝 Run it on Google Colab You can run _this chapter_ and play with it on Google Colaboratory: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ContinualAI/colab/blob/master/notebooks/avalanche/6.-contribute-to-avalanche.ipynb)