Welcome to the CVS (ROCm Cluster Validation Suite) project! This guide will help you get started with contributing to the codebase.
- Python 3.9 or later
- Git
Debian/Ubuntu Systems: On Debian and Ubuntu distributions, install the venv module:
sudo apt install python3-venv-
Clone the repository:
git clone https://github.com/ROCm/cvs.git cd cvs -
Set up the development environment:
make test-venv source .test_venv/bin/activate # On Linux/macOS # or .test_venv\Scripts\activate # On Windows
-
Install the package in development mode:
make installtest
Before submitting changes, ensure all tests pass:
make testThis command will:
- Run all unit tests
- Execute CLI command tests
- Validate that your changes don't break existing functionality
For detailed information on testing procedures and guidelines, see UNIT_TESTING_GUIDE.md.
We use Ruff for linting and formatting Python code. Always check and fix code quality issues:
make fmt-checkThis will check for formatting issues without modifying files.
make fmtThis will format all Python files according to our style guide.
make lintThis will check for:
- Linting issues (code style, potential bugs)
make lint-fixThis will automatically fix safe linting issues.
For unsafe fixes (like removing unused variables), use:
make unsafe-lint-fixThis provides interactive confirmation for each file with potentially breaking changes.
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes
-
Run quality checks:
make fmt-check make lint make test -
Fix any issues:
make fmt make lint-fix make unsafe-lint-fix
-
Run tests again:
make test -
Commit your changes:
git commit -ms "Description of changes" -
Create a pull request
To build the package for distribution:
make buildThis creates a source distribution in the dist/ directory.
make help- Show all available targetsmake test-venv- Create test virtual environmentmake installtest- Install package in development modemake test- Run all testsmake lint- Check code quality (linting only) (linting only)make fmt- Format codemake fmt-check- Check formatting without modifying filesmake lint-fix- Auto-fix safe linting issuesmake unsafe-lint-fix- Interactive unsafe fixesmake build- Build distributionmake clean- Clean build artifacts and environments
- Use Ruff for consistent formatting
- Follow PEP 8 style guidelines
- Write descriptive commit messages
- Add tests for new functionality
- Update documentation as needed
If you have questions:
- Check the existing issues and documentation
- Ask in the ROCm community forums
- Contact the maintainers
Thank you for contributing to CVS!