Gemini Workspace Configuration
Read “./README.md” for all instructions. Use poetry run cb instead of just running ./cb.py Use poetry run help to gather all details.
Style Guide
- You must follow the google style guide for python coding.
- Do not use non-local imports inside classes or methods.
- You must not skip pylint checks.
- Check surrounding code and class hierarchies for reusing functionality.
- Use existing tests and test classes to write platform and mock tests.
Platform Code
- Avoid using raw shell-commands if possible and directly use the platform helpers for the same functionality.
- Avoid using “shell = True”, eiher use or extend the explicit platform helpers or look for simple workarounds.
- New platform methods should be implemented in the most abstract platform class if possible.
Paths
- Use pth.AnyPath or pth.LocalPath instead of strings for paths.
- Use pth.AnyPath for paths that can either be local and/or remote.
- Use pth.LocalPath for paths that are exclusively local.
Input Parsing
- All user input should pass through one of the helpers from
crossbench.parse. - Do early input validation either in the config parser or argument parsing.
- Any new parser helper method needs a dedicated unittest.
ConfigObjects
- Any complex input parameter should be a dedicated immutable / frozen ConfigObject with proper documentation.
- Add unittests for each newly added ConfigObject.
- Add example config files to the config/doc or a better suited config/* folder.
Sanity Checks
- Always do
poetry run ruff check after completing a change to validate all results. - Run
poetry run mypy crossbench after finishing a larger change. - Run tests with
poetry run pytest tests/crossbench -x -n 7