closes #130 - CHANGELOG.md file for people who can view changelog from github --- `iris changelog` command: `iris changelog [version]` (e.g. iris changelog v0.5.1) `iris changelog -n 3` (see changelog of 3 latest releaseas) => `iris changelog` looks just like CHANGELOG.md, grouped headers and all. It only stops looking that way if we personally overwrite that release's description with something else => With 1-hour local cache (invalidated on updater-channel change), `--refresh` flag to bypass, graceful fallback to stale cache on GitHub rate-limiting --- - New auto update config ```toml # 0 = off (default, notify only), 1 = auto-install, 2 = always confirm first auto-update = 1 ``` - New just debug-changelog and just debug-autoupdate recipes (fully offline, mocked HTTP servers, no real network/config touched)
1.2 KiB
1.2 KiB
Development guide
This document outlines the development workflow, build system, and coding conventions for contributors working on the Iris codebase.
Environment setup
Clone the repository and sync dependencies:
git clone https://github.com/versenilvis/iris.git
cd iris
go mod tidy
Modular just command runner
We use just as our primary command runner. Recipes are organized into modular files under justfiles/:
justfiles/build.just([build]group):build,optimized-build,build-release <version>justfiles/dev.just([dev]group):run,config-init,reload,copyjustfiles/test.just([test]group):test,lint,analyze(aliasana)justfiles/gen.just([gen]group):gen-docsjustfiles/pkg.just([pkg]group):pkgjustfiles/debug.just([debug]group):debug,debug-update,debug-changelog,debug-notify,debug-install,debug-autoupdate
Run just -l to quickly view all available recipes organized by group.
Building and testing
Rapid hot-reload
just reload
Running unit tests
just test
# OR
go test -v ./...
Running linter
just lint
# OR
golangci-lint run ./...