-
Use a virtual environment for Python:
python -m venv .venv && source .venv/bin/activate # macOS/Linux # Windows: python -m venv .venv && .venv\Scripts\activate
-
Install Node.js dependencies with
npm ci(orpnpm i --frozen-lockfile) — but do not commitnode_modules/. -
Build/cached paths are ignored via
.gitignore:node_modules/- Node.js dependencies__pycache__/- Python bytecode cachedist/,build/- Build artifacts.venv/,venv/- Virtual environments.DS_Store- macOS system files.arduino-build/,.pio/- Firmware build caches
-
If you accidentally track these files, untrack them (they'll stay on your disk):
git rm -r --cached node_modules dist build __pycache__
-
Before pushing, always run
git status— it should be clean of build or cache files.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Test thoroughly
- Ensure
git statusis clean - Commit with conventional commit messages
- Push and create a pull request
Use conventional commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changesrefactor:- Code refactoringtest:- Testing changeschore:- Maintenance tasks
Example: feat: add hardware temperature monitoring
- Test on multiple platforms when possible (Windows, macOS, Linux)
- Verify builds work correctly
- Check that
git statusremains clean after builds - Test both Python app and Electron wrapper
- Provide a clear description of changes
- Reference any related issues
- Ensure CI checks pass
- Request review from maintainers
This repository uses automated hygiene checks to prevent accidental commits of build artifacts, dependencies, and cache files. The hygiene guard will fail if banned paths are added to commits.
Banned paths include:
node_modules/__pycache__/.DS_Storedist/,build/.venv/,venv/.arduino-build/,.pio/
If you need to clean up accidentally tracked files, use:
git rm -r --cached <banned-path>