mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
39 lines
3.5 KiB
Markdown
39 lines
3.5 KiB
Markdown
# Pull Request Guidelines
|
|
|
|
This document gives some guidelines to write and review PR with essential elements.
|
|
|
|
## Writing a Pull Request (PR):
|
|
|
|
- A PR should have a reasonable size and reflect only one idea, a feature, a bugfix, or a refactoring, to help review and limit regression in the app
|
|
- If a PR implements two different features, refactoring, or bug fixes, we prefer you to split it into several PRs
|
|
- New functionality and unit or integration tests for it should be developed in the same PR
|
|
- Every commit of all PRs should be compilable under all platforms. All tests should pass. So if changing of code breaks unit or integration tests these tests should be fixed
|
|
- Every commit should reflect a completed idea and have an understandable comment. Review fixes should be merged into one commit
|
|
- All commits and PR captions should be written in English.
|
|
- We suggest PRs should have prefixes in square brackets depending on the changed subsystem. For example, [routing], [generator], or [android]. Commits may have several prefixes (See `git log --oneline|egrep -o '\[[0-9a-z]*\]'|sort|uniq -c|sort -nr|less` for ideas.)
|
|
- Use imperative mood in commit's message, e.g. `[core] Fix gcc warnings` not `[core] Fixed gcc warnings`
|
|
- When some source files are changed and then some other source files based on them are auto-generated, they should be committed in different commits. For example, if you change style (mapcss) files, then put auto-generated files into a separate [styles] Regenerate commit
|
|
- All code bases should conform to ./docs/CPP_STYLE.md, ./docs/OBJC_STYLE.md, ./docs/JAVA_STYLE.md or other style in ./docs/ depending on the language
|
|
- The description field of every PR should contain a description to explain **what and why** vs. how.
|
|
- If your changes are visual (e.g. app UI or map style changes) then please add before/after screenshots or videos.
|
|
- Link Codeberg issues into the description field, [See tutorial](https://forgejo.org/docs/latest/user/linked-references/)
|
|
|
|
## Review a Pull Request (PR):
|
|
|
|
- All comments in PR should be polite and concern the PR
|
|
- It's better to ask the developer to make the code simpler or add comments to the codebase than to understand the code through the developer's explanation
|
|
- If a developer changes the PR significantly, the reviewers who have already approved the PR should be informed about these changes
|
|
- A reviewer should pay attention not only to the code base but also to the description of the PR and commits
|
|
- We prefer PRs to be approved by at least two reviewers. To have a different vision about how the feature/bugs are implemented or fixed, to help to find bugs and test the PR
|
|
- If a reviewer doesn't have time to review all the PR they should write about it explicitly. For example, LGTM for android part
|
|
- If a reviewer and a developer cannot find a compromise, a third opinion should be sought
|
|
- A PR which should not be merged after review should be marked as a draft.
|
|
|
|
## Recommendations:
|
|
|
|
- Functions and methods should not be long. In most cases, it's good if the whole body of a function or method fits on the monitor. It's good to write a function or a method shorter than 60 lines
|
|
- If you are solving a big task it's worth splitting it into subtasks and developing one or several PRs for every subtask.
|
|
- In most cases refactoring should be done in a separate PR
|
|
- If you want to refactor a significant part of the codebase, it's worth discussing it with all developers in an issue before starting work
|
|
- It's worth using the 'Resolve' conversation button to minimize the list of comments in a PR
|