CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
1.6 KiB
1.6 KiB
hipFile Style Guide
File and Directory Structure
Organization
Naming
- Use hyphens instead of underscores in file and directory names
Formatting
- Code must meet the requirements of our options to
clang-format
Naming Conventions
Comments and Documentation
Header Guidelines
- Headers should follow include-what-you-use guidelines
- Use
#pragma onceinstead of include guards - Place local headers (quoted) ahead of system headers (brackets), with each block in alphabetical order
- Public headers MUST have Doxygen markup for all public symbols
- Private headers should have Doxygen markup flagged with
@internal
Language Features and Idioms
CMake
- We use CMake 3.x (see the root
CMakeLists.txtfor the specific version) and have not moved to 4.x yet - Use modern CMake (e.g., 3.x) paradigms and avoid "legacy CMake"
C/C++
- C++17 and C11 are supported
- Use modern C++ idioms
- Do not use GNU extensions
- Code should be platform-independent
Shell scripts
- All shell scripts should be run through ShellCheck and report no issues
- Use
#!/usr/bin/env bashas a platform-independent shebang line - bash-isms are allowed, within reason
Error Handling
Testing Conventions
- All new functionality introduced MUST include tests of the feature
- This could include unit tests, system tests, and integration tests
- These tests MUST be automatable
- Bugfixes MUST include a proof-of-concept test that fails before the fix and passes after
Tooling and Enforcement
clang-tidy, formatter, etc.