Thanks for your interest in contributing to Bashkit!
# Clone
git clone https://github.com/everruns/bashkit.git
cd bashkit
# Install just (task runner)
cargo install just
# Build
just build
# Test
just test- Fork the repo
- Create a feature branch
- Make changes
- Run pre-PR checks:
just pre-pr - Submit a pull request
just --list # Show all commands
just build # Build all crates
just test # Run all tests
just fmt # Format code (auto-fix)
just check # fmt + clippy + test (checks only)
just pre-pr # Full pre-PR validation- Format with
cargo fmt - Lint with
cargo clippy -- -D warnings - License check:
cargo deny check
Follow Conventional Commits:
feat(parser): add brace expansion support
fix(awk): handle regex in gsub correctly
docs: update compatibility scorecard
test: add array edge case tests
- Check if the feature is documented in
specs/ - Add spec tests in
crates/bashkit/tests/spec_cases/ - Implement the feature
- Update
crates/bashkit/docs/compatibility.mdif applicable - Update
specs/009-implementation-status.mdif removing a limitation
Tests live in .test.sh files:
### test_name
# Optional description
echo hello world
### expect
hello world
### end
### skipped_test
### skip: reason for skipping
command
### expect
expected
### end-
just pre-prpasses - Rebased on main
- Specs updated if behavior changes
- CI green
See specs/ for design documents:
001-architecture.md- Overall design002-parser.md- Parser/lexer details003-vfs.md- Virtual filesystem004-testing.md- Testing strategy
Open an issue at https://github.com/everruns/bashkit/issues