aboutsummaryrefslogtreecommitdiffstats
path: root/.github/contribute.md
blob: b349b974515aa807912320bf246d0b7d6ba51908 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# Contribute

> 👉 **Important**: this project has a [code of conduct][coc].
> By interacting with this repository and community you agree to abide by its
> terms.

This article explains how to contribute.
Please read through the following guidelines.

## Contributions

There are several ways to contribute, not just by writing code.
See [Support][] if you have questions.

### Financial support

You can help financially.
See [Sponsor][] for more info.

### Improve docs

As a user you’re perfect to help improve the docs.
Typo corrections, error fixes, better explanations, new examples, etcetera.

### Improve issues

Some issues lack information, aren’t reproducible, or are just incorrect.
You can help by trying to make them easier to resolve.
Existing issues might benefit from your unique experience or opinions.

### Write code

Code contributions are very welcome too.
It’s probably a good idea to first post a question or open an issue to report a
bug or suggest a new feature before creating a pull request.
See [Project][] for more info.

## Submitting an issue

*   the issue tracker is for issues, discussions are for questions
*   search the issue tracker (including closed issues) before opening a new
    issue
*   ensure you’re using the latest versions of packages and other tools
*   use a clear and descriptive title
*   include as much information as possible: steps to reproduce the issue,
    error message, version, operating system, etcetera
*   the more time you put into an issue, the better help you can get
*   the best issue report is a [failing test][unit-test] proving it

## Submitting a pull request

*   run `cargo fmt` and `cargo test` locally to format and test your changes
*   non-trivial changes are often best discussed in an issue first, to prevent
    you from doing unnecessary work
*   for ambitious tasks, you should try to get your work in front of the
    community for feedback as soon as possible
*   new features should be accompanied by tests and documentation
*   don’t include unrelated changes
*   write a convincing description of why your pull request should land:
    it’s your job to be convincing

## Project (for maintainers)

See [Project][project] in the readme for info on how the project is structured
and how to run useful scripts.

### Release

*   update the `version` field in `Cargo.toml`
*   search for the previous version in `readme.md`, replace with new one
*   `git commit --all --message 1.2.3 && git tag 1.2.3 && git push && git push --tags`
*   `cargo publish`

## Resources

*   [how to contribute to open source](https://opensource.guide/how-to-contribute/)
*   [making your first contribution](https://medium.com/@vadimdemedes/making-your-first-contribution-de6576ddb190)
*   [using pull requests](https://help.github.com/articles/about-pull-requests/)
*   [GitHub help](https://help.github.com)

## License

[CC-BY-4.0][license] © [Titus Wormer][author]

<!-- Definitions -->

[license]: https://creativecommons.org/licenses/by/4.0/

[author]: https://wooorm.com

[unit-test]: https://twitter.com/sindresorhus/status/579306280495357953

[support]: support.md

[coc]: code-of-conduct.md

[sponsor]: https://github.com/wooorm/markdown-rs/#sponsor

[project]: https://github.com/wooorm/markdown-rs/#project