This repository uses gofmt
to maintain code style and consistency.
Please run gofmt -s -w .
and go vet ./...
before pushing the commits.
Use go generate ./...
to generate mocks.
This Repo will incorporate all the recommendations of effective go doc and addition to that will be following Uber Go Style Guide
There are a few basic ground-rules for contributors:
- Non-main branches should be used for ongoing work.
- Make sure you use Linux or WSL to contribute to this Project. You won't be able to contribute to this project on a Windows Host.
- Pull requests must pass all the workflows and should have atleast one approval before merging into main.
- Workflows (non-exhaustive) includes Code Linters, Testers, PR Linters, PR Commit Linters, Issue/PR Template Linters, etc.
- Each PR has to be atomic. No additional code/feature is to be added/modified or removed unless in the scope of the PR title.
tests
are exempted from this rule unless the PR specifically havetest:*
as title. - Commits should be as atomic as possible. Don't commit before a small milestone is achieved. Use conventional commits to log commit messages. Divide the full issue into subtasks that are independent of each other and make a single commit for them. A commit should not have any errors/incomplete or dead code.
- PR is subject to be closed if commit conventions not followed.
- A Draft PR should have
wip
tag to indicate that its a draft PR. Remove the tag if ready to be reviewed. - Every PR is to be to merged using squash and merge. The final Commit message title should also conform to conventional commits spec.
- We will be following semantic versioning. This along with point will help in auto-generating changelogs.
- Everything is to be tracked through Github issues. Raise an issue with appropriate tags and link a PR with it.
- Any addition of third party dependency is to justified during Code Review.
- We don't mind force pushes as long as there are no additional diffs getting introduced, that are not in the scope of the PR.
- config
- source
- transformation
- destination
- service
- address
- doc
- collaboration
- event
- logger
- error
- dp
- intelsgx
PR subject must not start with Capital Letters.
- Normal PR Titles:
- ci: propose an automated way to generate changelogs
- refactor: migrate the ego-server code from different repo to dcr
- Breaking Change:
- feat!: create a collaboration.yaml
- Scoped Title:
- feat(config): enable use of relative addresses in config yaml
Declaring formal releases remains the prerogative of the project maintainer. First Release yet to be done.