Skip to content

Releases: StevenMcGann/scan-python-packages

v1.6.1

Choose a tag to compare

@StevenMcGann StevenMcGann released this 27 May 23:06

Patch release fixing scanner dependency version detection on Windows.

Closes #2.

Important packaging note:

  • Operators should download Scan-PythonPackages_v1.6.1.zip, not a standalone .ps1 file.
  • The release zip contains both required runtime files: Scan-PythonPackages.ps1 and inspect_binary.py.
  • inspect_binary.py must remain beside Scan-PythonPackages.ps1; otherwise native PE/ELF binary inspection is skipped.

Fixed:

  • Get-InstalledPackageVersion now uses the scanner venv Python executable with python -m pip show when checking installed scanner dependency versions.
  • This avoids a Windows pip.exe wrapper failure mode after pip upgrades itself inside an existing .scan-venv.
  • Existing scanner venvs no longer need to be deleted just to recover from the false bandit is not installed / version check failed path.

Changed:

  • Scanner version metadata updated to 1.6.1.
  • JSON report scannerVersion updated to 1.6.1.
  • Changelog, README release-note pointer, fixture metadata, and v1.6.1 release notes updated.

Verification:

  • Local fixture generation: passed.
  • Local Pester: 51 passed, 0 failed.
  • Added regression coverage for a broken pip.exe wrapper with successful python -m pip show bandit output.

Zip SHA256:
A02DE18DB306095DF28DB7E1803CDD6916597C0023D90D7CF5F042BBDE937D51

v1.6.0

Choose a tag to compare

@StevenMcGann StevenMcGann released this 13 May 10:13

Feature release adding first-class Jupyter notebook (.ipynb) support to Scan-PythonPackages.ps1.

Closes #1.

Important packaging note:

  • Operators should download Scan-PythonPackages_v1.6.0.zip, not a standalone .ps1 file.
  • The release zip contains both required runtime files: Scan-PythonPackages.ps1 and inspect_binary.py.
  • inspect_binary.py must remain beside Scan-PythonPackages.ps1; otherwise native PE/ELF binary inspection is skipped.

Added:

  • Loose and embedded .ipynb notebook discovery.
  • Static notebook code-cell projection into temporary .py files for Bandit and detect-secrets.
  • NotebookParser findings for malformed notebooks, saved outputs, and attachments.
  • Deterministic notebook fixtures, Pester coverage, and smoke coverage for notebook scanning.

Changed:

  • Scanner version metadata updated to 1.6.0.
  • README, changelog, fixture documentation, release notes .md, and release notes .docx updated for v1.6.0.
  • Current release docs now describe inspect_binary.py as a required v1.6.0 release-package file, not a dependency on an older version.

Verification:

  • Local Pester: 50 passed, 0 failed.
  • Local full smoke: passed; fixtures 36, determinism identical, archive scan OK, loose source/notebook scan OK, non-Python/mixed/re-scan stages OK.
  • Local PSScriptAnalyzer: no errors; the $args shadowing issue is gone.
  • GitHub Test on main: passed.
  • GitHub Test on v1.6.0: passed.
  • GitHub Smoke workflow dispatch: passed.
  • GitHub Security workflow dispatch: passed.
  • GitHub push checks: passed.

Zip SHA256:
61A6C4C271818AD0AFD14C73986ED2777DB59077E8BFCA33916B54CCBC06F08C

v1.5.2

Choose a tag to compare

@StevenMcGann StevenMcGann released this 04 May 02:00

Patch release correcting v1.5+ release packaging and operator documentation.\n\nImportant packaging correction:\n- Operators should download Scan-PythonPackages_v1.5.2.zip, not a standalone .ps1 file.\n- The release zip contains both required runtime files: Scan-PythonPackages.ps1 and inspect_binary.py.\n- inspect_binary.py must remain beside Scan-PythonPackages.ps1; otherwise native PE/ELF binary inspection is skipped.\n\nChanged:\n- README now documents release-package usage and the required helper file.\n- Release notes now serve as operator documentation again and document package contents, install layout, runtime prerequisites, troubleshooting, and release zip usage.\n- Scanner version bumped to 1.5.2.\n\nVerification:\n- Local fixture generation: passed, 31 fixtures.\n- Local Pester: 47 passed, 0 failed.\n- Package-layout smoke: release-folder scan found BinaryInspection result with scannerVersion 1.5.2.\n- GitHub Test, Smoke, Security, and CodeQL: passed.\n\nZip SHA256:\n1D93DDA36B103C41A43C9E933F9D6E6D9F3EE8F98F2789EA138CD24E87E6BAD1

v1.5.1

Choose a tag to compare

@StevenMcGann StevenMcGann released this 03 May 22:32

Patch release for repository and CI cleanup.\n\nChanged:\n- Added explicit read-only GitHub Actions token permissions to Test, Smoke, and Security workflows.\n- Published nightly smoke INDEX.md content into the GitHub Actions job summary.\n- Bumped scanner patch version to 1.5.1.\n\nFixed:\n- Removed generated Python bytecode from source control and ignored future pycache / .pyc artifacts.\n- Corrected the canonical scanner synopsis to use Scan-PythonPackages.ps1.\n- Made scanner venv bootstrap upgrades use python -m pip so pip/setuptools/wheel updates are not rejected by the pip.exe wrapper.\n\nVerification:\n- Local fixture generation: passed, 31 fixtures.\n- Local Pester: 47 passed, 0 failed.\n- Local smoke harness: passed.\n- GitHub Test, Smoke, Security, and CodeQL: passed.

v1.5

Choose a tag to compare

@StevenMcGann StevenMcGann released this 02 May 19:41

Added

  • Triage-level binary inspection for .pyd, .so, and .dll artifacts using pefile and pyelftools.
  • Binary inspection analyzes format validity, PE digital signature presence, import tables, section entropy, unusual section names, and stripped ELF symbols.

Changed

  • Replaced Find-NativeBinaries with Invoke-BinaryInspection.
  • Native binaries now produce specific findings through the BinaryInspection tool instead of generic NativeBinaryCheck presence warnings.
  • Scanner dependencies now include pefile and pyelftools.

Fixed

  • Binary inspection writes JSON to a temp file instead of stdout, preventing stderr warnings from corrupting result parsing.
  • Section entropy no longer reports -0.0 for single-byte sections.

See docs/release-notes/v1.5.md for the full release notes.