1Contributing to Uuid
2---
3[Contributing to Uuid]: #contributing-to-uuid
4
5Thank you for your interest in contributing to the Uuid Project!
6
7* [Feature Requests](#feature-requests)
8* [Bug Reports](#bug-reports)
9* [Pull Requests](#pull-requests)
10* [Writing Documentation](#writing-documentation)
11* [Issue Triage](#issue-triage)
12* [Out-of-tree Contributions](#out-of-tree-contributions)
13* [Helpful Links](#helpful-links)
14
15For any questions, please make a post on [users.rust-lang.org][u-r-l-o], post
16on [uuid-rs mailing list] or join our [gitter] channel.
17
18> All contributors need to follow our [Code of Conduct].
19
20[Code of Conduct]: CODE_OF_CONDUCT.md
21
22# Feature Requests
23[Feature Requests]: #feature-requests
24
25The `uuid` crate is still in flux. All features desired may not be present. As
26such you are welcome to request for new features. Keep in mind that `uuid` is
27a general purpose library. We want to provide features that most users would
28find useful. As such not every feature may be accepted.
29
30If you have the chance, please [search existing issues], as there is a chance
31that someone has already requested your feature.
32
33File your feature request with a descriptive title, as this helps others find
34your request.
35
36You can request your feature by following [this link][Feature Request Link] and
37filling it in.
38
39> We welcome pull requests for your own feature requests, provided they have
40been discussed.
41
42[Feature Request Link]: https://github.com/uuid-rs/uuid/issues/new?template=Feature_request.md
43
44# Bug Reports
45[Bug Reports]: #bug-reports
46
47While no one likes bugs, they are an unfortunate reality in software. Remember
48we can't fix bugs we don't know about, so don't be shy about reporting.
49
50If you have the chance, please [search existing issues], as there is a chance
51that someone has already reported your error. This isn't strictly needed, as
52sometimes you might not what exactly you are looking for.
53
54File your issue with a descriptive title, as this helps others find your issue.
55
56Reporting a bug is as easy as following [this link][Bug Report Link] and
57filling it in.
58
59Sometimes a backtrace may be needed. In that case, set `RUST_BACKTRACE`
60environment variable to `1`. For example:
61
62```bash
63$ RUST_BACKTRACE=1 cargo build
64```
65
66> We welcome pull requests for your own bug reports, provided they have been
67discussed.
68
69[Bug Report Link]: https://github.com/uuid-rs/uuid/issues/new?template=Bug_report.md
70
71# Pull Requests
72[Pull Requests]: #pull-requests
73
74Pull requests(PRs) are the primary mechanism we use to change Uuid. GitHub itself
75has some [great documentation] on using the Pull Request feature. We use the
76"fork and pull" model described [here][fnp], where contributors push changes to
77their personal fork and create pull requests to bring those changes into the
78source repository.
79
80Unless the changes are fairly minor (like documentation changes or tiny
81patches), we require PRs to relevant issues.
82
83Please open PRs against branch:
84* `master` when making non-breaking changes
85* `breaking` when your changes alter the public API in a breaking manner
86
87If the pull request is still a work in progress, prepend`[WIP] ` in your
88title. `WIP bot` will make sure that the PR doesn't accidentally get merged.
89
90> Uuid Project has a minimum rust version policy. Currently `uuid` should
91compile with atleast `1.22.0`, and is enforced on our CI builds.
92
93When you feel that the PR is ready, please ping one of the maintainers so
94they can review your changes.
95
96[great documentation]: https://help.github.com/articles/about-pull-requests/
97[fnp]: https://help.github.com/articles/about-collaborative-development-models/
98
99# Writing Documentation
100[Writing Documentation]: #writing-documentation
101
102Documentation is an important part of Uuid. Lackluster or incorrect
103documentation can cause headaches for the users of `uuid`. Therefore,
104improvements to documentation are always welcome.
105
106We follow the documentation style guidelines as given by [RFC 1574].
107
108[RFC 1574]: https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md#appendix-a-full-conventions-text
109
110# Issue Triage
111[Issue Triage]: #issue-triage
112
113Sometimes, an issue might stay open even after the relevant bug has been fixed.
114Other times, the bug report may become invalid. Or we may just forget about the
115bug.
116
117You can help to go through old bug reports and check if they are still valid.
118You can follow [this link][lrus] to look for issues like this.
119
120[lrus]: https://github.com/uuid-rs/uuid/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-asc
121
122# Out-of-tree Contributions
123[Out-of-tree Contributions]: #out-of-tree-contributions
124
125You can contribute to Uuid in other ways:
126
127* Answer questions on [users.rust-lang.org][u-r-l-o], [uuid-rs mailing list] and/or
128[gitter] channel.
129* Find the [crates depending on `uuid`][dependent] and sending PRs to them,
130helping them keep their version of `uuid` up-to-date.
131
132[dependent]: https://crates.io/crates/uuid/reverse_dependencies
133
134# Helpful Links
135[Helpful Links]: #helpful-links
136
137For people new to Uuid, and just starting to contribute, or even for more
138seasoned developers, some useful places to look for information are:
139
140* The Wikipedia entry on [Universally Unique Identifier][wiki-uuid].
141* [RFC 4122] which gives the specification of Uuids.
142
143[wiki-uuid]: https://en.wikipedia.org/wiki/Universally_unique_identifier
144[RFC 4122]: https://www.ietf.org/rfc/rfc4122.txt
145
146[u-r-l-o]: https://users.rust-lang.org
147[uuid-rs mailing list]: https://uuid-rs.groups.io
148[gitter]: https://gitter.im/uuid-rs/Lobby
149[search existing issues]: https://github.com/uuid-rs/uuid/search?q=&type=Issues&utf8=%E2%9C%93
150