The coreai-torch source code is open source under the BSD 3-Clause license. We welcome contributions within a defined scope — please read this document before opening a pull request or issue.
- Reporting bugs and conversion failures with clear, reproducible steps
- Reporting unsupported ops or layer types (see issue templates)
- Improving documentation
- Adding or improving tests for existing conversion paths
- Bug fixes for existing conversion behavior
- Minor enhancements to existing extension points
We maintain high standards across the project. Contributions are evaluated on:
- Technical quality and correctness
- Adherence to existing conventions and architectural patterns
- Your demonstrated understanding of the implementation and its implications
- Clarity of communication
- Maintainability
You may use productivity tools, including AI-assisted coding tools, to help you work more efficiently. However, you remain fully accountable for all submitted code, issues, pull requests, and comments. Maintainers expect you to thoroughly review, understand, and validate everything you submit — and be able to explain your contributions in detail. AI-generated content must meet the same rigorous standards as human-written code.
Important: Low-quality pull requests and issues, including those that appear to be generated without understanding, validation, or genuine human review, will be treated as spam and moderated accordingly.
We keep the API surface intentionally limited to ensure reliability and maintainability across PyTorch releases.
In scope:
- Bug fixes and conversion failures
- Support for missing ops or layer types via existing conversion mechanisms (e.g. adding an entry to the ATen-to-Core resolver, fixing a numerical mismatch in an existing lowering)
- Minor enhancements to existing extension points
- Documentation improvements
- Test additions
Not in scope at this time:
- Major new conversion features or architectural changes
- Changes to the core API surface
A detailed setup guide is in README.md.
For anything beyond a straightforward bug fix, open a Contribution Proposal first. Describe what you want to contribute and wait for a response before writing code.
Before opening an issue:
- Search existing issues to avoid duplicates
- Use the appropriate issue template
- For conversion failures, include a minimal reproducible model or code snippet
- For security issues, follow the Apple Open Source security disclosure process
Please review the PR template before submitting. Small, focused pull requests are much more likely to be reviewed and merged than large ones.
All contributions require tests.
- Before submitting: Ensure all existing tests pass locally. See README.md for instructions.
- New functionality: New features and bug fixes require corresponding automated tests.
- Numerical accuracy: For changes that affect model output, include a test that validates the result is correct.
This project uses ruff for linting and
formatting, configured in pyproject.toml. Run before submitting:
uv run ruff check . --fix
uv run ruff format .Type annotations are required for all new public APIs.
Commit messages should be clear and concise, describing what changed and why.
This project is maintained best-effort. We aim to triage issues and pull requests as bandwidth allows; please be patient if a response takes some time.
This project follows the Apple Open Source Code of Conduct. All community members are expected to adhere to these guidelines.