Contributing to V++

Yes contributions are welcome. V++ is MIT licensed and open source. Issues and pull requests are accepted on GitHub.

This is a young project (small maintainer team, fast moving main). We review PRs as we can; small, focused changes merge faster than large rewrites.

Good first contributions

Area Examples
Docs Fix typos, clarify guides, add examples
Tests .vpp test cases, cargo test coverage
Stdlib std/* modules, registry packages
Extension editor/vscode-vpp/ UX, snippets, docs
Examples examples/, projects/
Bug fixes Link a repro in the issue first

Language design changes (new syntax, breaking SPEC) open an issue first so we can discuss before you invest time.

How to contribute

1. Issues first open an issue for bugs or feature ideas before large PRs

2. Fork & branch work on a feature branch off main

3. Test cargo test --all-targets; if touching codegen, cargo test --features codegen

4. Format cargo fmt, vpp fmt on any .vpp examples you change

5. PR describe what changed and why; link the issue

Code areas

Area Path
Lexer / parser src/lexer, src/parser
Type checker src/types
Interpreter src/interp
Codegen src/codegen
LSP src/lsp, src/bin/vppls.rs
VS Code extension editor/vscode-vpp/
Docs docs/

Commit messages

Use clear summaries: Fix …, Add …, Docs: … same style as existing history.

Releases (maintainers)

1. Bump the same version in Cargo.toml and editor/vscode-vpp/package.json

2. Update CHANGELOG.md and editor/vscode-vpp/CHANGELOG.md

3. Tag and push: git tag vX.Y.Z && git push origin main && git push origin vX.Y.Z

4. Confirm the Release workflow succeeds on GitHub Releases

License

By contributing, you agree your work is licensed under the project MIT license.

Building from source

Requirements

  • Rust (stable) rustup.rs
  • LLVM 22 + clang (for codegen feature)
  • Git (for git dependencies in tests)

Build

terminal
git clone https://github.com/shauryaR790/V-.git
cd V-
cargo build --release --features codegen,lsp
# Verify install: vpp doctor
# Restart the terminal after PATH changes

Windows:

terminal
$env:LLVM_SYS_221_PREFIX = "C:\Program Files\LLVM"
# Restart terminal after updating PATH
vpp --version
vpp doctor
vpp run examples/hello.vpp

Binaries: target/release/vpp.exe, target/release/vppls.exe.

Features

Feature Enables
*(default)* Interpreter, checker, fmt, CLI
codegen Native vpp build, LLVM
lsp vppls language server

Install locally

terminal
cargo install --path . --features codegen,lsp
# Verify install: vpp doctor
# Restart the terminal after PATH changes
# Type-check: vpp check main.vpp
# Format source: vpp fmt main.vpp

Running tests

terminal
# Interpreter + parser + typecheck (no LLVM)
cargo test --all-targets
# Native codegen (local LLVM required)
cargo test --features codegen -- --test-threads=1
# Parity: interpreter vs native stdout
cargo test --features codegen parity
# Stress script (Windows)
.\stress.ps1

CI runs on every push to main see GitHub Actions.

Security Policy

Supported versions

Version Supported
0.5.x Yes
< 0.5 No

Reporting a vulnerability

Do not open public GitHub issues for security vulnerabilities.

Email shauryajiku@gmail.com with:

  • Description of the issue
  • Steps to reproduce
  • Impact assessment
  • Affected version (e.g. v0.5.0)

We aim to respond within 7 days.

Scope

Reports about the V++ compiler, language server, VS Code extension, and official release binaries are in scope.

General language design feedback belongs in GitHub Issues.

Safe harbor

We appreciate responsible disclosure and will credit reporters in release notes when fixes ship (unless you prefer anonymity).

Contributor Covenant Code of Conduct

Our pledge

We pledge to make participation in the V++ project a harassment free experience for everyone.

Our standards

Positive: respectful feedback, welcoming newcomers, focusing on what is best for the community.

Unacceptable: harassment, trolling, personal attacks, publishing others' private information.

Enforcement

Report conduct concerns to shauryajiku@gmail.com. Maintainers may remove contributions or ban repeat offenders.

Attribution

Adapted from the Contributor Covenant, version 2.1.