feat(cli)!: subcommand CLI, graph tree mode, local include resolution

BREAKING CHANGES:
- `glint <file>` removed; use `glint check <file>`
- `--graph <mode>` removed; use `glint graph [mode]`
- `--graph-out` renamed to `--out` on `glint graph`

feat(cli): ruff-style subcommands — `glint check` and `glint graph [mode]`
feat(graph): `glint graph tree` — terminal job tree with context annotations
feat(graph): context flags (--branch/--tag/--source/--var) on `glint graph`
feat(resolver): recursive local include resolution from disk
fix(resolver): extends unknown base emits warning instead of fatal error
fix(model): script/before_script/after_script accept block scalar string form
test(linter): Samba project CI fixtures as integration tests
chore(build): fix .gitignore to not exclude cmd/glint/ directory
docs: update CHANGELOG, README, ROADMAP for v0.2.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 00:27:28 +02:00
parent aca37de2b1
commit 88f20165db
23 changed files with 1772 additions and 258 deletions
+20 -14
View File
@@ -27,33 +27,39 @@ tasks:
desc: Run glint against all testdata fixtures
deps: [build]
cmds:
- cmd: ./{{.BINARY}} testdata/valid.yml
- cmd: ./{{.BINARY}} check testdata/valid.yml
ignore_error: false
- cmd: ./{{.BINARY}} testdata/extends.yml
- cmd: ./{{.BINARY}} check testdata/extends.yml
ignore_error: false
- cmd: ./{{.BINARY}} testdata/keywords_valid.yml
- cmd: ./{{.BINARY}} check testdata/keywords_valid.yml
ignore_error: false
- cmd: ./{{.BINARY}} testdata/invalid.yml
- cmd: ./{{.BINARY}} check testdata/invalid.yml
ignore_error: true
- cmd: ./{{.BINARY}} testdata/needs.yml
- cmd: ./{{.BINARY}} check testdata/needs.yml
ignore_error: true
- cmd: ./{{.BINARY}} testdata/needs_cycle.yml
- cmd: ./{{.BINARY}} check testdata/needs_cycle.yml
ignore_error: true
- cmd: ./{{.BINARY}} testdata/keywords_invalid.yml
- cmd: ./{{.BINARY}} check testdata/keywords_invalid.yml
ignore_error: true
- cmd: ./{{.BINARY}} testdata/includes_project.yml
- cmd: ./{{.BINARY}} check testdata/includes_project.yml
ignore_error: false
- cmd: ./{{.BINARY}} testdata/includes_component.yml
- cmd: ./{{.BINARY}} check testdata/includes_component.yml
ignore_error: false
- cmd: ./{{.BINARY}} testdata/context_rules.yml
- cmd: ./{{.BINARY}} check testdata/context_rules.yml
ignore_error: false
- cmd: ./{{.BINARY}} --branch main testdata/context_rules.yml
- cmd: ./{{.BINARY}} check --branch main testdata/context_rules.yml
ignore_error: false
- cmd: ./{{.BINARY}} --branch develop testdata/context_rules.yml
- cmd: ./{{.BINARY}} check --branch develop testdata/context_rules.yml
ignore_error: false
- cmd: ./{{.BINARY}} --branch feat/my-feature testdata/context_rules.yml
- cmd: ./{{.BINARY}} check --branch feat/my-feature testdata/context_rules.yml
ignore_error: false
- cmd: ./{{.BINARY}} --tag v1.0.0 testdata/context_rules.yml
- cmd: ./{{.BINARY}} check --tag v1.0.0 testdata/context_rules.yml
ignore_error: false
- cmd: ./{{.BINARY}} check samba-testdata/.gitlab-ci.yml
ignore_error: false
- cmd: ./{{.BINARY}} check samba-testdata/.gitlab-ci-coverage.yml
ignore_error: false
- cmd: ./{{.BINARY}} check samba-testdata/.gitlab-ci-private.yml
ignore_error: false
lint-go: