Skip to content
CONTRIBUTE

Contribute to WeaveC

WeaveC is developed in the weavefoundry/weavec repository. Contributions can improve diagnostics, supported C patterns, test coverage, performance, or the documentation itself.

Follow the developer guide to install LLVM, configure the dev preset, and run unit and integration tests.

Terminal window
cmake --preset dev
cmake --build --preset dev
ctest --preset dev

The architecture guide explains the three libraries: Core owns the model, Analysis bridges Clang to Core, and Frontend orchestrates the driver, program analysis, and diagnostics.

Ownership semantics, checker rules, annotations, diagnostic identifiers, and serialized cross-unit contracts are specified by RFCs. Read the relevant accepted RFC before changing those areas. Propose a new RFC for a new design decision; a bug fix that restores the specified behavior does not need one.

Start with the RFC process and RFC library. Core must remain independent of Clang and LLVM headers.

  • Add meaningful unit and integration coverage for changed behavior.
  • Every new diagnostic needs a stable ID, an annotation-reference entry, a unit test, and a lit test pinning its exact message.
  • Use Conventional Commit titles and update the relevant user guide.
  • Run formatting and required checks. Generated build outputs are not source files.
  • Leave CHANGELOG.md to semantic-release; document earlier historical context in the development history only when appropriate.

Use the edit link on any page to find its maintained source. Some reference pages are generated from existing repository guides, so their edit link points to that guide. The website guide covers local preview, content generation, tests, and GitHub Pages deployment.

For larger changes, open an issue describing the problem and proposed scope before investing in the implementation.