|
<!--- |
|
Copyright 2025 The HuggingFace Team. All rights reserved. |
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); |
|
you may not use this file except in compliance with the License. |
|
You may obtain a copy of the License at |
|
|
|
http://www.apache.org/licenses/LICENSE-2.0 |
|
|
|
Unless required by applicable law or agreed to in writing, software |
|
distributed under the License is distributed on an "AS IS" BASIS, |
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
See the License for the specific language governing permissions and |
|
limitations under the License. |
|
--> |
|
|
|
# Contribute to smolagents |
|
|
|
Everyone is welcome to contribute, and we value everybody's contribution. Code |
|
contributions are not the only way to help the community. Answering questions, helping |
|
others, and improving the documentation are also immensely valuable. |
|
|
|
It also helps us if you spread the word! Reference the library in blog posts |
|
about the awesome projects it made possible, shout out on Twitter every time it has |
|
helped you, or simply ⭐️ the repository to say thank you. |
|
|
|
However you choose to contribute, please be mindful and respect our |
|
[code of conduct](https://github.com/huggingface/smolagents/blob/main/CODE_OF_CONDUCT.md). |
|
|
|
**This guide was heavily inspired by the awesome [scikit-learn guide to contributing](https://github.com/scikit-learn/scikit-learn/blob/main/CONTRIBUTING.md).** |
|
|
|
## Ways to contribute |
|
|
|
There are several ways you can contribute to smolagents. |
|
|
|
* Submit issues related to bugs or desired new features. |
|
* Contribute to the examples or to the documentation. |
|
* Fix outstanding issues with the existing code. |
|
|
|
> All contributions are equally valuable to the community. 🥰 |
|
|
|
## Submitting a bug-related issue or feature request |
|
|
|
At any moment, feel welcome to open an issue, citing your exact error traces and package versions if it's a bug. |
|
It's often even better to open a PR with your proposed fixes/changes! |
|
|
|
Do your best to follow these guidelines when submitting a bug-related issue or a feature |
|
request. It will make it easier for us to come back to you quickly and with good |
|
feedback. |
|
|
|
### Did you find a bug? |
|
|
|
The smolagents library is robust and reliable thanks to users who report the problems they encounter. |
|
|
|
Before you report an issue, we would really appreciate it if you could **make sure the bug was not |
|
already reported** (use the search bar on GitHub under Issues). Your issue should also be related to bugs in the |
|
library itself, and not your code. |
|
|
|
Once you've confirmed the bug hasn't already been reported, please include the following information in your issue so |
|
we can quickly resolve it: |
|
|
|
* Your **OS type and version**, as well as your environment versions (versions of rust, python, and dependencies). |
|
* A short, self-contained, code snippet that allows us to reproduce the bug. |
|
* The *full* traceback if an exception is raised. |
|
* Attach any other additional information, like screenshots, you think may help. |
|
|
|
### Do you want a new feature? |
|
|
|
If there is a new feature you'd like to see in smolagents, please open an issue and describe: |
|
|
|
1. What is the *motivation* behind this feature? Is it related to a problem or frustration with the library? Is it |
|
a feature related to something you need for a project? Is it something you worked on and think it could benefit |
|
the community? |
|
|
|
Whatever it is, we'd love to hear about it! |
|
|
|
2. Describe your requested feature in as much detail as possible. The more you can tell us about it, the better |
|
we'll be able to help you. |
|
3. Provide a *code snippet* that demonstrates the feature's usage. |
|
4. If the feature is related to a paper, please include a link. |
|
|
|
If your issue is well written we're already 80% of the way there by the time you create it. |
|
|
|
## Do you want to add documentation? |
|
|
|
We're always looking for improvements to the documentation that make it more clear and accurate. Please let us know |
|
how the documentation can be improved such as typos and any content that is missing, unclear or inaccurate. We'll be |
|
happy to make the changes or help you make a contribution if you're interested! |
|
|
|
## Fixing outstanding issues |
|
|
|
If you notice an issue with the existing code and have a fix in mind, feel free to [start contributing](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) and open |
|
a Pull Request! |
|
|
|
### Making code changes |
|
|
|
To install dev dependencies, run: |
|
``` |
|
pip install -e ".[dev]" |
|
``` |
|
|
|
When making changes to the codebase, please check that it follows the repo's code quality requirements by running: |
|
To check code quality of the source code: |
|
``` |
|
make quality |
|
``` |
|
|
|
If the checks fail, you can run the formatter with: |
|
``` |
|
make style |
|
``` |
|
|
|
And commit the changes. |
|
|
|
To run tests locally, run this command: |
|
```bash |
|
make test |
|
``` |
|
</details> |
|
|
|
## I want to become a maintainer of the project. How do I get there? |
|
|
|
smolagents is a project led and managed by Hugging Face. We are more than |
|
happy to have motivated individuals from other organizations join us as maintainers with the goal of helping smolagents |
|
make a dent in the world of Agents. |
|
|
|
If you are such an individual (or organization), please reach out to us and let's collaborate. |
|
|