Contributing
Local Development Workflow
- Start development container (preferably in Visual Studio Code).
- Run
task servicesto start Kubernetes cluster, install ArgoCD + ingress controller, and testApplications. - Run
task go:run(to just run the server) ortask go:run:reloading(reload the server). - Run
task ts:installto install Node dependencies. - Run
task ts:devto start Svelte development server.
Submitting a PR
Pull requests are the best way to propose changes to the codebase (we use Github Flow). We actively welcome your pull requests:
- Fork the repo and create your branch from main.
- If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
Cutting a release
- Land your changes on
main. - Create a Release with a new semver tag.
- Github Actions will build new Docker image & CLI.
- Update the tangle-deployments repository with new application version (
Renovateusually gives you a handy PR!). - Bump chart version and create a new Helm release.
Formatting and Linting
Frontend and backend code both have automatic formatting and linting:
For Go: task go:fmt & task go:lint respectively.
For frontend: task ts:fmt & task ts:lint respectively.
Where possible, rules are enforced with pre-commit hooks.
Running Tests
Note: Both test suites will (eventually) include unit/integration tests. You need to run the server locally for tests to pass!
- Go tests can be run with
task go:tests - Frontend tests are WIP. ðŸ˜
Documentation
Run task python:serve to run local document server. Edit to your heart's content!