3f6411b23f
feat(ci): expand cache paths to support all Node.js package managers
...
- Add comprehensive caching for npm, yarn, and pnpm package managers
- Cache paths now include:
- npm: ~/.npm, node_modules/.cache
- yarn: ~/.yarn, ~/.cache/yarn, ~/.cache/yarn/global
- pnpm: ~/.pnpm-store, ~/.cache/pnpm, ~/.local/share/pnpm/global
- Update cache keys to include all lockfile types (package-lock.json, yarn.lock, pnpm-lock.yaml)
- Rename 'Cache Tree-sitter CLI' to 'Cache npx store' for clarity
- Apply changes consistently across test, lint, and coverage jobs
This improves cache hit rates and build performance regardless of which
Node.js package manager is used in the development environment.
2026-01-04 15:32:40 +02:00
c5334da82f
fix(ci): ensure parser is built before testing in GitHub workflows
...
- Add explicit parser build step before sample code testing
- Remove --scope parameter that requires parser to be compiled first
- Fix tree-sitter CLI v0.25.0 compatibility issue in CI environment
The issue was that tree-sitter CLI v0.25.0 requires the parser to be
compiled before it can recognize custom language scopes. This fix
ensures the parser is always built before attempting to parse test files,
resolving the 'Unknown scope' error in GitHub Actions.
2026-01-04 15:32:40 +02:00
b88b851a74
perf: optimize grammar for 32x faster parsing performance
...
- Reduce grammar conflicts to essential bash and ShellSpec rules only
- Restore original precedence values for consistent rule ordering
- Simplify Data block rule while maintaining all functionality
- Add required statements field to match test expectations
Performance improvements:
- Parse speed: ~55 bytes/ms → 1784 bytes/ms (32x faster)
- All 61 tests still pass (100% success rate)
- Significantly reduced parser generation time and runtime complexity
The optimizations focused on minimizing unnecessary conflicts and
simplifying complex choice structures while preserving full ShellSpec
grammar compatibility and correctness.
2026-01-04 15:32:39 +02:00
193f8871b6
fix: apply CodeRabbit nitpick suggestions and improve code quality
...
- Fix grammar.js TypeScript errors by correcting optional field usage
- Update .yamlignore to use more robust glob pattern (**/node_modules/**)
- Remove hard-coded test count from README.md for maintainability
- Fix shellcheck directive format (add space after #) in all test specs
- Fix typos throughout test specifications:
- 'can not' → 'cannot'
- 'expantion' → 'expansion'
- 'singnal' → 'signal'
- 'It mean' → 'It means'
- Update CODE_OF_CONDUCT.md HTTP links to HTTPS
- Update tree-sitter parse command to use --scope instead of --language
- Add comments to .mega-linter.yml explaining disabled linters
All grammar tests still pass (61/61) and the parser functions correctly
with the updated tree-sitter CLI v0.25.0.
2026-01-04 15:32:39 +02:00
d65c6e6ec4
refactor: enhance CI/CD workflows and apply CodeRabbit suggestions
...
- Convert GitHub Actions from local to inline actions for better maintainability
- Add comprehensive caching for npm dependencies, tree-sitter CLI, and build artifacts
- Fix checkout steps missing in test matrix jobs
- Apply defensive programming in test coverage validation
- Use local tree-sitter CLI via npx instead of global installation
- Update tree-sitter-cli to v0.25.0 for compatibility with tree-sitter-bash
- Add proper tree-sitter field to package.json with grammar metadata
- Fix grammar precedence for Data blocks (#| lines now have higher precedence)
- Standardize dates in memory files to September 12, 2025
- Enhance workflow robustness with dynamic workflow ID resolution
- Improve test file pattern matching and error handling
This commit addresses all CodeRabbit review suggestions and optimizes
GitHub Actions workflows for better performance and reliability.
2026-01-04 15:32:39 +02:00
dd21bc5107
chore(ci): update workflows
2026-01-04 15:32:39 +02:00
b180fbeb48
chore: lint and code review fixes
2026-01-04 15:32:39 +02:00
13a00d2f0f
chore(ci): add coderabbit config
2026-01-04 15:32:39 +02:00
19b7b27ceb
fix(ci): add checkout before testing, cleanup
2026-01-04 15:32:39 +02:00
de1b21e88d
fix(ci): use inline steps instead of actions
2026-01-04 15:32:39 +02:00
66f2aa1099
fix(ci): checkout before using local actions
2026-01-04 15:32:39 +02:00
c8ba576b4e
feat: implement complete tree-sitter-shellspec grammar with comprehensive testing
...
- Add full ShellSpec grammar extending tree-sitter-bash
- Support all ShellSpec constructs: Describe, Context, It, hooks, utilities
- Include Data block parsing with statements and argument styles
- Add 61 comprehensive test cases covering real-world patterns
- Implement optimized GitHub workflows with CI/CD automation
- Configure complete development tooling (linting, formatting, pre-commit)
- Add comprehensive documentation and contribution guidelines
- Optimize grammar conflicts to zero warnings
- Support editor integration for Neovim, VS Code, Emacs
Breaking Changes:
- Initial release, no previous API to break
BREAKING CHANGE: Initial implementation of tree-sitter-shellspec grammar
# Conflicts:
# .github/workflows/codeql.yml
# .github/workflows/pr-lint.yml
# .pre-commit-config.yaml
# Conflicts:
# .github/workflows/pr-lint.yml
# Conflicts:
# .github/workflows/pr-lint.yml
2026-01-04 15:32:39 +02:00
renovate[bot]
12d20a17b4
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.496 → 3.2.497) ( #52 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-02 12:28:05 +02:00
renovate[bot]
08b460f0a9
chore(deps): update pre-commit hook rhysd/actionlint (v1.7.9 → v1.7.10) ( #53 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-02 10:21:50 +02:00
renovate[bot]
a54653aec1
chore(deps)!: update ivuorinen/actions (v2025.11.28 → v2026.01.01) ( #54 )
2026-01-02 09:49:08 +02:00
renovate[bot]
d580097759
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.495 → 3.2.496) ( #51 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-29 21:05:33 +02:00
renovate[bot]
42241b8499
chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.64.1 → 42.66.8) ( #50 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-27 12:01:16 +02:00
renovate[bot]
90bff1cec4
chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.26.11 → 42.64.1) ( #49 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 12:51:37 +02:00
renovate[bot]
7362a26865
chore(deps): update github/codeql-action action (v4.31.7 → v4.31.9) ( #48 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 07:48:30 +02:00
renovate[bot]
c443e12cea
chore(deps): update pre-commit hook igorshubovych/markdownlint-cli (v0.46.0 → v0.47.0) ( #47 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-13 11:10:49 +02:00
renovate[bot]
2a2018313b
chore(deps): update github/codeql-action action (v4.31.6 → v4.31.7) ( #46 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-07 05:49:49 +02:00
renovate[bot]
762bf92544
chore(deps): update actions/checkout action (v6.0.0 → v6.0.1) ( #45 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 16:57:55 +02:00
renovate[bot]
ef684994d2
chore(deps): update github/codeql-action action (v4.31.5 → v4.31.6) ( #44 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-03 14:50:37 +02:00
renovate[bot]
e7bcdb8776
chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.20.1 → 42.26.11) ( #43 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 14:54:37 +02:00
renovate[bot]
3c68cd2d5e
chore(deps)!: update ivuorinen/actions (v25.11.26 → v2025.11.28) ( #27 )
2025-11-29 10:00:45 +02:00
renovate[bot]
1f60912b47
chore(deps): update ivuorinen/actions action (25.11.24 → v25.11.26) ( #42 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-28 16:38:09 +02:00
renovate[bot]
5cb9382b03
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.492 → 3.2.495) ( #35 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 22:39:06 +02:00
renovate[bot]
661afa9a7b
chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.1.3 → 42.20.1) ( #37 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 22:38:49 +02:00
renovate[bot]
5bdc5cd0f8
chore(deps): update pre-commit hook igorshubovych/markdownlint-cli (v0.45.0 → v0.46.0) ( #39 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 22:38:26 +02:00
renovate[bot]
55f5500ace
chore(deps): update pre-commit hook rhysd/actionlint (v1.7.8 → v1.7.9) ( #41 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 22:38:00 +02:00
renovate[bot]
9fd0403c52
chore(deps): update ivuorinen/actions action (25.10.7 → 25.11.24) ( #21 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 22:37:32 +02:00
renovate[bot]
0ea5f92a9b
chore(deps): update github/codeql-action action (v4.31.2 → v4.31.5) ( #36 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 10:52:13 +02:00
renovate[bot]
9e427f55a7
chore(deps)!: update actions/checkout (v5.0.0 → v6.0.0) ( #40 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 10:12:31 +02:00
b2b319ddd2
fix(ci): switch CodeQL language from 'javascript' to 'actions'
2025-11-25 10:06:25 +02:00
renovate[bot]
7395a55dd6
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.490 → 3.2.492) ( #34 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 13:03:50 +02:00
renovate[bot]
770e8ac1ad
chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (42.0.1 → 42.1.3) ( #33 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-09 09:23:21 +02:00
renovate[bot]
c45e992052
chore(deps)!: update renovatebot/pre-commit-hooks (41.159.4 → 42.0.1) ( #32 )
2025-11-07 18:57:37 +02:00
renovate[bot]
ccea9029ee
chore(deps): update github/codeql-action action (v4.31.0 → v4.31.2) ( #30 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 21:29:03 +02:00
renovate[bot]
158a4a57c0
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.489 → 3.2.490) ( #31 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 07:17:59 +02:00
renovate[bot]
59af88cad5
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.488 → 3.2.489) ( #29 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 09:49:25 +02:00
renovate[bot]
66b9da45f6
chore(deps): update github/codeql-action action (v4.30.9 → v4.31.0) ( #26 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 13:54:17 +02:00
renovate[bot]
61fc36a9a8
chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (41.146.2 → 41.159.4) ( #28 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 13:26:04 +02:00
renovate[bot]
dd6a19176e
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.485 → 3.2.488) ( #25 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 11:59:31 +02:00
renovate[bot]
9b9f7af489
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.484 → 3.2.485) ( #24 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 12:59:03 +03:00
renovate[bot]
79a6d4d360
chore(deps): update github/codeql-action action (v4.30.8 → v4.30.9) ( #23 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 12:53:13 +03:00
renovate[bot]
60fd962b12
chore(deps): update github/codeql-action action (v4.30.7 → v4.30.8) ( #18 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 23:25:46 +03:00
renovate[bot]
84e3a6b7ec
chore(deps): update pre-commit hook rhysd/actionlint (v1.7.7 → v1.7.8) ( #19 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 23:25:25 +03:00
renovate[bot]
0a11a10acf
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.479 → 3.2.484) ( #22 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 23:09:48 +03:00
renovate[bot]
e49dc3dfee
chore(deps): update pre-commit hook renovatebot/pre-commit-hooks (41.132.5 → 41.146.2) ( #20 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-13 14:28:26 +03:00
renovate[bot]
0eab4aa28b
chore(deps): update pre-commit hook bridgecrewio/checkov (3.2.474 → 3.2.479) ( #17 )
...
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 17:00:24 +03:00