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. Rule authoring can also be done through the hosted CORE Rule Editor.
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:
Both black and flake8 are included in requirements-dev.txt. After installing dependencies, install 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.