diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f700c6..5418b59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This project uses [Semantic Versioning](https://semver.org). +## [0.4.0] - 2026-06-26 + +### Added + +- **Git branch auto-detection** — `glint check` and `glint graph` now run `git rev-parse --abbrev-ref HEAD` in the pipeline file's directory to determine the current branch when no `--branch`/`--tag`/`--source`/`--var` flags are given. Falls back to `main` when not inside a git repository or in detached-HEAD state (e.g. CI runners). + +- **GitLab predefined variable injection** — two categories of predefined variables are now present in the simulation context automatically: + - `CI=true` and `GITLAB_CI=true` are injected for every non-empty context, so expressions like `$CI == "true"` evaluate correctly without `--var`. + - MR-specific variables (`CI_MERGE_REQUEST_IID`, `CI_MERGE_REQUEST_SOURCE_BRANCH_NAME`, `CI_MERGE_REQUEST_TARGET_BRANCH_NAME`, and four others) are injected as placeholders when `--source merge_request_event` is given. `CI_MERGE_REQUEST_SOURCE_BRANCH_NAME` is derived from `--branch` when provided. All injected defaults can be overridden with `--var`. + +- **Multi-platform release binaries** — `task build-release` now builds for all five platforms at once: Linux amd64, Linux arm64, macOS Intel, macOS Apple Silicon, Windows x86-64. Individual targets: `task build-linux-amd64`, `task build-linux-arm64`, `task build-darwin-amd64`, `task build-darwin-arm64`, `task build-windows`. + +- **Homebrew formula** — `Formula/glint.rb` is a source-build Homebrew formula. Set up a tap at `k3nny/homebrew-glint` on GitHub, then install with `brew tap k3nny/glint https://github.com/k3nny/homebrew-glint && brew install glint`. + +- **`INSTALL.md`** — installation guide covering pre-built binary download for all platforms, Homebrew tap, `go install`, and build-from-source with `/usr/local/bin` placement. + ## [0.3.1] - 2026-06-26 ### Changed diff --git a/Formula/glint.rb b/Formula/glint.rb index 7aa2efb..08eb9ee 100644 --- a/Formula/glint.rb +++ b/Formula/glint.rb @@ -1,7 +1,7 @@ class Glint < Formula desc "Local linter and validator for .gitlab-ci.yml pipelines" homepage "https://git.k3nny.fr/k3nny/glint" - url "https://git.k3nny.fr/k3nny/glint/archive/v0.3.1.tar.gz" + url "https://git.k3nny.fr/k3nny/glint/archive/v0.4.0.tar.gz" # Update sha256 on each release: sha256sum glint-vX.Y.Z.tar.gz sha256 "" license "Apache-2.0" diff --git a/INSTALL.md b/INSTALL.md index f86a371..45717c3 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -40,7 +40,7 @@ Pre-built binaries are attached to each [release](https://git.k3nny.fr/k3nny/gli ### Linux (amd64) ```bash -VERSION=v0.3.1 +VERSION=v0.4.0 curl -Lo glint https://git.k3nny.fr/k3nny/glint/releases/download/${VERSION}/glint-${VERSION}-linux-amd64 chmod +x glint sudo mv glint /usr/local/bin/ @@ -49,7 +49,7 @@ sudo mv glint /usr/local/bin/ ### Linux (ARM64 — Raspberry Pi 4, AWS Graviton, …) ```bash -VERSION=v0.3.1 +VERSION=v0.4.0 curl -Lo glint https://git.k3nny.fr/k3nny/glint/releases/download/${VERSION}/glint-${VERSION}-linux-arm64 chmod +x glint sudo mv glint /usr/local/bin/ @@ -58,7 +58,7 @@ sudo mv glint /usr/local/bin/ ### macOS (Apple Silicon — M1/M2/M3) ```bash -VERSION=v0.3.1 +VERSION=v0.4.0 curl -Lo glint https://git.k3nny.fr/k3nny/glint/releases/download/${VERSION}/glint-${VERSION}-darwin-arm64 chmod +x glint sudo mv glint /usr/local/bin/ @@ -67,7 +67,7 @@ sudo mv glint /usr/local/bin/ ### macOS (Intel) ```bash -VERSION=v0.3.1 +VERSION=v0.4.0 curl -Lo glint https://git.k3nny.fr/k3nny/glint/releases/download/${VERSION}/glint-${VERSION}-darwin-amd64 chmod +x glint sudo mv glint /usr/local/bin/ diff --git a/README.md b/README.md index 8dbe5b0..0ac3461 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
> **Disclaimer:** This tool was built through iterative AI-assisted development with [Claude](https://claude.ai). It is experimental, incomplete, and not intended for production use. Coverage of GitLab CI keywords is best-effort and may lag behind GitLab's evolving spec. Use it at your own discretion — no correctness guarantees are made. Contributions and bug reports are welcome. diff --git a/ROADMAP.md b/ROADMAP.md index 87e1220..b6a3dfc 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -135,3 +135,8 @@ The SVG renderer and terminal tree cover the basic layout. These would bring it - [x] **Fuzz testing** — shipped v0.2.27; `FuzzParseBytes` and `FuzzSanitizeYAMLEscapes` in `internal/model/fuzz_test.go`; seeds run as regular tests in CI; `task fuzz` runs them continuously (default 30 s) - [x] **`glint check --no-warn`** — shipped v0.3.0; discards all warning findings before output and exit-code calculation; mixed pipelines (errors + warnings) still exit 2 but only errors are printed; warnings-only pipelines exit 0 - [x] **Exit codes 2 / 10** *(breaking)* — shipped v0.3.0; `glint check` exits `2` when errors are present (previously `1`) and `10` when findings contain only warnings; exit `0` for clean +- [x] **Git branch auto-detection** — shipped v0.4.0; when no context flags are given, `glint check` and `glint graph` run `git rev-parse --abbrev-ref HEAD` in the pipeline file's directory and use the result as the default branch (falls back to `main`) +- [x] **GitLab predefined variable injection** — shipped v0.4.0; `CI=true` and `GITLAB_CI=true` always present in a non-empty context; MR-specific variables injected as placeholders when `--source merge_request_event`; all overridable via `--var` +- [x] **Multi-platform release binaries** — shipped v0.4.0; `task build-release` builds Linux amd64/arm64, macOS Intel/Apple Silicon, and Windows amd64 in one shot +- [x] **Homebrew formula** — shipped v0.4.0; `Formula/glint.rb` source-build formula; tap at `k3nny/homebrew-glint` +- [x] **`INSTALL.md`** — shipped v0.4.0; installation guide for all platforms and methods