Yonder Deep 2026
READ DOCS/docker.md
mainis the primary working branch and should always contain stable, tested code- All code in
mainmust pass automated tests and peer review - Do not force push to
main, create your own branch before working on your issue.
- Create feature branches for individual or subteam work:
feature/sensor-integration,feature/navigation-system - Use descriptive branch names:
andytgarcia/pressure-sensor-calibration,yonderdeep/motor-controller-pid - Branch naming convention:
yourgithubusername/brief-descriptive-name - Delete branches after merging to keep the repository clean
- Create a pull request from your branch to
main - Ensure all tests pass (or write your own)
- Request review from at least one team member
- Address review comments
- Merge only after approval
- Nested blocks should be indented one level deeper
- Make lines entirely readable on screen
- Break long lines logically at operators, commas, or before opening parentheses
- Comments should also respect the line length limit
if (condition) {
// code here
}
else {
// alternative code
}
void functionName() {
// function body
}- Use
camelCasefor local variables:sensorData,motorSpeed - Use
UPPER_SNAKE_CASEfor constants:MAX_DEPTH,SENSOR_TIMEOUT_MS - Use descriptive names that convey purpose:
currentDepthinstead ofd
- Use
camelCasefor function names:calculateBuoyancy(),updateMotorController() - Use verb-noun pairs for clarity:
readPressureSensor(),setThrottle()
- Use
PascalCasefor class names:NavigationSystem,PressureSensor - Use nouns or noun phrases:
MotorController,DataLogger
- Use
snake_casefor filenames:motor_controller.cpp,pressure_sensor.h - Header files use
.hor.hppextension - Implementation files use
.cppor.cextension
Use '#pragma once' for all .h and .hpp files
#pragma once
class ClassName
Document every class with its purpose and usage:
/**
* @class PressureSensor
* @brief Interface for MS5837 pressure/temperature sensor
*
* Provides depth and temperature readings using I2C communication.
* Handles calibration and conversion to engineering units.
*/
class PressureSensor {
// class definition
};Document all public functions and complex private functions:
- Use inline comments for complex logic or non-obvious decisions
- Explain the "why," not the "what"
- Keep comments up-to-date with code changes
- Read this entire README
- Review the existing codebase to understand project structure
- Set up your development environment
- Start with a small issue labeled "good first issue"
- Ask questions in Discord
For questions or suggestions about these guidelines, please open an issue or contact the project maintainer.