openvox-lint 1.0.8 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: abe996811c55331e6e81030b3b421c822f152e7e208767c0ba8154e8d6dfe628
4
- data.tar.gz: bbd33e6c54ac940eb8b1a3e64ef511ef7ab6412282c12f48e3739508c3d9222c
3
+ metadata.gz: 92a172fe1a83c3d684aee5d33ab5d77562cc7f59f226187220b4afd8c491e5b2
4
+ data.tar.gz: be8d992d5f9ad8773718818bf9c576e50197ed4ca3d9d0ab0d5e568f2f4a2e3f
5
5
  SHA512:
6
- metadata.gz: 4b1e8359096a9156ef02eb2d18dd5af1171593d0f4c47a1957827a043212185dabd09608786c1df606257ca3b21a183978c084d289c7550f900e863367f8697b
7
- data.tar.gz: 54bb7aba3f2afef0d6ba51f0346a8f05b7bf495a944a93af14e89144c2d28008ff09243e469b9330cc715a6200c42ea9172a83cebac57164e21088f3c9117c25
6
+ metadata.gz: b720a95e6dd55dea7fdef36831236fad7f586c4916fcec8e13d6e1f8668897f5261c806a525f3d46ccfbacc4291172531a40cb86f76ab2cedba51a15a7d78c85
7
+ data.tar.gz: 991d2849f7e848fcbd6eace4c09289ffde7509a6df96b1d447f6c4b68b83363ac5ab919627d4bde4cde0a974ca2170ae38e3150070c5d25a84ff48b367103d66
data/CHANGELOG.md CHANGED
@@ -2,6 +2,106 @@
2
2
 
3
3
  All notable changes to openvox-lint will be documented in this file.
4
4
 
