Skip to content

Releases: BatchLang/Blinter

v1.1.31

Choose a tag to compare

@github-actions github-actions released this 22 Sep 09:17

[1.1.31] - 2026-09-22

Changed

  • Canonical repository, installer, and security contact are the BatchLang organization and BatchLang@proton.me
  • Standalone blinter.exe reports company BatchLang and extracts native files to %LOCALAPPDATA%\BatchLang\Blinter\<version>

v1.1.30

Choose a tag to compare

@github-actions github-actions released this 20 Sep 15:40

[1.1.30] - 2026-09-20

Fixed

  • W063 scopes FOR /F token overflow to the current loop: nested FOR /F (including @ and IF EXIST prefixes) is not treated as outer overflow, echo ( does not swallow the next line, and DO inside IN (...) is not the loop body
  • W049 still warns when SET assigns a space-only value to a pseudo-environment variable; SET "errorlevel=" remains a valid clear

Changed

  • Parenthesis-depth and empty-assignment caches live in parsing with identity-safe keys, so large scripts lint without quadratic scans and without a checkers/parsing import cycle
  • Coverage, mypy, pylint (fail-under=10), and pytest configs drop unused boilerplate; coverage still maps installed site-packages/blinter into src/blinter

v1.1.29

Choose a tag to compare

@github-actions github-actions released this 20 Sep 07:49

[1.1.29] - 2026-09-20

Changed

  • Windows blinter.exe Nuitka builds install charset-normalizer as pure Python and nofollow unused ssl/socket/wmi extensions so fewer CPython .pyd files unpack at runtime
  • Architecture docs cover the x64 onefile extract layout; the README still warns that antivirus may false-positive the standalone exe

v1.1.28

Choose a tag to compare

@github-actions github-actions released this 17 Sep 16:18

[1.1.28] - 2026-09-17

Added

  • Fifteen cmd.exe rules (E043–E047, SEC025, W064–W070, S029–S030) covering :: inside blocks, ELSE on a new line, invalid FOR/IF switches, spaced 2> &1, unescaped FOR /F specials, unquoted %CD%, IF wildcards, parse-time %var% after SET in a block, %TIME% space padding, and SET/PATH/PROMPT && in .bat files
  • Corpus fixtures for those rules (274 committed cases)

Fixed

  • E046 flags only a space before & in stream merges (2> &1); 2>>&1 is valid append-duplication on live cmd
  • W017 also flags IF ERRORLEVEL 0 (always true for non-negative codes)
  • E036 also flags IF EXIT / IF EXITS misspellings of EXIST
  • E003 flags a single = in IF and a missing space before (
  • W044 flags SET with a space before = even without a space after
  • SEC001 / SEC014 retargeted to unquoted SET /P dataflow and unquoted arguments

Changed

  • Pinned batch-spec language SSOT to v0.71.0 (EXIST misspellings, single-equals IF, unknown FOR switches, spaced handle duplication)
  • Spec docs, Architecture, and funding metadata match the 274-case corpus; synthetic lint baseline is 25.0s for the extra cmd.exe checks

v1.1.27

Choose a tag to compare

@github-actions github-actions released this 09 Sep 14:46

[1.1.27] - 2026-09-09

Added

  • uv support for install (uv tool install Blinter, uvx blinter) and development (uv sync --extra dev); CI Python installs use uv. pip remains a first-class path.

v1.1.26

Choose a tag to compare

@github-actions github-actions released this 07 Sep 09:54

[1.1.26] - 2026-09-07

Fixed

  • W036 reads a FOR /F command operand to the parenthesis that balances IN (, so nested ( inside a backquoted command is not treated as a file (#37, #42)
  • Drive-relative names such as C:Set-Permissions and ForEach-Object.bat are no longer classified as embedded PowerShell (#38, #42)
  • S010 ignores CALL/GOTO inside an inline REM or ECHO segment after & (#39, #42)
  • P024/P006 count SETLOCAL/ENDLOCAL after an IF predicate or & (#40, #42)

Changed

  • Pinned batch-spec language SSOT to v0.70.1 (FOR /F usebackq backtick commands keep nested parentheses as data)
  • Spec docs, Architecture, and funding metadata match the 235-case corpus

v1.1.25

Choose a tag to compare

@github-actions github-actions released this 07 Sep 08:58

[1.1.25] - 2026-09-07

Fixed

  • PowerShell Get-/Set-/Write-/New- detection no longer backtracks into hyphenated filenames, and ignores .psm1/.psd1/.ps1xml script modules the same way as .ps1
  • P024 reports only a second real SETLOCAL; extra ENDLOCAL is left to its own rules

v1.1.24

Choose a tag to compare

@github-actions github-actions released this 07 Sep 08:04

[1.1.24] - 2026-09-07

Fixed

  • P024 and P006 no longer treat the word setlocal/endlocal inside comments as commands, and P024 reports the second real SETLOCAL (#40)
  • S010 counts labels reached by if ... goto/call and || goto, while ignoring goto/call inside comments or echo output (#39)
  • Hyphenated filenames such as set-permissions.bat are no longer classified as embedded PowerShell, so per-line rules still run (#38)
  • W036 no longer treats FOR /F command operands (for example powershell -NoProfile under usebackq backticks) as data files (#37)

Changed

  • Spec docs, Architecture, and funding metadata match the 231-case corpus

v1.1.23

Choose a tag to compare

@github-actions github-actions released this 07 Sep 05:52

[1.1.23] - 2026-09-07

Changed

  • Windows blinter.exe Nuitka build uses LTO, cached onefile extract, stripped docstrings/asserts, and unused-stdlib nofollow; UPX stays off

v1.1.22

Choose a tag to compare

@github-actions github-actions released this 07 Sep 05:37

[1.1.22] - 2026-09-07

Changed

  • Windows standalone blinter.exe is now built with Nuitka (scripts/build_exe.py) instead of PyInstaller

Fixed

  • Frozen blinter.exe --version reads the bundled pyproject.toml from the Nuitka extract layout