2026-03-27 04:23:34 +00:00
|
|
|
<!-- SPDX-License-Identifier: EUPL-1.2 -->
|
|
|
|
|
|
2026-02-23 06:45:45 +00:00
|
|
|
# Contributing
|
|
|
|
|
|
|
|
|
|
Thank you for your interest in contributing!
|
|
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
- **Go Version**: 1.26 or higher is required.
|
2026-03-27 04:23:34 +00:00
|
|
|
- **Tools**: `golangci-lint` is recommended.
|
2026-02-23 06:45:45 +00:00
|
|
|
|
|
|
|
|
## Development Workflow
|
|
|
|
|
1. **Testing**: Ensure all tests pass before submitting changes.
|
|
|
|
|
```bash
|
2026-03-27 04:23:34 +00:00
|
|
|
go build ./...
|
2026-02-23 06:45:45 +00:00
|
|
|
go test ./...
|
2026-03-27 04:23:34 +00:00
|
|
|
go test -race ./...
|
|
|
|
|
go test -cover ./...
|
|
|
|
|
go mod tidy
|
2026-02-23 06:45:45 +00:00
|
|
|
```
|
|
|
|
|
2. **Code Style**: All code must follow standard Go formatting.
|
|
|
|
|
```bash
|
|
|
|
|
gofmt -w .
|
|
|
|
|
go vet ./...
|
|
|
|
|
```
|
|
|
|
|
3. **Linting**: We use `golangci-lint` to maintain code quality.
|
|
|
|
|
```bash
|
|
|
|
|
golangci-lint run ./...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Commit Message Format
|
2026-03-27 04:23:34 +00:00
|
|
|
We follow the [Conventional Commits](https://www.conventionalcommits.org/) specification using the repository format `type(scope): description`:
|
2026-02-23 06:45:45 +00:00
|
|
|
- `feat`: A new feature
|
|
|
|
|
- `fix`: A bug fix
|
|
|
|
|
- `docs`: Documentation changes
|
|
|
|
|
- `refactor`: A code change that neither fixes a bug nor adds a feature
|
|
|
|
|
- `chore`: Changes to the build process or auxiliary tools and libraries
|
|
|
|
|
|
2026-03-27 04:23:34 +00:00
|
|
|
Common scopes: `ratelimit`, `sqlite`, `persist`, `config`
|
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
fix(ratelimit): align module metadata with dappco.re
|
|
|
|
|
|
|
|
|
|
Co-Authored-By: Virgil <virgil@lethean.io>
|
|
|
|
|
```
|
2026-02-23 06:45:45 +00:00
|
|
|
|
2026-03-27 04:23:34 +00:00
|
|
|
## Licence
|
2026-02-23 06:45:45 +00:00
|
|
|
By contributing to this project, you agree that your contributions will be licensed under the **European Union Public Licence (EUPL-1.2)**.
|