This file governs AI-assisted work on the Apache Thrift codebase. It supplements but does not replace CONTRIBUTING.md.
Apache Thrift is an Apache Software Foundation (ASF) project released under the Apache License 2.0. The AI must actively enforce and monitor ASF licensing policy:
LICENSE and NOTICE: When adding third-party code or binaries that require attribution, add the appropriate notices to LICENSE and/or NOTICE following the ASF guide on licenses and notices. If in doubt whether an entry is required, add it and flag it in the PR description for committer review.| Type | Tracker | Notes |
|---|---|---|
| Significant changes | Apache JIRA — THRIFT project | Required for all non-trivial PRs |
| Minor / quick fixes | GitHub Issues | Typos, trivial compiler warnings, etc. |
JIRA integration with GitHub: Including a JIRA ticket identifier at the start of a PR title automatically creates a link from JIRA to the PR.
THRIFT-9999: Short description of the changeTHRIFT-9999: Short description of the change Client: cpp,py,java (comma-separated list of affected languages)
Example: THRIFT-5929 → PR #3350.
Follow CONTRIBUTING.md in full. Key points:
make style.THRIFT-9999.apache:master.Per CONTRIBUTING.md § AI generated content and the ASF Generative Tooling Guidance:
Co-Authored-By: <AI tool name and version> Generated-by: <AI tool name and version>Example:
THRIFT-9999: Fix connection timeout handling in Go client Client: go Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
/lib, /test, /tutorial)/lib/<lang>/ contains its own CLAUDE.md or AGENTS.md, those rules apply to all work in that language directory./test/ and /tutorial/./test/ or /tutorial/ themselves contain a CLAUDE.md/AGENTS.md for a given language, combine the rules: the file closer to the code (i.e., in the same directory) takes precedence on any conflict.LICENSE and/or NOTICE updated if third-party attribution is requiredTHRIFT-NNNN: (if ticket exists)Client: languagesmake style passesCo-Authored-By: / Generated-by: where applicable