Skip to content

Latest commit

 

History

History
41 lines (29 loc) · 1.66 KB

CONTRIBUTING.md

File metadata and controls

41 lines (29 loc) · 1.66 KB

New features

New features should be discussed. Open an issue before trying anything major. New features are not free to maintain and put a burden on the maintainers of the project, notably when it comes to fix bugs and when they interfer in future evolutions.

User friendliness

Network people are usually less savvy when it comes to complex systems. There are three pillars that Akvorado follows to make it easier for its target users:

  • docker compose to get started quickly for most setups
  • easy upgrades through automatic migrations (database and configuration)
  • documentation including configuration, exploitation, and troubleshooting

Style guide

Go formatter takes care of most issues. For the remaining points:

  • comments are sentence and should be capitalized
  • on the other hand, log messages are not and should not be capitalized
  • metrics should be named using Prometheus conventions

Git commits are prefixed with the component and sub-component of the feature: orchestrator/clickhouse: add some feature. Meta-component are also possible, like docs, build, or docker.

Testing

We do not aim for 100% code coverage, however most code should be covered by tests. This is a big task, but it pays when adding new features or refactoring. The test suite should run quick enough to not become a burden.

If possible, tests should not rely on external components, but when it becomes hard to do so, it is possible to spawns services through Docker. Locally, one can spawns them through docker compose -f docker/docker-compose-dev.yml. GitHub actions are using services to spawn them.