Conversation
…s, and 175-rule registry. Replace regex-first checkers with a YAML-driven single source of truth under spec/ (rules, commands, expansion, ANTLR grammar) and code generation for the rule registry, patterns, grammar rules, and parser visitors; retain checkers/ as backward-compatible aliases wired through the unified AST-first visitor pipeline. Add spec conformance fixtures with expect.json oracles and cmd_oracle.py, audit and validation tooling under scripts/spec/, and CI updates; remove legacy corpus baseline scripts. Expand built-in rules through E041 and W062 (175 total), add Batch Language Reference documentation, and update architecture and requirements docs to describe the new SSOT workflow.
|
Important Review skippedToo many files! This PR contains 529 files, which is 429 over the limit of 100. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (11)
📒 Files selected for processing (534)
You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…oving clarity and reducing redundant imports. Update _rule_to_dict function to ensure type safety with Rule instances.
…endency. Preserve spec/corpus fixture bytes with -text gitattributes so Linux CI no longer converts .cmd files to CRLF and breaks E018/S005 oracles; restore true mixed endings in s005-mixed-endings; install requirements-dev.txt for Windows exe job.
Run the corpus/parser smoke pytest without coverage enforcement, and regenerate ANTLR parser output so generate_parser.py --check passes on Linux CI.
Hash spec/grammar .g4 files with LF-normalized bytes so generate_parser.py --check passes on Linux and Windows checkouts.
The global id(lines) cache could return stale empty-variable sets after list reuse in long pytest runs, causing W047 to be skipped on Python 3.11 CI.
Read stdout/stderr concurrently in Invoke-BlinterProcess so linting verbose scripts cannot hang the CI smoke step for six hours.
…acy and add delayed expansion state caching. - Updated LABEL rule in BatchLexer to ensure it only matches at the start of a line. - Refined WORD rule in BatchLexer to include additional characters. - Modified BatchParser to use ifPredicate instead of ifCondition for better clarity. - Introduced caching for delayed expansion state and privilege checks in parsing logic. - Improved error handling in ANTLR parsing with SLL and LL strategies. - Updated various parsing functions to utilize new caching mechanisms for efficiency.
…NTLR-based syntax check function. - Updated `check_ast_syntax_rules` to use `check_grammar_backed_syntax_fast` for improved performance. - Added `check_ast_syntax_rules_antlr` function to maintain ANTLR parsing for conformance tests. - Adjusted timeout for performance test to ensure quicker execution.
- Created .gitmodules file to track the batch-spec submodule. - Initialized the batch-spec submodule pointing to the specified GitHub repository.
- Enhanced README.md to clarify the cloning process with submodules and added instructions for updating existing clones. - Updated test workflow to ensure submodules are checked out recursively. - Revised Architecture.md and Batch-Language-Reference.md to reflect the new structure and location of batch-spec artifacts. - Adjusted paths in scripts to accommodate the new batch-spec directory structure and updated YAML file references. - Removed outdated command help files and commands.yaml, transitioning to commands-linter.yaml for linter-specific command policies. - Improved validation and generation scripts to handle the new batch-spec integration.
Update the pinned language spec ref and lock file to match the new batch-spec release.
- Updated `benchmark_lint.py` and `lint_corpus.py` to import `Path` from `pathlib` for consistency. - Reformatted code for better readability in `audit_ssot.py`. - Deleted obsolete scripts: `bootstrap_corpus_expect.py`, `extract_commands_to_yaml.py`, `extract_corpus.py`, `extract_rules_to_yaml.py`, and `lint_corpus.py` to streamline the codebase. - Updated `generate_commands.py` for improved import structure. - Minor adjustments in test files for better assertion formatting.
Align Build-Release-PYPI with scripts/verify.py and submodule checkout, remove committed corpus oracle artifact, trim unused mypy config, and bump batch-spec for a corrected expansion comment.
Tags are required for test_batch_spec_lock_matches_checkout after moving past the v0.2.0 release.
- Added `antlr4-python3-runtime` to runtime and development dependencies in `pyproject.toml` and `requirements.txt`. - Expanded `hiddenimports` in `Blinter.spec` to include additional ANTLR components. - Updated CI workflows to include new smoke tests for the executable and improved static analysis checks with `autopep8`. - Revised README.md to reflect changes in CI processes and testing scripts.
- Added new argument handlers for `--max-line-length`, `--config`, `--output`, and `--format` in `args.py` to streamline command-line argument processing. - Refactored `_process_dash_argument` to utilize the new handlers for better maintainability. - Updated `README.md` to correct the command for running `pip-audit`. - Added `.audit-venv` to `.gitignore` to exclude the audit virtual environment from version control. - Removed unused import `LintIssue` in `main.py` for cleaner code.
- Introduced a new function to handle trailing whitespace checks using `autopep8` in `verify.py`. - Updated `generate_docs.py` to include a new function for updating README rule-count prose based on `rules.yaml`. - Added functionality to strip trailing whitespace from generated parser files in `generate_parser.py`. - Improved handling of delayed expansion in `fast_syntax.py` and `syntax_visitor.py` to ensure consistency across syntax checks. - Added new tests in `test_fast_syntax.py` to validate delayed expansion behavior and ensure alignment between fast and ANTLR syntax checks.
- Updated CI workflows to run quality checks with an option to skip tests for improved efficiency in CI environments. - Enhanced `verify.py` to include a check for the installed version of `antlr4-python3-runtime` to ensure compatibility with the generator pin. - Revised documentation in `Architecture.md` and `Batch-Language-Reference.md` to clarify the linting process and the role of the grammar-backed syntax scanner. - Removed deprecated `delayed_expansion_tokens.py` to streamline the codebase and improve maintainability. - Added tests in `test_fast_syntax.py` to validate delayed expansion behavior and ensure alignment between fast and ANTLR syntax checks.
- Updated Pylint configuration to ignore generated files for cleaner linting results. - Introduced a new test job in CI workflows to run tests across multiple Python versions, ensuring compatibility and stability. - Refactored `verify.py` to include checks for requirements drift between `pyproject.toml` and requirements files, enhancing dependency management. - Improved handling of delayed expansion in the parsing logic, ensuring accurate linting for batch scripts. - Added tests to validate delayed expansion behavior and ensure consistency across syntax checks.
- Added new entries to `.gitignore` for `venv-ci` and `.benchmarks/` to prevent unnecessary files from being tracked. - Updated `funding.json` to reflect the current year in the project description. - Introduced PowerShell quality checks in CI workflows to ensure script integrity. - Refactored `verify.py` to streamline PowerShell checks and added a new function for handling black formatting. - Enhanced `cmd_oracle.py` with a new function to classify corpus cases, improving the organization of runnable and skipped cases. - Updated documentation to reflect changes in the conformance corpus and clarify the linting process. - Fixed minor whitespace issues in configuration and test files for consistency.
- Added new entries to `.gitignore` for `coverage.json`, `coverage.lcov`, and `.hypothesis/` to streamline file tracking. - Simplified test execution commands in CI workflows for clarity and efficiency. - Introduced verification steps for the `batch-spec` submodule in CI to ensure proper setup. - Enhanced `Architecture.md` and `README.md` documentation to reflect current corpus counts and batch-spec references. - Added tests to validate documentation consistency and relative link resolution in `Architecture.md`.
…s, and 175-rule registry. Replace regex-first checkers with a YAML-driven single source of truth under spec/ (rules, commands, expansion, ANTLR grammar) and code generation for the rule registry, patterns, grammar rules, and parser visitors; retain checkers/ as backward-compatible aliases wired through the unified AST-first visitor pipeline. Add spec conformance fixtures with expect.json oracles and cmd_oracle.py, audit and validation tooling under scripts/spec/, and CI updates; remove legacy corpus baseline scripts. Expand built-in rules through E041 and W062 (175 total), add Batch Language Reference documentation, and update architecture and requirements docs to describe the new SSOT workflow.