summaryrefslogtreecommitdiffstats
path: root/vendor/petgraph/CONTRIBUTING.rst
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/petgraph/CONTRIBUTING.rst')
-rw-r--r--vendor/petgraph/CONTRIBUTING.rst127
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