Skip to content

Releases: mcandre/unmake

#tarball

15 Jan 06:05
Compare
Choose a tag to compare

Replace zip archive with tarball for ease of Docker container injection.

#null

08 Jan 01:15
Compare
Choose a tag to compare
  • Add --print0 option to integrate with the common GNU/BSD | xargs -0 convention.

#ux

06 Jan 03:50
Compare
Choose a tag to compare
#ux

Clarify scanner logic. Register debug message when skipping include makefiles during dry run analysis.

#netbsd

05 Jan 07:18
Compare
Choose a tag to compare
  • Fix port generation
  • Add target x86_64-unknown-netbsd to precompiled binary archive

#options

04 Jan 06:59
Compare
Choose a tag to compare
  • Add -n / --dry-run passthrough option to external make implementation tools
  • Add -l / --list option for integration with external linters
  • Add more test cases
  • Update Rust

#onward

13 May 06:11
Compare
Choose a tag to compare
  • Refine grammar to handle commands like \curl
  • Add new warning RESERVED_TARGET for use of non-special, reserved targets and prerequisites
  • Sort warnings by line number (roughly), for easier navigation

#enrichment

04 May 19:17
Compare
Choose a tag to compare
  • 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

03 May 01:06
Compare
Choose a tag to compare
  • Fix crate / API link integration.
  • Attach pre-compiled binary ports for many platforms.

#lint-ahoy

03 May 01:02
Compare
Choose a tag to compare

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

29 Apr 01:42
Compare
Choose a tag to compare
  • unmake now accepts a list of multiple file and/or directory paths.
  • unmake now recurses over directories.
  • .git, node_modules, and vendor are skipped.
  • Machine-generated makefiles are skipped.
  • Symlinks are skipped.
  • Implementation-specific filenames like GNUmakefile and BSDmakefile 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