|
| 1 | +# Contributing to igraph |
| 2 | + |
| 3 | +This outlines how to propose a change to igraph. |
| 4 | + |
| 5 | +## Fixing typos |
| 6 | + |
| 7 | +You can fix typos, spelling mistakes, or grammatical errors in the documentation directly using the GitHub web interface, |
| 8 | +as long as the changes are made in the _source_ file. |
| 9 | +This generally means you'll need to edit [roxygen2 comments](https://roxygen2.r-lib.org/articles/roxygen2.html) in an `.R`, not a `.Rd` file. |
| 10 | +You can find the `.R` file that generates the `.Rd` by reading the comment in the first line. |
| 11 | + |
| 12 | +## Bigger changes |
| 13 | + |
| 14 | +If you want to make a bigger change, it's a good idea to first file an issue and make sure someone from the team agrees that it’s needed. |
| 15 | +If you’ve found a bug, |
| 16 | +please file an issue that illustrates the bug with a minimal [reprex](https://www.tidyverse.org/help/#reprex) |
| 17 | +(this will also help you write a unit test, if needed). |
| 18 | +See the tidyverse guide on [how to create a great issue](https://code-review.tidyverse.org/issues/) for more advice. |
| 19 | + |
| 20 | +### Pull request process |
| 21 | + |
| 22 | +* Fork the package and clone onto your computer. |
| 23 | + If you haven't done this before, you can use `usethis::create_from_github("igraph/rigraph", fork = TRUE)`. |
| 24 | + |
| 25 | +* Install all development dependencies with `pak::pak()`, |
| 26 | + and then make sure the package passes R CMD check by running `devtools::check()`. |
| 27 | + If R CMD check doesn't pass cleanly, it's a good idea to ask for help before continuing. |
| 28 | +* Create a Git branch for your pull request (PR). |
| 29 | + You can use [usethis](https://usethis.r-lib.org/articles/pr-functions.html), GitHub Desktop, etc. |
| 30 | + |
| 31 | +* Make your changes, commit to git, and then create a PR. |
| 32 | + The title of your PR should briefly describe the change. |
| 33 | + The body of your PR should contain `Fixes #issue-number`. |
| 34 | + |
| 35 | +### Code style |
| 36 | + |
| 37 | +* New code should follow the tidyverse [style guide](https://style.tidyverse.org). |
| 38 | + You can use the [styler](https://CRAN.R-project.org/package=styler) package to apply these styles, but please don't restyle code that has nothing to do with your PR. |
| 39 | + |
| 40 | +* We use [roxygen2](https://cran.r-project.org/package=roxygen2), |
| 41 | + with [Markdown syntax](https://cran.r-project.org/web/packages/roxygen2/vignettes/rd-formatting.html), |
| 42 | + for documentation. |
| 43 | + |
| 44 | +* We use [testthat](https://cran.r-project.org/package=testthat) for unit tests. |
| 45 | + Please add test cases for the change you are proposing, or ask us for help. |
| 46 | + |
| 47 | +### Test files |
| 48 | + |
| 49 | +We strive to align script and test names. |
| 50 | +This is still a work-in-progress but the goal is to have code from `R/name.R` tested in `tests/testthat/test-name.R`. |
| 51 | +This allows easy toggling between the two files thanks to `usethis::use_test()` and `usethis::use_r()`. |
| 52 | + |
| 53 | +## Code of Conduct |
| 54 | + |
| 55 | +Please note that the igraph project is released with a [Contributor Code of Conduct](https://igraph.org/code-of-conduct.html). |
| 56 | +By contributing to this project you agree to abide by its terms. |
0 commit comments