v0.0.3
What's new in v0.0.3
HTML output format
New --format html flag produces a self-contained HTML report with color-coded diagnostics — useful for sharing results or embedding in CI artifacts. All three subcommands (check, validate, lint) support it.
styl check --format html style.json > report.html
Spec compatibility validators (E023)
--spec mapbox mode now actively flags MapLibre-only features that are incompatible with Mapbox GL JS: sky layers, terrain, fog, and certain expression operators. Previously, spec divergence was tracked only in a static table; it now emits diagnostics at runtime.
Diagnostic module refactored
diagnostic.rs split into a focused module structure (diagnostic/mod.rs, diagnostic/renderers/). No behavior change — improves maintainability and makes adding new output formats straightforward.
Docs & project hygiene
- README gained badges (crates.io, CI status) and a motivation section
CONTRIBUTING.mdadded with build/test/commit workflow- Docs updated for E023 and corrected W015 ordering
Commits
b16456a chore: bump version to 0.0.3
b797a19 chore: bump version to 0.0.2
1480fc1 docs: improve README with badges, motivation section, and crates.io metadata
e0c529a Merge pull request #1 from navidnabavi/feat/spec-wiring
9e4cf53 docs(claude): match clippy strictness to CI (-D warnings)
e7927f1 fix(clippy): use is_none_or instead of map_or(true, ..)
39c1bb7 docs(claude): enforce build/test/fmt/clippy before every commit
7f3e93d fix: stage missing cli.rs changes and fmt compat.rs
509e23c style: apply cargo fmt
6b38174 docs: add E023 spec incompatibility section; fix W015 ordering in linter.md
766d4e1 test: add spec compat integration tests (E023)
a76e98b fix(validator): correct filter logic in run_all — remove inverted ! on conflicts_with
d07fc9a feat(validator): implement compat validators for sky, terrain, fog, expressions (E023)
2273f28 refactor(validator): add spec_affinity to Validator trait; stub run_all with spec param
1978a86 docs(spec): clarify conflicts_with semantics for Spec::Both
b73503c docs: document HTML output format
c609654 fix(html): address code review findings
c55e1d5 fix: apply cargo fmt and clippy fixes to HTML module
c88895b feat: wire HTML output format into CLI
97d65f3 feat: implement HTML output renderer
93b2573 feat: add HTML renderer dependencies and CLI enum variant
0cd996d refactor: split diagnostic.rs into focused module structure
614ad97 docs: add CONTRIBUTING.md
ad708ef docs: trim README — move detail to docs/ references
cf33fbe fix(ci): move commit list generation out of matrix into prepare job
541281a fix(ci): fix aarch64-linux cross-compilation in release workflow
8aa972c fix: make layer_type optional to handle ref layers without type field
a0b0ae8 feat(linter): add W016/W017/W018 pattern-overrides-color and heatmap checks
0ab9882 chore: replace manual modulo check with is_multiple_of()
b433d6a chore: fix all clippy warnings
0b1b860 feat(linter): add W013/W014/W015 symbol and background layer checks
f082ffd feat(validator): validate inherited paint/layout on ref layers
d792ecc fix(validator): change gradient properties to Any (require expressions per spec)
5ef30b5 chore: run cargo fmt on project
7db4bfc ci(release): add commit list to release summary
4684bcb ci: improve rust and release workflows
0e7e14e test(validator): add missing PropType::Array unit tests for E018
1ce27d4 docs(validators): add E018 paint/layout value validation
cbf45e6 fix(validator): guard E018 against unknown props and Array-typed expression false positives
0ca3881 feat(validator): wire paint/layout value validation, emit E018
71d62b4 feat(validator): add PropType table and validate_prop_value for E018
7316b45 build: add csscolorparser for paint value color validation
177eced feat(validator): fill all known spec gaps (E011–E017)
084c269 fix: add release name to binray (os+arch)
2fd129e fix: binary name for release
dfb7cfb fix: edition for cargo
b3ece54 chore: add release pipeline
8a871ac fix: set version and edition
09af07f chore: GitHub Actions workflow for Rust project
4a0953a docs: fix review findings in docs and README
8905da1 fix(formatter): remove dead Context::Root variant
808acfd chore: rename project to styl
a98f373 fix: correct 5 critical spec compliance bugs and add missing types/operators
8bd9dfd feat: add lib crate, spec divergence table, fixtures, integration tests
4db03b6 feat(config): .mapboxlintrc TOML discovery and severity override parsing
b31ade5 feat(formatter): canonical key ordering, paint/layout sort, --check mode
8e9080d feat(linter): implement W001-W012 lint rules
7e44a5a feat(expression): add expression AST validator with arity checks and depth warning
8b58904 feat(validator): add root, source, layer, and cross-ref validators
f2b40a0 feat(style): add serde types for Style, Source variants, and Layer
4d247a1 feat: scaffold project with CLI, Diagnostic type, and module stubs