Releases: mcandre/unmake
Releases · mcandre/unmake
#tarball
#null
#ux
#netbsd
#options
#onward
#enrichment
- Allow escaped newlines in more places, according to POSIX specifications. For example, make users may want to use multiline rule prerequisite lists, when managing long
.PHONY
or.IGNORE
sequences. - References to "policy" have been simplified to "check" for scanning operations and "message" for reported descriptions.
- Additional linter checks implemented.
- Existing checks refined. For example,
UB_LATE_POSIX_MARKER
now triggers when*.include.mk
files feature the.POSIX:
strict special target. - Minor consistency improvement to the rendered warning message format.
- Add further illustrative examples, clarification, and minor grammatical enhancements to documentation.
- Refactor code layout for maintainability.
#docs-and-ports
- Fix crate / API link integration.
- Attach pre-compiled binary ports for many platforms.
#lint-ahoy
Many bugfixes and enhancements in this release.
- Refine makefile grammar for robustness.
- Include lines now take precedence over macros. This assists when linting for
UB_AMBIGUOUS_INCLUDE
. - Fix inspect control flow for various kinds of files.
- Fix how machine generated makefiles are detected and skipped for linting.
- Detect gyp projects.
- Refine error handling and error message formatting.
- Preserve path casing in
inspect::Metadata
reports. - Add new attributes to
inspect::Metadata
reports. - Reduce some internal boilerplate in the unit test code.
- Add more tests.
- Refine documentation.
- Implemente our first set of standard makefile linter warnings.
Linter warning topics range from Undefined Behavior (UB) to hazards of global empty .INCLUDE
declarations, to wasteful No-OPerations (NOP's) to simplifying boilerplate, to basic .PHONY
semantics, to proper use of .POSIX
declarations, to minor makefile performance enhancements.
Skipping pre-compiled ports out of expediency. An upcoming hotfix will soon generate fresh ports.
#recursion
- unmake now accepts a list of multiple file and/or directory paths.
- unmake now recurses over directories.
.git
,node_modules
, andvendor
are skipped.- Machine-generated makefiles are skipped.
- Symlinks are skipped.
- Implementation-specific filenames like
GNUmakefile
andBSDmakefile
are skipped. -d
/--debug
shows skipped file paths-i
/--inspect
provides high level details about potential makefile paths- Error messages about accessing files now name the offending file path
- Added more unit tests
- Minor performance enhancement when generating parse error messages
See #recursion