зеркало из https://github.com/mozilla/gecko-dev.git
128 строки
3.3 KiB
ReStructuredText
128 строки
3.3 KiB
ReStructuredText
|
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
|