Skip to content

Latest commit

 

History

History
137 lines (95 loc) · 5.11 KB

CONTRIBUTING.md

File metadata and controls

137 lines (95 loc) · 5.11 KB

Contributing to Uuid

Thank you for your interest in contributing to the Uuid Project!

For any questions, please make a post on Discussions or users.rust-lang.org.

All contributors need to follow our Code of Conduct.

Feature Requests

The uuid crate is stable so features that require breaking changes can't be accepted. There are bound to be usability gaps that can be filled with non-breaking features though!

If you have the chance, please search existing issues, as there is a chance that someone has already requested your feature.

File your feature request with a descriptive title, as this helps others find your request.

You can request your feature by following this link and filling it in.

We welcome pull requests for your own feature requests. Discussion should stay on the relevant issue to make it easier to find.

Adding new unstable dependencies

If a feature introduces a new unstable dependency then it needs to be private. That means traits and types from the unstable library can't be visible in uuid's own public API.

To implement unstable traits, see the precedent set by the zerocopy-unstable feature. It implements a public unstable trait on Uuid, but uses the uuid_unstable cfg flag.

Bug Reports

While no one likes bugs, they are an unfortunate reality in software. Remember we can't fix bugs we don't know about, so don't be shy about reporting.

If you have the chance, please search existing issues, as there is a chance that someone has already reported your error. This isn't strictly needed, as sometimes you might not what exactly you are looking for.

File your issue with a descriptive title, as this helps others find your issue.

Sometimes a backtrace may be needed. In that case, set RUST_BACKTRACE environment variable to 1. For example:

$ RUST_BACKTRACE=1 cargo build

We welcome pull requests for your own bug reports, provided they have been discussed.

Pull Requests

Pull requests(PRs) are the primary mechanism we use to change Uuid. GitHub itself has some great documentation on using the Pull Request feature. We use the "fork and pull" model described here, where contributors push changes to their personal fork and create pull requests to bring those changes into the source repository.

Unless the changes are fairly minor (like documentation changes or tiny patches), we require PRs to relevant issues.

Please open PRs against the main branch.

When you feel that the PR is ready, please ping one of the maintainers so they can review your changes.

Writing Documentation

Documentation is an important part of Uuid. Lackluster or incorrect documentation can cause headaches for the users of uuid. Therefore, improvements to documentation are always welcome.

We follow the documentation style guidelines as given by RFC 1574.

Issue Triage

Sometimes, an issue might stay open even after the relevant bug has been fixed. Other times, the bug report may become invalid. Or we may just forget about the bug.

You can help to go through old bug reports and check if they are still valid. You can follow this link to look for issues like this.

Fuzzing

We use cargo fuzz to fuzz test various parts of uuid. See their guide for more details on what fuzzing is and how to run the tests yourself.

Helpful Links

For people new to Uuid, and just starting to contribute, or even for more seasoned developers, some useful places to look for information are: