Skip to content

Commit 91b5d12

Browse files
hagen1778truepele
authored andcommitted
docs: update CONTRIBUTING.md with practical requirements (VictoriaMetrics#7087)
The change supposed to have more practical recommendations and reflect the real processes for maintaining the project. Signed-off-by: hagen1778 <[email protected]>
1 parent 293b426 commit 91b5d12

File tree

2 files changed

+48
-42
lines changed

2 files changed

+48
-42
lines changed

docs/CONTRIBUTING.md

Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -22,54 +22,60 @@ If you like VictoriaMetrics and want to contribute, then it would be great:
2222
- experience sharing with colleagues.
2323
- Convincing your management to sign [Enterprise contract](https://docs.victoriametrics.com/enterprise/) with VictoriaMetrics.
2424

25-
## Pull request checklist
26-
27-
Before sending a pull request to [VictoriaMetrics repository](https://github.com/VictoriaMetrics/VictoriaMetrics/) please make sure it **conforms all** the following checks:
28-
29-
- The pull request conforms [VictoriaMetrics goals](https://docs.victoriametrics.com/goals/).
30-
- The pull request conforms [`KISS` principle](https://en.wikipedia.org/wiki/KISS_principle). See [these docs](#kiss-principle) for more details.
31-
- The pull request contains clear description of the change, with links to the related GitHub issues and [docs](https://docs.victoriametrics.com/), if needed.
32-
- Commit messages contain concise yet clear descriptions. Include links to related GitHub issues in commit messages, if such issues exist.
33-
- All the commits are signed and include `Signed-off-by` line. Use `git commit -s` to include `Signed-off-by` your commits.
34-
See [this doc](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) about how to sign git commits.
35-
- All the lint checks are passing locally via `make check-all` command run from the VictoriaMetrics repository root.
36-
- All the tests are passing locally via `make test-full` command run from the VictoriaMetrics repository root.
37-
- If the change fixes some bug, it would be great to cover it by [tests](https://pkg.go.dev/testing) if it isn't covered yet by existsing tests.
38-
- If the change improves performance or reduces resource usage, then it would be great to add [benchmarks](https://pkg.go.dev/testing#hdr-Benchmarks)
39-
and mention benchmark results before and after the change in the description to the pull request.
40-
- If the change implements some specifications or uses some external APIs, then please provide permanent links to these specs and APIs
41-
directly in the relevant source code, in order to simplify further maintenance of the code.
42-
- If the change modifies the existing logic, make sure it doesn't break existing user setups after the upgrade.
43-
- Please investigate git commit history for the code you change in order to make sure your change doesn't break historical conventions in the modified code.
44-
45-
Further checks are optional for external contributions:
25+
## Issues
26+
27+
When making a new issue, make sure to create no duplicates. Use GitHub search to find whether similar issues exist already.
28+
The new issue should be written in English and contain concise description of the problem and environment where it exists.
29+
We'd very much prefer to have a specific use-case included in the description, since it could have workaround or alternative solutions.
30+
31+
When looking for an issue to contribute, always prefer working on [bugs](https://github.com/VictoriaMetrics/VictoriaMetrics/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
32+
instead of [enhancements](https://github.com/VictoriaMetrics/VictoriaMetrics/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement).
33+
Helping other people with their [questions](https://github.com/VictoriaMetrics/VictoriaMetrics/issues?q=is%3Aopen+is%3Aissue+label%3Aquestion) is also a contribution.
34+
35+
If you'd like to contribute to [documentation](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/docs) please
36+
read the [guideline](https://docs.victoriametrics.com/#documentation).
37+
38+
### Labels
39+
40+
We use [labels](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels)
41+
to categorize GitHub issues. We have the following labels:
42+
1. A component label: vmalert, vmagent, etc. Add this label to the issue if it is related to a specific component.
43+
1. An issue type: `bug`, `enhancement`, `question`.
44+
1. `enterprize`, assigned to issues related to ENT features
45+
1. `need more info`, assigned to issues which require elaboration from the issue creator.
46+
For example, if we weren't able to reproduce the reported bug based on the ticket description then we ask additional
47+
questions which could help to reproduce the issue and add `need more info` label. This label helps other maintainers
48+
to understand that this issue wasn't forgotten but waits for the feedback from user.
49+
1. `waiting for release`, assigned to issues that required code changes and those changes were merged to upstream, but not released yet.
50+
Once a release is made, maintainers go through all labeled issues, leave a comment about the new release, remove the label, and close the issue.
51+
1. `vmui`, assigned to issues related to https://docs.victoriametrics.com/#vmui or https://docs.victoriametrics.com/victorialogs/querying/#web-ui
4652

47-
- The change must be described in **clear user-readable** form at [docs/CHANGELOG.md](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/docs/CHANGELOG.md),
48-
since it is read by **VictoriaMetrics users** who may not know implementation details of VictoriaMetrics products. The change description must **clearly** answer the following questions:
49-
50-
- What does this change do? There is no need to provide technical details for the change, since they may confuse VictoriaMetrics users, who do not know Go.
51-
- Why this change is needed?
52-
53-
The change description must link to the related GitHub issues and the related docs, if any.
53+
## Pull request checklist
5454

55-
Tips for writing a good changelog message:
55+
Implementing a bugfix or enhancement requires sending a pull request to the [corresponding repository](https://github.com/orgs/VictoriaMetrics/repositories).
5656

57-
- Write a human-readable changelog message that describes the problem and the solution.
58-
- Use specific text, which can be googled by users interested in the change, such as an error message, metric name, command-line flag name, etc.
59-
- Provide a link to the related GitHub issue or pull request.
60-
- Provide a link to the relevant documentation if the change modifies user-visible behaviour of VictoriaMetrics producs.
57+
A pull request should contain the following attributes:
58+
1. Don't use `master` branch for making PRs, as it makes it impossible for reviewers to modify the change.
59+
1. All commits need to be [signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits).
60+
1. A clear and concise description of what was done and for what purpose.
61+
1. A link to the issue related to this change, if any.
62+
1. Tests proving that the change is effective. See [this style guide](https://itnext.io/f-tests-as-a-replacement-for-table-driven-tests-in-go-8814a8b19e9e) for tests.
63+
To run tests and code checks locally execute commands `make tests-full` and `make check-all`.
64+
1. Try to not extend the scope of the pull requests outside the issue, do not make unrelated changes.
65+
1. Documentation update, if needed. For example, adding a new flag or changing behavior of existing flags or features
66+
requires reflecting these changes in the documentation.
67+
1. A line in the [changelog](https://docs.victoriametrics.com/changelog/#tip) mentioning the change and related issue.
68+
1. Reviewers who you think have the best expertise on the matter.
6169

62-
- After your pull request is merged, please add a message to the issue with instructions for how to test the change you added before the new release.
63-
[Here is an example](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4048#issuecomment-1546453726).
64-
- Do not close the original issue before the change is released. In some cases Github can automatically close the issue once PR is merged. Re-open the issue in such case.
65-
- If the change introduces a new feature, this feature must be documented in **user-readable** form at the appropriate parts of [VictoriaMetrics docs](https://docs.victoriametrics.com/).
66-
The docs' sources are located in the [`docs` folder](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/docs).
70+
See good example of pull request [here](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/6487).
6771

68-
Examples of good changelog messages:
72+
To merge the PR it should be approved by at least one reviewer, all CI checks should be green.
6973

70-
* FEATURE: [vmagent](https://docs.victoriametrics.com/vmagent/): add support for [VictoriaMetrics remote write protocol](https://docs.victoriametrics.com/vmagent/#victoriametrics-remote-write-protocol) when [sending / receiving data to / from Kafka](https://docs.victoriametrics.com/vmagent/#kafka-integration). This protocol allows saving egress network bandwidth costs when sending data from `vmagent` to `Kafka` located in another datacenter or availability zone. See [this feature request](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1225).
74+
Once the PR is merged, check if related issues are still opened (GitHub may close it on PR merge).
75+
The issue should be closed only when the change gets included into an actual release.
7176

72-
* BUGFIX: [stream aggregation](https://docs.victoriametrics.com/stream-aggregation/): suppress `series after dedup` error message in logs when `-remoteWrite.streamAggr.dedupInterval` command-line flag is set at [vmagent](https://docs.victoriametrics.com/vmagent/) or when `-streamAggr.dedupInterval` command-line flag is set at [single-node VictoriaMetrics](https://docs.victoriametrics.com/).
77+
Label `waiting for release` is added to issues related to the merged PR. It makes easier for the person who makes the release
78+
to track the related tickets and update them once release is published.
7379

7480
## KISS principle
7581

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2689,7 +2689,7 @@ To update the documentation follow the steps below:
26892689
- To update other pages, apply changes to the corresponding file in [docs folder](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/docs).
26902690
- If your changes contain an image then see [images in documentation](https://docs.victoriametrics.com/#images-in-documentation).
26912691
- Create [a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
2692-
with proposed changes and wait for it to be merged.
2692+
with proposed changes and wait for it to be merged. See [contributing](https://docs.victoriametrics.com/contributing/).
26932693

26942694
Requirements for changes to docs:
26952695

0 commit comments

Comments
 (0)