Thank you for your interest in contributing! We welcome contributions from the community across all our open source projects, and we want every contributor to feel welcome, included, and supported.
This guide applies to every repository under the cognitx-leyton organization. Individual repositories may add their own setup or testing instructions in their README.md — always check there first for language- and stack-specific details.
You don't need to write code to make a difference. Useful contributions include:
- Reporting bugs and edge cases
- Suggesting features and improvements
- Improving documentation, examples, and READMEs
- Reviewing open pull requests
- Helping other users in issues and discussions
- Writing or improving tests
- Find a repository you want to contribute to under cognitx-leyton
- Read its
README.mdfor setup, build, and test instructions — each project may use a different language and toolchain (Laravel/PHP, TypeScript/Node, Vue, Python, etc.) - Fork the repository
- Clone your fork locally
- Create a branch from
dev(ormainif the repo has nodev) — see the branch model below - Make your changes and test them locally
- Commit with a signed, conventional message (see sections 4 and 5)
- Push to your fork and open a Pull Request against the repository's base branch
New to the project? Filter issues by the good first issue label across the organization to find a friendly starting point.
Our repositories follow a protected branch model:
| Branch | Purpose | Protected |
|---|---|---|
main |
Production-ready code. All changes land here via PR. | Yes |
release |
Release-candidate stabilisation before tagging a version. | Yes |
hotfix |
Urgent fixes that need to skip the normal cycle. | Yes |
dev |
Integration branch where day-to-day work lands first (when the repo uses one). | No |
Feature branches are typically cut from dev (or from main when a repo has no dev). Use descriptive prefixes:
feat/<short-description>— new featuresfix/<short-description>— bug fixesdocs/<short-description>— documentationchore/<short-description>— tooling, CI, refactorstest/<short-description>— tests only
All protected branches require at least one Code Owner approval before merging. See each repository's CODEOWNERS file for the list of reviewers. Force-pushes and branch deletions are disabled, and stale reviews are dismissed when new commits are pushed.
We use Conventional Commits across the organization. This keeps history readable and makes it easy to generate changelogs.
feat(parser): detect nestjs guards as decorator nodes
fix(loader): handle empty file nodes without crashing
docs(readme): add example query for cyclic dependencies
chore(ci): bump action versions
test(export): cover chunked queue failure path
Scope (the part in parentheses) is optional but encouraged — use the module, package, or area most affected.
All contributions must be signed-off to indicate agreement with the Developer Certificate of Origin. Sign off each commit with the -s flag:
git commit -s -m "feat(api): add pagination to list endpoint"You can set up a convenient alias:
git config alias.cos "commit -s"
# then use: git cos -m "..."The sign-off appends a Signed-off-by: Your Name <your@email> trailer to the commit message. CI will reject unsigned commits on protected branches.
When opening a PR:
- Keep it focused — one logical change per PR. Split unrelated work.
- Target the right base —
devif it exists, otherwisemain. - Fill in the PR template — what, why, how you tested, linked issues.
- Include tests — new features and bug fixes should come with tests that fail without the change.
- Update documentation — if the change affects usage, public APIs, or configuration.
- Follow the existing style — match the conventions and tooling already in the repo (formatters, linters, type checkers).
- Resolve conversations — address or explicitly acknowledge every review comment before requesting re-review.
- Keep CI green — don't merge with failing checks.
PRs are reviewed by Code Owners. We aim to give first feedback within 2 business days.
Use the Issues tab on the relevant repository. Please include:
- A clear title and description
- Steps to reproduce
- Expected vs actual behaviour
- Environment details (OS, language version, relevant package versions)
- A minimal reproduction (code snippet, failing test, or small repo) when possible
Search existing issues before opening a new one to avoid duplicates.
We use a common set of labels across repositories to help you navigate:
good first issue— perfect for newcomershelp wanted— extra attention or community help welcomebug— something isn't working as expectedenhancement— new feature or improvementdocumentation— docs-only changesquestion— request for clarification or informationwontfix— will not be worked on (with explanation)
Please do not open a public issue for security vulnerabilities. See our Security Policy for how to report privately and what to expect in return.
All contributors are expected to follow our Code of Conduct. Be respectful, constructive, and patient — everyone was new once.
- Open a Discussion or Issue on the relevant repository
- Email us at cognitx@leyton.com for sensitive or business inquiries
- Visit cognitx.leyton.com
We aim to respond to communications within 2 business days.
By contributing, you agree that your contributions will be licensed under the same Apache 2.0 License that covers the project, unless the repository explicitly states otherwise in its LICENSE file.
Thank you for helping make Leyton CognitX better.