5
+ ## [1.3.0] - 2026-05-23
6
+
7
+ ### Fixed / Production Readiness
8
+
9
+ - **Real `--fix` support implemented** for 5 high-value checks (previously non-functional scaffolding only; all 37 raised `NoFix`):
10
+ - `trailing_whitespace` — strips trailing ws from lines
11
+ - `hard_tabs` — replaces `\t` with two spaces
12
+ - `quoted_booleans` — unquotes `true`/`false` values
13
+ - `double_quoted_strings` — converts unnecessary `"...` (no interp/escapes) to `'...`
14
+ - `single_quote_string_with_variables` — converts `'...$var...` to `"...$var...`
15
+ - Linter now writes mutated `manifest_lines` back to disk on `--fix` (with final-NL normalization per style guide). Fixes are line-based and safe; complex structural fixes (arrow_alignment) remain future work. Tested on real manifests.
16
+ - **`legacy_facts` crash fixed** (in active workspace): `require 'set'` present + exclusion logic for local class/define params and `|$var|` lambdas fully verified (no false positives, no NameError).
17
+ - Removed committed stale `openvox-lint-1.0.8.gem` (violated `.gitignore`).
18
+ - **Version/doc sync**: All references now 1.3.0 (source, docs header, comparison table, this changelog). Bumped for the --fix + hygiene milestone.
19
+ - Updated README links and comparison to point to canonical OpenVox style guide and note real --fix status.
20
+ - Architecture decision: retained OpenVox's lightweight `CheckPlugin` + depth-aware helpers (superior to puppet-lint Data for some cases); added minimal mutation support for fixes without porting heavy token-rewiring singleton.
21
+
22
+ ### Changed
23
+ - `--fix` now production-usable for the listed checks (edits in place like puppet-lint).
24
+ - Style guide references prioritize OpenVox canonical docs.
25
+
26
+ ### Contributors (for 1.3.0)
27
+ - Grok Build (lead modernization per full analysis reports)
28
+
29
+ ## [1.2.0] - 2026-03-12
30
+
31
+ ### Fixed
32
+
33
+ - **`legacy_facts` false positives on local variables** — The check no longer
34
+ flags class/define parameters or lambda block parameters that happen to share
35
+ names with legacy facts (`$path`, `$type`, `$os`, etc.). Previously, any
36
+ variable with a legacy fact name would trigger a warning, even when it was
37
+ clearly a locally-scoped parameter with no relation to facts.
38
+
39
+ **Contributed by [@hbro](https://github.com/hbro) (Hans Broeckx)** in
40
+ [PR #1](https://github.com/cvquesty/openvox-lint/pull/1). This is openvox-lint's
41
+ first community contribution! 🎉
42
+
43
+ The fix adds a pre-scan phase that collects all locally declared variable names
44
+ from:
45
+ - Class and defined type parameter lists
46
+ - Lambda block parameter lists (`|$var|`)
47
+
48
+ These local variables are then excluded from the legacy fact name check,
49
+ eliminating false positives while still correctly detecting actual legacy
50
+ fact references.
51
+
52
+ ### Contributors
53
+
54
+ - **Hans Broeckx ([@hbro](https://github.com/hbro))** — First community contributor!
55
+
56
+ ## [1.1.1] - 2026-03-12
57
+
58
+ ### Documentation
59
+
60
+ - **Comprehensive technical documentation rewrite**: Complete overhaul of
61
+ [DOCUMENTATION.md](DOCUMENTATION.md) with:
62
+ - Full API reference for all classes (Token, Lexer, CheckPlugin, Configuration,
63
+ Linter, Report)
64
+ - Complete documentation for all 37 checks with good/bad code examples
65
+ - Organized checks by category (Whitespace, Strings, Variables, Resources, etc.)
66
+ - Comprehensive token types reference
67
+ - Plugin development guide with examples
68
+ - Migration guide from puppet-lint
69
+
70
+ - **New CONTRIBUTING.md**: Added comprehensive contributor guide with:
71
+ - Development setup instructions
72
+ - Project structure documentation
73
+ - Testing instructions
74
+ - Check plugin writing guide
75
+ - Coding standards
76
+ - Release process
77
+
78
+ - **Hiera 3 → Hiera 5 clarification**: Updated all documentation to clarify
79
+ that Hiera 3 is fully deprecated and only Hiera 5 is supported in Puppet 8 /
80
+ OpenVox 8. The `hiera3_function` check now explicitly references "Hiera 5
81
+ lookup()" as the replacement.
82
+
83
+ ### Changed
84
+
85
+ - **`hiera3_function` error message**: Improved to explicitly mention Hiera 5:
86
+ "deprecated Hiera 3 function 'hiera()' — use Hiera 5 lookup() instead"
87
+
88
+ ## [1.1.0] - 2026-03-05
89
+
90
+ ### Removed
91
+
92
+ - **`relative_classname_inclusion` check**: This check warned when
93
+ `include`, `require`, or `contain` statements used relative (non-`::`)
94
+ multi-segment class names instead of fully qualified ones. Since
95
+ Puppet 4, the Puppet language resolver correctly handles relative class
96
+ name resolution, making relative class name inclusion safe and the
97
+ check obsolete. The check has been removed entirely. Users who had
98
+ disabled it via `--no-relative_classname_inclusion-check` or
99
+ `.openvox-lint.rc` can safely remove those overrides.
100
+
101
+ ### Changed
102
+
103
+ - **Check count**: 38 → 37 built-in checks.
104
+
5
105
  ## [1.0.8] - 2026-03-04
6
106
 
7
107
  ### Fixed
@@ -146,7 +246,7 @@ All notable changes to openvox-lint will be documented in this file.
146
246
  - **Resources**: `ensure_first_param`, `ensure_not_symlink_target`, `file_mode`, `unquoted_file_mode`, `unquoted_resource_title`, `duplicate_params`, `trailing_comma`
147
247
  - **Classes**: `documentation`, `nested_classes_or_defines`, `parameter_order`, `class_inherits_params`, `inherits_across_namespaces`
148
248
  - **Conditionals**: `case_without_default`, `selector_inside_resource`
149
- - **References**: `leading_zero`, `resource_reference_without_title_capital`, `relative_classname_inclusion`, `autoloader_layout`
249
+ - **References**: `leading_zero`, `resource_reference_without_title_capital`, `autoloader_layout`
150
250
  - **Comments**: `star_comments`
151
251
  - **URLs**: `puppet_url_without_modules`
152
252
  - **Nodes**: `node_name_unquoted`