Thank you for contributing to projectdevsetup.
This project is intended to help beginners set up a programming environment with less confusion and less manual work, so contributor changes should keep the experience simple, safe, and easy to understand.
When contributing, please keep these goals in mind:
- Prefer beginner-friendly behavior and messages
- Avoid surprising or destructive system changes
- Keep installation steps as clear and reliable as possible
- Make failures understandable when automatic setup cannot continue
- Preserve cross-platform support where possible
Main package source:
Important modules:
src/projectdevsetup/wizard.pyInteractive user flowsrc/projectdevsetup/installer.pyLanguage tool installation logicsrc/projectdevsetup/vscode.pyVS Code installation and extension setupsrc/projectdevsetup/network.pyConnectivity and download helperssrc/projectdevsetup/permissions.pyPermission and disk-space checks
Tests:
git clone https://github.com/zenith-open-source/projectdevsetup.git
cd projectdevsetupOn Windows:
python -m venv .venv
.venv\Scripts\activateOn macOS or Linux:
python3 -m venv .venv
source .venv/bin/activatepip install -e .From the repository root:
$env:PYTHONPATH="src"
python -m pytest tests/ -vIf you are on macOS or Linux:
PYTHONPATH=src python -m pytest tests/ -vTo build the source distribution and wheel:
python -m buildExpected output:
Please check as many of these as possible:
- Unit tests pass
- The package builds successfully
- The CLI starts without a traceback
- User-facing text is clear and beginner-friendly
- New behavior has tests when practical
- README or docs are updated when behavior changes
- Keep messages plain and friendly
- Avoid exposing raw exceptions to end users unless truly necessary
- Prefer safe fallbacks when automatic installation is not possible
- Keep changes focused and easy to review
- Do not add unnecessary dependencies
- Do not remove beginner-friendly behavior for the sake of cleverness
- Fix installation bugs on supported platforms
- Improve beginner-facing messages
- Add tests for setup flows and failure cases
- Improve README and contributor documentation
- Improve reliability of detection and fallback behavior
Before opening a pull request, please make sure:
- The code is working locally
- Tests pass
- Docs are updated if needed
- The change is small enough to review clearly
- The PR description explains what changed and why
When reporting a bug, please include:
- Your operating system
- Python version
- The command you ran
- What you expected to happen
- What actually happened
- Any visible error message