Thank you for your interest in contributing to CORE! There are two main ways to
contribute: rule contributions (via cdisc-open-rules) and engine contributions
(code, tests, documentation in this repository).
Conformance rules are maintained separately in
cdisc-open-rules. If you want to:
- Propose a new conformance rule
- Report an issue with an existing rule's logic
- Contribute a rule implementation
Please open an issue or pull request in that repository.
For questions about rule contribution workflows, post in GitHub Discussions.
Follow the Development → Environment Setup guide to clone the repository and install dependencies.
This project enforces consistent formatting and linting via pre-commit hooks.
Tools used:
black— Python code formatterflake8— Python linteryamllint— YAML lintermarkdownlint-cli2— Markdown lintercheck-json— JSON syntax validator
Install the dev dependencies (into your venv) and the pre-commit hooks:
pre-commit installThis installs the hooks into .git/hooks/ so formatting and linting run automatically
on each commit.
To run the checks manually:
pre-commit run --all-filespython -m pytest testsThis runs both unit and regression tests. All tests must pass before submitting a pull request.
- Fork the repository and create a feature branch from
main. - Make your changes, following the code style guidelines above.
- Add or update tests for any changed behavior.
- Ensure all tests pass locally.
- Open a pull request with a clear description of the change and the motivation behind it.
For larger changes or new features, consider opening a GitHub Discussion or issue first to align on the approach.
Use GitHub Issues to report bugs or request features.
When reporting a bug, please include:
- A clear description of the problem
- Steps to reproduce
- Your operating system and Python version (or executable version)
- Relevant logs or error messages
For general questions, use the Q&A discussion board. Please search existing discussions before opening a new one.