This repository is maintained and curated by Dovid Davis.
For most students and personal work, the recommended path is to click Use this template on GitHub or create a fork for your own project copy.
Contributions are welcome via pull requests (PRs) only:
- Fork this repository.
- Create a branch for your change.
- Open a PR back to this repository.
- Documentation improvements and clarifications.
- VSCode task or workspace quality-of-life improvements.
- Cross-platform compatibility fixes.
- Better starter scaffolding or helper code that is not assignment solutions.
Do not submit:
- Assignment solutions (full or partial) for assessed work.
- Copyrighted course content that you do not have permission to redistribute.
This repository uses Git hooks to enforce ENG1014 Python constraints from docs/environment/eng1014.yaml.
Use system-installed Python 3.10.11 plus an external virtual environment (outside the repo).
- Enable hooks once per clone:
git config core.hooksPath .githooks
- Create external environment with Python 3.10.11 (Windows recommended path):
$VenvPath = Join-Path $env:LOCALAPPDATA "MonashProjectTemplate\venvs\eng1014-310"
py -3.10 -m venv $VenvPath
& "$VenvPath\Scripts\Activate.ps1"If PowerShell blocks Activate.ps1, use one of these options:
- Temporary for current terminal only:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass - No activation required: run the venv interpreter directly (for example
& "$VenvPath\Scripts\python.exe" -m pip install ...)
- Install required package versions:
python -m pip install --upgrade pip
python -m pip install numpy==2.2.2 matplotlib==3.10.* pandas==2.2.3 jupyterlab- Configure hooks to use that interpreter:
$PythonExe = (Join-Path $VenvPath "Scripts\python.exe").Replace('\\','/')
git config monash.pythonPath $PythonExe- Validate before opening a PR:
git hook run pre-push
If this check fails, fix local Python/package versions or update monash.pythonPath.
- Keep PRs small and focused on one main idea.
- Update
README.mdand/or related docs when behavior or usage changes. - Include enough context for maintainability and review.
- Preserve critical file-format requirements for policy tooling and hooks:
UTF-8 without BOM+LFfor.githooks/*andtools/python_policy/*.py.- See
docs/environment/encoding-pain-points.yamland recovery steps inREADME.md.
The maintainer has final discretion on whether to accept, request changes to, or decline any contribution.