chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig)
Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
parent
19807bf0be
commit
e550d7e428
5 changed files with 119 additions and 0 deletions
12
.editorconfig
Normal file
12
.editorconfig
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.{md,yml,yaml,json,txt}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
22
.golangci.yml
Normal file
22
.golangci.yml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
run:
|
||||||
|
timeout: 5m
|
||||||
|
go: "1.26"
|
||||||
|
|
||||||
|
linters:
|
||||||
|
enable:
|
||||||
|
- govet
|
||||||
|
- errcheck
|
||||||
|
- staticcheck
|
||||||
|
- unused
|
||||||
|
- gosimple
|
||||||
|
- ineffassign
|
||||||
|
- typecheck
|
||||||
|
- gocritic
|
||||||
|
- gofmt
|
||||||
|
disable:
|
||||||
|
- exhaustive
|
||||||
|
- wrapcheck
|
||||||
|
|
||||||
|
issues:
|
||||||
|
exclude-use-default: false
|
||||||
|
max-same-issues: 0
|
||||||
35
CONTRIBUTING.md
Normal file
35
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
Thank you for your interest in contributing!
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
- **Go Version**: 1.26 or higher is required.
|
||||||
|
- **Tools**: `golangci-lint` and `task` (Taskfile.dev) are recommended.
|
||||||
|
|
||||||
|
## Development Workflow
|
||||||
|
1. **Testing**: Ensure all tests pass before submitting changes.
|
||||||
|
```bash
|
||||||
|
go test ./...
|
||||||
|
```
|
||||||
|
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
|
||||||
|
We follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:
|
||||||
|
- `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
|
||||||
|
|
||||||
|
Example: `feat: add new endpoint for health check`
|
||||||
|
|
||||||
|
## License
|
||||||
|
By contributing to this project, you agree that your contributions will be licensed under the **European Union Public Licence (EUPL-1.2)**.
|
||||||
|
|
@ -1,3 +1,7 @@
|
||||||
|
[](https://pkg.go.dev/forge.lthn.ai/core/go-ml)
|
||||||
|
[](LICENSE.md)
|
||||||
|
[](go.mod)
|
||||||
|
|
||||||
# go-ml
|
# go-ml
|
||||||
|
|
||||||
ML inference backends, multi-suite scoring engine, and agent orchestrator for the Lethean AI stack. The package provides pluggable backends (Apple Metal via go-mlx, managed llama-server subprocesses, and OpenAI-compatible HTTP APIs), a concurrent scoring engine that evaluates model responses across heuristic, semantic, content, and standard benchmark suites, 23 capability probes, GGUF model management, and an SSH-based agent orchestrator that streams checkpoint evaluation results to InfluxDB and DuckDB.
|
ML inference backends, multi-suite scoring engine, and agent orchestrator for the Lethean AI stack. The package provides pluggable backends (Apple Metal via go-mlx, managed llama-server subprocesses, and OpenAI-compatible HTTP APIs), a concurrent scoring engine that evaluates model responses across heuristic, semantic, content, and standard benchmark suites, 23 capability probes, GGUF model management, and an SSH-based agent orchestrator that streams checkpoint evaluation results to InfluxDB and DuckDB.
|
||||||
|
|
|
||||||
46
Taskfile.yml
Normal file
46
Taskfile.yml
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
test:
|
||||||
|
desc: Run all tests
|
||||||
|
cmds:
|
||||||
|
- go test ./...
|
||||||
|
|
||||||
|
lint:
|
||||||
|
desc: Run golangci-lint
|
||||||
|
cmds:
|
||||||
|
- golangci-lint run ./...
|
||||||
|
|
||||||
|
fmt:
|
||||||
|
desc: Format all Go files
|
||||||
|
cmds:
|
||||||
|
- gofmt -w .
|
||||||
|
|
||||||
|
vet:
|
||||||
|
desc: Run go vet
|
||||||
|
cmds:
|
||||||
|
- go vet ./...
|
||||||
|
|
||||||
|
build:
|
||||||
|
desc: Build all Go packages
|
||||||
|
cmds:
|
||||||
|
- go build ./...
|
||||||
|
|
||||||
|
cov:
|
||||||
|
desc: Run tests with coverage and open HTML report
|
||||||
|
cmds:
|
||||||
|
- go test -coverprofile=coverage.out ./...
|
||||||
|
- go tool cover -html=coverage.out
|
||||||
|
|
||||||
|
tidy:
|
||||||
|
desc: Tidy go.mod
|
||||||
|
cmds:
|
||||||
|
- go mod tidy
|
||||||
|
|
||||||
|
check:
|
||||||
|
desc: Run fmt, vet, lint, and test in sequence
|
||||||
|
cmds:
|
||||||
|
- task: fmt
|
||||||
|
- task: vet
|
||||||
|
- task: lint
|
||||||
|
- task: test
|
||||||
Loading…
Add table
Reference in a new issue