Skip to content

Latest commit

 

History

History
83 lines (64 loc) · 2.72 KB

CONTRIBUTING.md

File metadata and controls

83 lines (64 loc) · 2.72 KB

Contributing

Ultrasonic development is a community project, and contributions are welcomed.

First, see if your issue haven’t been yet reported here, then, please, first discuss the change you wish to make via a new issue.

Contributing Translations

Interested in help to translate Ultrasonic? You can contribute in our Weblate team.

Contributing Code

By default, merge requests should be opened against the develop branch from your own branch, MR against the master branch should only be used for critical bug fixes.

Here are a few guidelines you should follow before submitting:

  1. License Acceptance: All contributions must be licensed as GNU GPLv3 to be accepted. Use git commit --signoff to acknowledge this.
  2. No Breakage: New features or changes to existing ones must not degrade the user experience.
  3. Coding standards: best-practices should be followed, comment generously, and avoid "clever" algorithms. Refactoring existing messes is great, but watch out for breakage.
  4. No large PR: Try to limit the scope of PR only to the related issue, so it will be easier to review and test.
  5. Make your own branch: When you send us a merge request, please do it from your own branch. Avoid using the develop branch.

Merge request process

On each merge request GitLab runs a number of checks to make sure there are no problems.

Take special note of point five of the previous paragraph. Do not use the develop branch, make your own. Not following this step will cause your merge request to be rejected without even checking it.

Signed commits

Commits must be signed. See here how to set it up.

KtLint

This programm checks if the source code is formatted correctly. You can run it yourself locally with

./gradlew -Pqc ktlintFormat

Running this command will fix common problems and will notify you of problems it couldn't fix automatically.

Detekt

Detekt is a static analyser. It helps to find potential bugs in our code. You can run it yourself locally with

./gradlew -Pqc detekt

There is a "baseline" file, in which errors which have been in the code base before are noted. Sometimes it is necessary to regenerate this file by running:

./gradlew -Pqc detektBaseline

Lint

Lint looks for general problems in the code or unused resources etc. You can run it with

./gradlew -Pqc lintRelease

If there is a need to regenerate the baseline, remove ultrasonic/lint-baseline.xml and rerun the command.