Skip to content

Conversation

@mraml
Copy link
Owner

@mraml mraml commented Jan 22, 2026

Release v2.1.0: Stability & Security Hardening

This release focuses on critical engineering improvements to ensure nod works seamlessly in real-world environments. It addresses key issues with PyPI distribution, large repository performance, and JSON validation logic, while introducing a formal test suite.

🔴 Critical Fixes

  • Fixed "Broken Pip" Installation: * Added MANIFEST.in and updated the configuration loader to correctly bundle and locate default rule packs (defaults/*.yaml). Installing via pip install nod-linter now works out-of-the-box.
  • Smart File Ignoring:
    • Implemented fnmatch support for .nodignore.
    • Added default exclusions for performance-killing directories like node_modules, venv, __pycache__, dist, and build.
  • JSON Validation Logic:
    • Fixed a logic flaw where distributed JSON specs were aggregated into text blobs, breaking deep validation. The scanner now correctly parses JSON files individually to support must_match field validation.

🛡️ Security Hardening

  • High-Fidelity Secret Detection: * Updated the security_baseline profile. Replaced the generic "hardcoded credential" placeholder with rigorous regex patterns to detect: * AWS Access Keys (AKIA...) * OpenAI Secret Keys (sk-...) * Private Key blocks (-----BEGIN PRIVATE KEY-----) * Generic high-entropy assignments (password = "...").

✨ Usability Polish

  • Version Flag: Added nod --version to quickly check the installed release.
  • Quiet Mode: Added nod --quiet (or -q) to suppress banners and success messages, ideal for cleaner CI/CD logs.

🏗️ Engineering Maturity

  • Automated Test Suite: Introduced tests/test_core.py using unittest to validate core logic, config loading, and regex engines, preventing future regressions.
  • Strict Type Hinting: Enhanced code readability and safety with comprehensive PEP 484 type annotations throughout the codebase.

🚦 Upgrade Guide

# Update via pip
pip install --upgrade nod-linter

# Update GitHub Action
uses: mraml/nod@v2.1.0

License: Apache 2.0

mraml added 9 commits January 22, 2026 17:16
update utils.py to add a matcher and scanner.py to fix the directory walking loop (ignoring node_modules, etc.) and the JSON aggregation logic
fix the directory walking loop (ignoring node_modules, etc.) and the JSON aggregation logic
Ensure the package data is included
dding:

    --version: Prints the version and exits.

    --quiet: Suppresses non-critical output (headers, success messages). Only prints failures or errors.
@mraml mraml merged commit e5afb5b into main Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants