Thank you for deciding to contribute to TechScript! As an open-source project aiming to build a human-first programming language, we value your help in expanding the language features, stabilizing the VM, updating documentation, and building developer tools.
TechScript is written entirely in Rust as a Cargo workspace. To get started, make sure you have the following installed:
- Rust Toolchain: Install via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Git: For version control.
- Clang/LLVM (Optional, required for LLVM-backend contributions):
- Ubuntu/Debian:
sudo apt install llvm-dev libclang-dev - macOS: Installed via Xcode CLI tools or homebrew (
brew install llvm). - Windows: Download the LLVM installer or use
winget install LLVM.LLVM.
- Ubuntu/Debian:
- Fork the TechScript repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/techscript.git cd techscript - Add the upstream remote:
git remote add upstream https://github.com/Tcode-Motion/techscript.git
The codebase is organized like Rust and Zig to keep compilation, execution, and tools clean:
compiler/- Lexer, parser, semantic analyzer, AST, IR, optimizer, and LLVM backend.runtime/- Virtual Machine (VM), Tree-walking interpreter, garbage collector, and native runtime.stdlib/- Standard library written in TechScript and Rust.cli/- The unifiedtechcommand-line executable.tools/- Formatter, linter, LSP, and package manager.examples/- Working demonstration scripts.tests/- System integration and language regression tests.benchmarks/- Scripts and suites for testing engine performance.
We use a standard branching model. Always make changes on a descriptive branch, not on the main branch.
git checkout -b feature/my-cool-feature
# or
git checkout -b fix/issue-123We enforce strict styling and quality rules. Run these commands locally before committing:
# Verify formatting
cargo fmt --all -- --check
# Run linter
cargo clippy --workspace --all-targets -- -D warnings
# Build all workspace targets
cargo build --workspaceVerify both Rust internal tests and TechScript integration tests pass:
cargo test --workspaceWe follow Conventional Commits:
feat: ...for new features or syntax.fix: ...for compiler/runtime bug fixes.docs: ...for documentation changes.style: ...for formatting updates.refactor: ...for code restructurings.test: ...for adding/updating tests.
Example:
git commit -m "feat: add support for pattern matching default keyword"Before submitting a Pull Request:
- Ensure all code compiles without warning.
- Run
cargo fmtandcargo clippy. - Add corresponding documentation in
docs/if modifying syntax, CLI flags, or standard libraries. - Add regression tests inside
tests/or examples inexamples/. - Link the issue you are fixing in the PR description (e.g.,
Fixes #123).
Once submitted, our CI workflow will run automated checks on Windows, Linux, and macOS. A maintainer will review your code and request adjustments if necessary.