Thanks for helping improve MeadowPy. The project is designed to be friendly to beginners, so contributions should preserve that spirit in both code and user experience.
Useful docs:
Good contribution areas include:
- Bug reports.
- Reproduction steps for confusing behavior.
- Beginner-focused feature ideas.
- Documentation improvements.
- Example library additions.
- Tests for existing behavior.
- UI polish that makes the app easier to understand.
- Bug fixes.
- Read Development Guide.
- Read Architecture for the area you are changing.
- Set up development dependencies:
dev\setup-dev.bat- Run the full test suite once:
dev\Run Tests.batThis confirms your environment is working before you start editing.
From the project root:
dev\setup-dev.batThis calls:
setup.bat --devIt creates or repairs .venv, installs app dependencies, and installs test
dependencies.
From the project root:
.venv\Scripts\python.exe -m meadowpyRun the full suite:
dev\Run Tests.batRun a targeted test without coverage:
.venv\Scripts\python.exe -m pytest -c dev\pytest.ini --no-cov dev\tests\test_settings.py -qSee Testing for the full testing workflow.
A good pull request should:
- Explain what changed and why.
- Keep the scope focused.
- Include tests for behavior changes.
- Update docs for setup, workflow, shortcut, AI, architecture, or testing changes.
- Avoid unrelated formatting churn.
- Avoid changing generated coverage output.
- Preserve beginner-friendly wording in user-facing text.
Before submitting:
- Run relevant targeted tests.
- Run the full test suite.
- Launch the app if UI behavior changed.
- Check changed files for accidental edits.
Useful bug reports include:
- What you were trying to do.
- What happened.
- What you expected.
- Steps to reproduce.
- MeadowPy version, if known.
- Windows version.
- Python version.
- Whether Ollama was involved.
- Any relevant log details from:
%USERPROFILE%\.meadowpy\meadowpy.log
Avoid posting private code, secrets, API keys, or personal files in public bug reports.
If this repository is hosted on GitHub, use the bug report issue template so the environment and reproduction details are captured consistently.
Helpful feature requests explain:
- The beginner problem being solved.
- The workflow where the feature would appear.
- What a user should be able to do after the feature exists.
- Any examples from other tools, if relevant.
MeadowPy should stay approachable. Features that add power should also protect clarity.
If this repository is hosted on GitHub, use the feature request issue template for feature ideas.
Documentation changes are welcome.
When editing docs:
- Keep commands exact.
- Keep paths exact.
- Prefer short sections with clear headings.
- Link to related docs instead of repeating large sections.
- Keep beginner-facing instructions concrete.
- Update Shortcuts when shortcuts change.
- Update Architecture when ownership or flow changes.
If this repository is hosted on GitHub, use the documentation issue template for stale, missing, confusing, or incorrect docs.
Examples should be:
- Beginner-friendly.
- Safe to run.
- Well-commented.
- Focused on one concept or small project.
- Free of secrets, network requirements, and destructive file operations.
Add examples under:
meadowpy\resources\examples
Then add the example to:
meadowpy\resources\examples\catalog.json
General guidelines:
- Follow existing patterns before adding new abstractions.
- Keep UI work on the UI thread.
- Use Qt signals for worker-to-UI communication.
- Keep long-running work in background workers or subprocesses.
- Keep user-facing messages clear and beginner-friendly.
- Prefer small, testable changes.
- Update tests near the behavior you changed.
Do not report security-sensitive issues publicly if they include exploit details, private data, or a way to harm users.
Use the guidance in Security.