Skip to content

Latest commit

 

History

History
88 lines (70 loc) · 4.13 KB

CONTRIBUTING.md

File metadata and controls

88 lines (70 loc) · 4.13 KB

How to Contribute

You can contribute in different ways:

  • pick up an issue and do the coding, preferably bugs over features
  • increase the test coverage of Auditor itself (but only for real logic)
  • improve the documentation
  • report bugs
  • suggest new features and improvements
  • spread the word

Before submitting an issue

  • If you're not using the latest master to generate API clients or server stubs, please give it another try by pulling the latest master as the issue may have already been addressed. Ref: Getting Started
  • Search the open issue and closed issue to ensure no one else has reported something similar before.
  • File an issue by providing all the required information.
  • Test with the latest master by building the JAR locally to see if the issue has already been addressed.
  • You can also make a suggestion or ask a question by opening an "issue".

Setup

All commands mentioned below are expected to be run from your project root location.

After cloning the repository in your local, you need to run the following command to install ktlintFormat git pre-commit hook:

./gradlew addKtlintFormatGitPreCommitHook

This ensures the files are formatted before checking in.

Build and test

To build the project, you need to run the following:

 ./gradlew clean build

This will build and test all the modules(core, client, app, etc). If you need to run test specifically, run following commands as per your needs:

./gradlew clean test -> Runs all unit tests
./gradlew clean integrationTest -> Runs all integrataion tests
./gradlew clean functionalTest -> Runs all functional tests

Adding/Updating dependencies

We are using refreshVersions to manage version upgrades. When you add a new dependency, please run the following:

./gradlew refreshVersionsMigrate

This will migrate the versions to versions.properties. To upgrade a specific dependency or all dependencies, run the following:

./gradlew refreshVersions

Above command will fetch the latest versions of all dependencies used in the project. you should pick the appropriate version to upgrade to. It can be done by copying the given version under comments and putting it against the said dependency property key.

Coding conventions

We follow the Kotlin Coding Conventions.

  • Minimize mutability
  • Choose self-explanatory names

You may find the current code base not 100% conform to the coding style and we welcome contributions to fix those.

Before submitting a PR

  • Search the open issue to ensure no one else has reported something similar and no one is actively working on similar proposed change.
  • If no one has suggested something similar, open an "issue" with your suggestion to gather feedback from the community.
  • It's recommended to fork the lowes/auditor repo & create a new git branch for the change so that the merge commit message looks nicer in the commit history.
  • We follow Conventional Commits Specification.
  • The commit message should be structured as follows:
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

[optional BREAKING CHANGE: <desctiption about breaking changes, if any>]

Tips

  • Smaller changes are easier to review
  • Add test case(s) to cover the change
  • Document the fix in the code to make the code more readable
  • Make sure test cases passed after the change
  • File a PR with meaningful title, description and commit messages.
  • To close an issue (e.g. issue 123) automatically after a PR is merged, use keywords "fix", "close", "resolve" in the PR description, e.g. closes #123. (Ref: closing issues using keywords)