Contribution Guide
This project is more than a personal project. It's a community resource, made for the community. And you can be part of it.
This is an open-source project
Ultimate Rust is publicly available on GitHub, and that means it can evolve with the help of people like you. It doesn't matter if you found a typo, have a suggestion for improvement, want to propose a clearer example, or want to add a new exercise. Every contribution is welcome.
I need to be honest with you: this is my first book. That means that, no matter how carefully I wrote it, it's inevitable that there are writing errors, explanations that could be clearer, or even concepts that deserve to be expanded. And that's okay. It's part of the process.
That's exactly why I chose to make this book open-source. So it doesn't stagnate, but keeps improving over time, with the help of readers who care.
Ways to Contribute
You can contribute in several ways, and all of them are equally valuable:
Fixing writing or grammar errors. If you find a typo, incorrect agreement, or any grammatical issue, please open an issue or submit a pull request to fix it. Don't hesitate to point out small errors. They matter.
Suggesting improvements to explanations. If a concept wasn't clear to you, it's very likely it wasn't clear to other people either. Open an issue explaining what confused you and, if you have a suggestion for how to improve it, share it. This helps the book become more approachable.
Proposing new examples or exercises. If you created an example that illustrates a concept well, or if you have an exercise idea that would help readers practice, share it. The more varied the examples, the better the understanding.
Reporting technical issues. If any code in the book doesn't work, if something is outdated relative to the latest version of Rust, or if you found a compatibility issue, please report it. This ensures the book stays accurate and up to date.
Adding new content. If you feel a topic is missing, or that a chapter could benefit from an additional section, you can propose the addition. We'll discuss together how to integrate it best.
How to Make Your Contribution
The process is simple and follows the standard open-source contribution workflow on GitHub. You'll find the book's repository at github.com/richarddalves/ultimate-rust.
The rule is clear and straightforward: if you found something that needs to be fixed or improved, you have two options.
If you identified the problem but don't know how to fix it, or simply prefer that someone else implements the solution, open an issue describing what you found. Be specific about which page or section the problem is on, what's wrong, and if you have any idea of how it could be better, share that too. I or another contributor will take a look and resolve it in the future.
If you identified the problem and know how to fix it, or if you have a proposed improvement and want to implement it yourself, fork the repository, create a branch for your changes, make the necessary changes, and open a pull request. In the pull request, explain what you changed and why. I'll review your contribution carefully, and if everything is aligned with the book's proposal, it will be merged.
There's no contribution too small. A corrected typo is just as valuable as an entire revised chapter. What matters is that you care enough to want to make this book better.
Recognition for Contributors
Every accepted contribution will be recognized. When opening a pull request, you can add your name or nickname to the contributors list at the end of the book. It's a small but sincere way to say thank you for making this project better.
An Invitation
This book only gets better if you get involved. So, as you read, keep a watchful eye. If something doesn't make sense, if something could be better, or if you simply find a small mistake, don't keep it to yourself. Open an issue. Send a pull request. Be part of the construction of this book.
Together, we can create the best Rust resource that has ever existed.
Thank you for being here. Thank you for contributing.