-
Clone the repository:
git clone https://github.com/appthrust/kutelog.git cd kutelog
-
Enter development shell:
devbox shell
Or if you have direnv installed and enabled:
direnv allow
This will make the following tools available:
- Go
- Bun
- Biome
- just
- kind
- kubectl
-
Install dependencies:
cd pkg/emitters/websocket/static bun install
-
Start frontend development server (in a new terminal):
cd pkg/emitters/websocket/static bun run dev # runs build in watch mode
-
Start backend server (in another terminal):
go run cmd/main.go
-
Access development server in browser:
-
Build frontend:
cd pkg/emitters/websocket/static bun run build
-
Build backend:
go build -o kutelog cmd/main.go
-
Determine the new version number based on changes:
- Major version: Breaking changes
- Minor version: New features
- Patch version: Bug fixes
-
Create and push a new tag:
git tag -a v1.2.3 -m "Release v1.2.3" # Replace with actual version git push origin v1.2.3
-
The release process is automated through GitHub Actions:
- Publish workflow:
- Builds binaries for all supported platforms
- Creates a GitHub release with the binaries
- Generates release notes from commits
- Homebrew workflow:
- Triggered after successful publish
- Updates the Homebrew formula with new version and checksums
- Creates a pull request in homebrew-tap repository
- Publish workflow:
- macOS (ARM64, AMD64)
- Linux (ARM64, AMD64)
- Windows (AMD64)