Skip to main content

Contributing to UQAL

UQAL is split across three repositories. Each has different rules about who can contribute and how.


Which repo should I contribute to?

I want to…RepoOpen to everyone?
Build a new database moduleuqal-modules✓ Yes
Fix a bug in an existing community moduleuqal-modules✓ Yes
Improve documentationuqal-docsvia PR
Work on the core engine (parser, AST, CLI)uqal-core✗ Team only

uqal-modules — Open Community Contributions

Anyone can contribute a community module or fix bugs in existing ones.

How it works:

  1. Fork uqal-lang/uqal-modules
  2. Create a staging branch: dev/community.<name>
  3. Build your module in feature branches: feat/community.<name>/...
  4. Open a PR from dev/community.<name> to main
  5. A maintainer reviews and approves before merge

All PRs are validated automatically by CI (structure, tests, coverage, docs). A maintainer approval is always required before anything is merged.

See the full guide: Community Workflow


uqal-core — Team Only

uqal-core is the engine that all modules run on. Development is restricted to members of the UQAL team to ensure stability and backwards compatibility.

Pull requests from outside the team will not be approved and will be closed.

If you want to work on uqal-core:

  1. Open an issue on uqal-core describing what you want to work on
  2. The maintainers will decide whether to invite you to the team as a developer
  3. Once added, you can create branches from dev and open PRs — every PR still requires maintainer approval before merge

Why is this restricted?
Changes to uqal-core affect every module. A breaking change in the parser or module interface can break all community modules at once. We keep the contributor circle small to control that risk.


uqal-docs — Maintainer Managed

Documentation is updated automatically when modules are published. Manual changes (fixing typos, improving wording) are handled by maintainers.

If you spot an error in the docs, open an issue on uqal-docs and a maintainer will fix it.


Reporting Bugs


Where to Start