This is a short guide to the commit conventions used for the Thrust Compiler (thrustc).
The title should be clear. It may use technical terms when needed. A good commit title follows this syntax:
Use this syntax:
feat(...)
Valid locations:
llvm_backendAny change related to the LLVM backend.llvm_linker_driverAny change related to the LLVM Linker Driver invocation.gcc_backendAny change related to the GNU Compiler Collection (GCC) backend.frontendAny change related to the Abstract Syntax Tree (AST), Lexer, Parser or TypeChecker.project-visualGeneral or visual changes to the compiler project on Github (examples: README.md, assets, highlighting, banners).projectChanges to Cargo, the Rust toolchain, the Github repository, Github actions, or the creation of a new part of the compiler (Cargo workspaces).fuzzingAny change related to the compiler fuzzing suite (fuzz/), its corpora and fuzz targets.docAny change related to the compiler documentation and guides in the repository (examples: CONTRIBUTING.md, COMPILER_DIAGNOSTICS.md, COMPILER_FUZZING.md).abiAny change related to the Application Binary Interface (ABI) representation, lowering, calling conventions or target ABI handling.preprocessadorAny change related to the preprocessor and module or import resolution (thrustc_preprocessor).stdAny change related to the standard library (std/).lspAny change related to the language server and editor integration (thrustc_lsp,lsp/).
Example:
feat(llvm_backend) Adding support for TLS thread priority.
Use this syntax:
fix(...)
Valid locations:
llvm_backendAny change related to the LLVM backend.llvm_linker_driverAny change related to the LLVM Linker Driver invocation.gcc_backendAny change related to the GNU Compiler Collection (GCC) backend.frontendAny change related to the Abstract Syntax Tree (AST), Lexer, Parser or TypeChecker.project-visualGeneral or visual changes to the compiler project on Github (examples: README.md, assets, highlighting, banners).projectChanges to Cargo, the Rust toolchain, the Github repository, Github actions, or the creation of a new part of the compiler (Cargo workspaces).fuzzingAny change related to the compiler fuzzing suite (fuzz/), its corpora and fuzz targets.docAny change related to the compiler documentation and guides in the repository (examples: CONTRIBUTING.md, COMPILER_DIAGNOSTICS.md, COMPILER_FUZZING.md).abiAny change related to the Application Binary Interface (ABI) representation, lowering, calling conventions or target ABI handling.preprocessadorAny change related to the preprocessor and module or import resolution (thrustc_preprocessor).stdAny change related to the standard library (std/).lspAny change related to the language server and editor integration (thrustc_lsp,lsp/).
When you list more than one location, separate them with a comma ,.
Example:
fix(frontend) Fixing several issues on the abstract syntax analyzer.
Use this syntax:
refac(...)
Valid locations:
llvm_backendAny change related to the LLVM backend.llvm_linker_driverAny change related to the LLVM Linker Driver invocation.gcc_backendAny change related to the GNU Compiler Collection (GCC) backend.frontendAny change related to the Abstract Syntax Tree (AST), Lexer, Parser or TypeChecker.project-visualGeneral or visual changes to the compiler project on Github (examples: README.md, assets, highlighting, banners).fuzzingAny change related to the compiler fuzzing suite (fuzz/), its corpora and fuzz targets.docAny change related to the compiler documentation and guides in the repository (examples: CONTRIBUTING.md, COMPILER_DIAGNOSTICS.md, COMPILER_FUZZING.md).abiAny change related to the Application Binary Interface (ABI) representation, lowering, calling conventions or target ABI handling.preprocessadorAny change related to the preprocessor and module or import resolution (thrustc_preprocessor).stdAny change related to the standard library (std/).lspAny change related to the language server and editor integration (thrustc_lsp,lsp/).
Example:
refac(lsp) Reorganizing language server analysis structures.
To write a combined title, use this syntax:
(feat(...), refac(...), fix(...))
- Enclose the whole title in parentheses
(). - Separate each feature, refactor or fix with a comma
,.
Keep the description short and clear. It may use technical terms when needed.

