Thanks for your interest in YAMS — contributions of all sizes are welcome.
Bug reports, docs fixes, tests, small cleanups, design feedback, and larger features all help. If you're not sure whether something is worth opening, it probably is.
- Please be respectful and constructive.
- If you're unsure whether something is a bug or a feature request, open the issue with your best guess.
- If your report is incomplete, that's okay — include what you know and we can help narrow it down.
- For security issues, please do not file a public issue. See
SECURITY.md.
We use the GitHub issue templates in .github/ISSUE_TEMPLATE/ for this repository.
Helpful details include:
yams --version- platform details
- exact commands or steps
- expected vs actual behavior
- relevant logs or backtraces
- a small repro, if you have one
For feature requests, lead with the problem you're trying to solve. A strong problem statement is often more useful than a fully specified solution.
The supported local development workflow is:
- Meson + Conan 2
- Ninja
- C++20
Quick debug loop:
conan install . -of build/debug -s build_type=Debug -b missing
meson setup build/debug \
--prefix /usr/local \
--native-file build/debug/build/Debug/generators/conan_meson_native.ini
meson compile -C build/debug
meson test -C build/debugAdditional references:
- build and toolchain flow:
docs/BUILD.md
If you're making a small docs-only or narrow change, you do not need to run the entire project test matrix. Please run the smallest relevant check you can.
For CI/test speed and stability during local work:
export YAMS_DISABLE_MODEL_PRELOAD=1- C/C++ formatting is enforced with
clang-format(see.clang-format). - Repo-local git hooks live in
.githooks/. - Enable them once with:
git config core.hooksPath .githooksThe pre-commit hook formats staged C/C++ files and can run extra lint checks.
Please aim for changes that are:
- focused
- well-described
- tested at the smallest sensible scope
A helpful PR usually explains:
- what changed
- why it changed
- how it was tested
- any follow-up work or tradeoffs
AI tools are welcome in YAMS development. Use them to explore the codebase, prototype an approach, draft documentation, or help with repetitive work.
The contributor still owns the result. Before opening a pull request:
- review the full change
- run the smallest relevant checks
- understand the behavior and tradeoffs well enough to discuss them
- describe material AI assistance in the PR when it helps reviewers understand the work
Do not submit changes you have not reviewed or cannot explain. Keep bug reports, feature requests, and review discussions grounded in your own observation, testing, and judgment.
- Use a concise subject line.
- Add a body when rationale or context would help reviewers.
- Reference tickets when relevant.
- DCO sign-off is encouraged:
Signed-off-by: Your Name <you@example.com>
- Review
GOVERNANCE.mdfor roles, decision-making, and releases. - Material changes should go through the RFC/ADR process when appropriate (
docs/rfcs,docs/adrs). CODEOWNERSreviews are encouraged where applicable.
We want YAMS to be a welcoming place to collaborate. Please read CODE_OF_CONDUCT.md.