diff options
Diffstat (limited to 'vendor/petgraph/CONTRIBUTING.rst')
-rw-r--r-- | vendor/petgraph/CONTRIBUTING.rst | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/vendor/petgraph/CONTRIBUTING.rst b/vendor/petgraph/CONTRIBUTING.rst new file mode 100644 index 000000000..803c6bf87 --- /dev/null +++ b/vendor/petgraph/CONTRIBUTING.rst @@ -0,0 +1,127 @@ +Contributing to ``petgraph`` +============================ + +Hi! We'd love to have your contributions! If you want help or mentorship, reach +out to us in a GitHub issue, or ping ``bluss`` in `#rust on irc.mozilla.org`_ +and introduce yourself. + +.. _`\#rust on irc.mozilla.org`: irc://irc.mozilla.org#rust + +* `Building`_ + +* `Testing`_ + +* `Pull Requests`_ + + * `Bug Fixes`_ + + * `Performance Improvements`_ + + * `Implementing New Algorithms`_ + +* `Where We Need Help`_ + +* `Team`_ + +Building +-------- + +:: + + $ cargo build + +Testing +------- + +:: + + $ cargo test --features all + +Pull Requests +------------- + +All pull requests are reviewed by a team_ member before merging. + +Additionally, different kinds of pull requests have different requirements. + +Bug Fixes +......... + +We love getting bug fixes! + +Make sure to include a regression test, so that we can be sure that we never +accidentally re-introduce the bug again. + +Performance Improvements +........................ + +You made an algorithm faster? Awesome. + +When submitting performance improvement, include the following: + +* A new ``#[bench]`` function that exercises this code path, if one doesn't + already exist + +* Before and after ``cargo bench`` scores, optionally formatted using + `cargo-benchcmp`_ + +.. _`cargo-benchcmp`: https://github.com/BurntSushi/cargo-benchcmp + +Implementing New Algorithms +........................... + +Implementing new graph algorithms is encouraged! + +If you're going to implement a new algorithm, make sure that you do the +following: + +* Add a ``quickcheck`` property test for the new algorithm + +* Document what the algorithm does and in what situations it should be used + +* Document the big-O running time of the algorithm + +* Include links to relevant reading materials, such as a paper or Wikipedia + +* Make the algorithm work with generic graphs, constraining the generic graph + type parameter with our existing graph traits, like ``Visitable``, or with new + graph traits + +Any team_ member can review a pull request implementing a new algorithm, but the +final decision whether or not the algorithm is appropriate for inclusion in the +``petgraph`` crate is left to ``@bluss``. + +Additionally, assuming that the new algorithm is merged into ``petgraph``, you +are *strongly* encouraged to join the ``petgraph`` team_! *You* are the best +person to review any future bug fixes, performance improvements, and whatever +other changes that affect this new algorithm. + +Where We Need Help +------------------ + +* Issues labeled `"help wanted"`_ are issues where we could use a little help + from you. + +* Issues Labeled `"mentored"`_ are issues that don't really involve any more + investigation, just implementation. We've outlined what needs to be done, and + a team_ member has volunteered to help whoever claims the issue implement it, + and get the implementation merged. + +.. _`"help wanted"`: + https://github.com/bluss/petgraph/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22 + +.. _`"mentored"`: + https://github.com/bluss/petgraph/issues?q=is%3Aopen+is%3Aissue+label%3A%22mentored%22 + +Team +---- + +The ``petgraph`` team consists of: + +* ``@bluss`` +* ``@fitzgen`` + +We need more team members to help spread out reviewing and maintenance +responsibilities — want to join us? `Drop a comment in this issue!`_ + +.. _`Drop a comment in this issue!`: https://github.com/bluss/petgraph/issues/TODO |