# Contributing (Contributing)= Contributions are what make it possible for the open source community to collaborate to build better solutions. All contributions are welcome and **greatly appreciated**. Everything helps the development of knowledge, and credit will always be given. There are multiple ways to contribute: ## Types of contributions ### Extending the SMIA base approach SMIA offers some extension methods to add new code to the base logic of the software. See how to develop an extension at [link to extension documentation page](https://smia.readthedocs.io/en/latest/). [//]: # (TODO FALTA POR AÑADIR EL ENLACE A LA PAGINA DE LA DOCUMENTACION DONDE SE EXPLICA COMO GENERAR UNA EXTENSION) ### Report Bugs A page has been set up within the GitHub repository available at [https://github.com/ekhurtado/SMIA/issues](https://github.com/ekhurtado/SMIA/issues) to share bugs, create conversations about feature requests and more. If a new entry is desired to be added, please include the following information: - The operating system and software version. - Some information about the local environment configuration. - Details on how the bug can be replicated. ### Fix Bugs The [GitHub issues page](https://github.com/ekhurtado/SMIA/issues) can be used to comment on existing bugs. Whatever tagged with ``bug``, ``help wanted`` or similar is open to anyone who wants to implement it. ### Submit Feedback The [GitHub issues page](https://github.com/ekhurtado/SMIA/issues) can be used to ask for new features. Whatever tagged with ``enhancement``, ``help wanted``, ``feature`` or similar is open to anyone who wants to implement it. In case of proposing a new feature: - Explain in detail how it would work. - Keep the feature simple and the scope as narrow as possible, to help implementation. ### Write Documentation One of the main objectives of the main contributors of the SMIA project is to provide good quality documentation. However, SMIA could always benefit from more documentation, either as part of official SMIA documents, in docstrings or even on the web in blog posts or articles and so on. New documentation can be offered via the [GitHub discussions page](https://github.com/ekhurtado/SMIA/discussions), by opening a new GitHub pull request or by contacting with the maintainers via the contact information. [//]: # (TODO pensar si añadir informacion de contacto) ## Third Party License In case of using additional dependencies please be sure that the licenses of these dependencies are compliant with the SMIA open-source license. ## Get Started! Ready to contribute? If there are any suggestions for improvement, a new issue can be opened or ``smia`` can be configured for local development. Here is how to do it: 1. Fork the [smia repository on GitHub](https://github.com/ekhurtado/SMIA). 2. Clone your fork locally: ``` git clone git@github.com:your_name_here/SMIA.git ``` 3. Open the project and create a branch for local development: ``` git checkout -b name-of-the-bugfix-or-new-feature ``` Now the changes can be made locally. 4. Commit the changes and push the new branch to GitHub: ``` git add . git commit -m "feat: " git push origin name-of-the-bugfix-or-new-feature ``` 5. Submit a pull request through the GitHub repository or contact with one of the previous mentioned mechanisms.