make testβ run all unit tests (go test -v ./... -race -coverprofile=coverage.txt -covermode=atomic)make lintβ run linter (golangci-lint run -v ./... --timeout 5m)make build-aikitβ build the AIKit Docker image viadocker buildxmake build-test-modelβ build a test model image from a YAML aikitfile- Run
go mod tidyafter changing dependencies; CI verifiesgo.mod/go.sumare clean
- golangci-lint v2 with formatters:
gofmt,gofumpt,goimports,gci(import ordering) - Key linters enforced:
errcheck,errorlint,gosec,govet,staticcheck,revive,goconst,gocritic,godot,forcetypeassert,unconvert,unused,whitespace,misspell(US locale) - Max line length: 200 characters
- End every comment with a period (enforced by
godot) - All files must end with a newline and have no trailing whitespace (pre-commit hooks)
- PR titles must follow conventional commits:
feat,fix,build,chore,ci,docs,perf,refactor,revert,style,test - Pre-commit hooks run:
gitleaks(secret scanning),golangci-lint,shellcheck,typos
- Module path:
github.com/kaito-project/aikit - Go 1.24.3 minimum, toolchain go1.26.1
- Use
github.com/pkg/errorsfor error wrapping (notfmt.Errorfwith%w) - Logging via
github.com/sirupsen/logrus - YAML parsing via
gopkg.in/yaml.v2
cmd/frontend/β BuildKit frontend entrypointpkg/aikit/config/β aikitfile YAML config structs and parsingpkg/aikit2llb/β converts aikitfile configs to BuildKit LLB (inference/ and finetune/ subdirs)pkg/build/β build orchestration and validationpkg/packager/β OCI artifact packaging following CNCF ModelPack specmodels/β pre-made model YAML configsrunners/β runner definition YAMLs (llama-cpp-cpu, llama-cpp-cuda, vllm-cuda, diffusers-cuda)test/β test aikitfile YAML fixtures