Contributing to karma

Getting Started

To get started follow Building from source section of the README file.

Git tags and branches

Every release tag name will follow vX.Y.Z naming scheme, example: v0.1.0. All releases are tagged against the main branch.

Commit messages

Conventional Commits format is required for all commits.

Testing changes

To run included tests and linters run:

make test

Some backend tests are using snapshot files. To update those snapshots after a breaking change run tests using:

UPDATE_SNAPSHOTS=1 go test -count=1 ./cmd/karma

Vendoring dependencies

Go modules are used for managing dependecies. After adding new or removing exitsting depenencies please run

go mod tidy

to update go.mod and go.sum files.

Javascript & CSS assets

UI is written using React, follow user guide for create-react-app to make changes to the UI code.

Some UI tests are using snapshots. After making changes that affect how existing components are rendered please run:

cd ui && npm test -- -u

to update all snapshots. Remember to commit those changes when making a pull request.

Running

To build and start karma from local branch see Running section of the README file.