Files
VERSE 87b91c45d7 feat: update changelog (#131)
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)
2026-08-07 17:16:18 +07:00

51 lines
1.2 KiB
Markdown

# 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:
```bash
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`, `copy`
- `justfiles/test.just` (`[test]` group): `test`, `lint`, `analyze` (alias `ana`)
- `justfiles/gen.just` (`[gen]` group): `gen-docs`
- `justfiles/pkg.just` (`[pkg]` group): `pkg`
- `justfiles/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
```bash
just reload
```
### Running unit tests
```bash
just test
# OR
go test -v ./...
```
### Running linter
```bash
just lint
# OR
golangci-lint run ./...
```