rumk 0.0.5__tar.gz
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.
- rumk-0.0.5/CHANGELOG.md +83 -0
- rumk-0.0.5/Cargo.lock +722 -0
- rumk-0.0.5/Cargo.toml +45 -0
- rumk-0.0.5/LICENSE +21 -0
- rumk-0.0.5/PKG-INFO +299 -0
- rumk-0.0.5/README.md +273 -0
- rumk-0.0.5/pyproject.toml +40 -0
- rumk-0.0.5/src/analysis.rs +713 -0
- rumk-0.0.5/src/config.rs +1104 -0
- rumk-0.0.5/src/diagnostic.rs +107 -0
- rumk-0.0.5/src/eval.rs +997 -0
- rumk-0.0.5/src/fix.rs +80 -0
- rumk-0.0.5/src/inline_config.rs +84 -0
- rumk-0.0.5/src/lib.rs +12 -0
- rumk-0.0.5/src/logical.rs +367 -0
- rumk-0.0.5/src/main.rs +1160 -0
- rumk-0.0.5/src/parser.rs +630 -0
- rumk-0.0.5/src/project.rs +713 -0
- rumk-0.0.5/src/project_analysis.rs +368 -0
- rumk-0.0.5/src/rules/best_practices.rs +867 -0
- rumk-0.0.5/src/rules/project.rs +549 -0
- rumk-0.0.5/src/rules/style.rs +204 -0
- rumk-0.0.5/src/rules/syntax.rs +223 -0
- rumk-0.0.5/src/rules.rs +113 -0
- rumk-0.0.5/src/syntax.rs +289 -0
- rumk-0.0.5/tests/analysis_test.rs +187 -0
- rumk-0.0.5/tests/cli_test.rs +602 -0
- rumk-0.0.5/tests/config_test.rs +314 -0
- rumk-0.0.5/tests/corpus_test.rs +59 -0
- rumk-0.0.5/tests/eval_test.rs +241 -0
- rumk-0.0.5/tests/fix_test.rs +26 -0
- rumk-0.0.5/tests/fixtures/corpus/c_library/Makefile +27 -0
- rumk-0.0.5/tests/fixtures/corpus/conditional/Makefile +13 -0
- rumk-0.0.5/tests/fixtures/corpus/conditional/mk/linux.mk +2 -0
- rumk-0.0.5/tests/fixtures/corpus/conditional/mk/windows.mk +2 -0
- rumk-0.0.5/tests/fixtures/corpus/go_service/Makefile +22 -0
- rumk-0.0.5/tests/fixtures/corpus/go_service/mk/tools.mk +5 -0
- rumk-0.0.5/tests/fixtures/corpus/monorepo/Makefile +13 -0
- rumk-0.0.5/tests/fixtures/corpus/monorepo/mk/backend.mk +11 -0
- rumk-0.0.5/tests/fixtures/corpus/monorepo/mk/frontend.mk +11 -0
- rumk-0.0.5/tests/fixtures/gnu_make/advanced.mk +33 -0
- rumk-0.0.5/tests/fixtures/gnu_make/evaluator/Makefile +29 -0
- rumk-0.0.5/tests/fixtures/gnu_make/evaluator/mk/one.mk +2 -0
- rumk-0.0.5/tests/fixtures/gnu_make/evaluator/mk/two.mk +2 -0
- rumk-0.0.5/tests/fixtures/gnu_make/project/Makefile +5 -0
- rumk-0.0.5/tests/fixtures/gnu_make/project/mk/nested.mk +1 -0
- rumk-0.0.5/tests/fixtures/gnu_make/project/mk/shared.mk +4 -0
- rumk-0.0.5/tests/gnu_make_test.rs +161 -0
- rumk-0.0.5/tests/inline_config_test.rs +45 -0
- rumk-0.0.5/tests/logical_test.rs +83 -0
- rumk-0.0.5/tests/parser_test.rs +248 -0
- rumk-0.0.5/tests/project_analysis_test.rs +185 -0
- rumk-0.0.5/tests/project_rules_test.rs +263 -0
- rumk-0.0.5/tests/project_test.rs +283 -0
- rumk-0.0.5/tests/rules_test.rs +404 -0
- rumk-0.0.5/tests/syntax_test.rs +151 -0
rumk-0.0.5/CHANGELOG.md
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Rumk are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow
|
|
6
|
+
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.0.5] - 2026-08-30
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `MK201.placement` controls where autofixes add missing `.PHONY` declarations:
|
|
15
|
+
`auto` preserves the established file style, `top` groups names in the
|
|
16
|
+
earliest declaration, and `adjacent` places declarations beside their rules.
|
|
17
|
+
- Complete reference pages for every rule, including examples, configuration,
|
|
18
|
+
autofix behavior, special cases, and the source of each convention.
|
|
19
|
+
- `rumk rule <RULE>` now shows category, default state, fixability, analysis
|
|
20
|
+
scope, rule-option defaults, and a documentation link.
|
|
21
|
+
- Native PyPI wheels for supported Linux, macOS, and Windows platforms.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- `MK002` accepts GNU Make variable names containing valid punctuation or
|
|
26
|
+
internal whitespace and conservatively accepts computed variable names.
|
|
27
|
+
- Required includes no longer treat trailing Make comments as filenames.
|
|
28
|
+
- Space-indented conditional directives after a rule are no longer mistaken
|
|
29
|
+
for malformed recipes, preventing a project-analysis panic.
|
|
30
|
+
|
|
31
|
+
## [0.0.4] - 2026-08-30
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- `MK201` now emits one coordinated fix per source file, extends existing canonical `.PHONY`
|
|
36
|
+
groups, preserves established per-section declarations, wraps long groups safely, retains inline
|
|
37
|
+
comments and line endings, and avoids conditional declarations.
|
|
38
|
+
|
|
39
|
+
## [0.0.3] - 2026-08-30
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- `MK101` now ignores full-line comments and recipe bodies by default, with configuration switches
|
|
44
|
+
for projects that want strict line-length enforcement in those regions.
|
|
45
|
+
- `MK208` now focuses on graph-level Make references and excludes recipe and deferred-macro
|
|
46
|
+
parameters, avoiding false positives for normal command-line inputs.
|
|
47
|
+
- `MK209` now requires explicit `entry-targets`, because every Make target can otherwise be a
|
|
48
|
+
legitimate command-line entry point.
|
|
49
|
+
|
|
50
|
+
## [0.0.2] - 2026-08-30
|
|
51
|
+
|
|
52
|
+
### Added
|
|
53
|
+
|
|
54
|
+
- Rumdl-shaped `check`, `fmt`, `rule`, `config`, `init`, and `explain` commands.
|
|
55
|
+
- Lossless Makefile syntax and continuation-aware logical parsing.
|
|
56
|
+
- Cross-file semantic analysis for variables, targets, dependencies, includes, and references.
|
|
57
|
+
- Safe, side-effect-free partial GNU Make evaluation with provenance and three-valued conditions.
|
|
58
|
+
- Static expansion of includes, targets, prerequisites, substitution references, and common pure
|
|
59
|
+
Make functions.
|
|
60
|
+
- Project rules for separator conflicts, duplicate recipes, dependency and include cycles,
|
|
61
|
+
unresolved includes, undefined references, and unreachable targets.
|
|
62
|
+
- Rumdl-compatible configuration discovery, inheritance, inline suppressions, per-file ignores,
|
|
63
|
+
severities, output formats, and exit behavior.
|
|
64
|
+
- Controlled GNU Make parity fixtures and a production-style regression corpus.
|
|
65
|
+
- Conservative autofixes for missing `.PHONY` declarations and direct recursive Make invocations.
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
|
|
69
|
+
- Include graphs are evaluated in GNU Make statement order, including repeated include sites.
|
|
70
|
+
- Reachability uses GNU Make's inferred default goal when explicit entry targets are absent.
|
|
71
|
+
- Predefined variables behave like protected command-line assignments unless `override` is used.
|
|
72
|
+
|
|
73
|
+
### Security
|
|
74
|
+
|
|
75
|
+
- Recipes, shell assignments, and side-effecting Make functions are never executed during linting.
|
|
76
|
+
- Release packages use an explicit source allowlist that excludes private planning documents.
|
|
77
|
+
- Release artifacts are checksummed and prepared for GitHub build-provenance attestations.
|
|
78
|
+
|
|
79
|
+
[Unreleased]: https://github.com/rvben/rumk/compare/v0.0.5...HEAD
|
|
80
|
+
[0.0.5]: https://github.com/rvben/rumk/compare/v0.0.4...v0.0.5
|
|
81
|
+
[0.0.4]: https://github.com/rvben/rumk/compare/v0.0.3...v0.0.4
|
|
82
|
+
[0.0.3]: https://github.com/rvben/rumk/compare/v0.0.2...v0.0.3
|
|
83
|
+
[0.0.2]: https://github.com/rvben/rumk/compare/v0.0.1...v0.0.2
|