Contributing Guide

How to contribute to GGUF Loader development

Intermediate 10 minutes

Thank you for contributing to GGUF Loader! This guide covers how to set up a development environment, make changes, and get them merged. See the project’s CONTRIBUTING.md and CODE_OF_CONDUCT.md for the canonical rules.

πŸ› οΈ Setting Up Development

git clone https://github.com/GGUFloader/gguf-loader.git
cd gguf-loader
python -m venv .venv

# Windows
.venv\Scripts\activate
# Linux/macOS
source .venv/bin/activate

pip install -r requirements.txt
python main.py

The sidebar’s Create .venv & Restart button does this for you if you prefer not to use the terminal.

🧭 Codebase Orientation

  • core/ β€” pure logic (no Qt): model backend, prompt builder, agent engine, tools
  • services/ β€” Qt threading bridges (model, chat, agent, environment)
  • ui/ + widgets/ β€” presentation: main window, panels, bubbles
  • addons/ β€” addon packages (see the Addon Development Guide)
  • scripts/ β€” utility and release scripts
  • resource_manager.py β€” path resolution across dev/package/frozen deployments

βœ… Before You Submit

Style

  • Follow the existing conventions (4-space indent, docstrings on modules/classes, type hints where helpful).
  • Keep the layering rule: no Qt in core/, no threads outside services/, dumb widgets.

Check

  • Run the app from source and verify your change (python main.py).
  • The app is Qt-based β€” there is no automated test suite yet, so manual verification plus clear console logging matters.
  • If you changed UI, re-run scripts/capture_screenshots.py and commit the refreshed screen.png so the README/site stay current.

Commit

  • Write a clear, concise commit message describing why (e.g. β€œPrevent floating button from staying minimized after Win+D”).

πŸ› Reporting Issues

Open an issue at github.com/GGUFloader/gguf-loader/issues with:

  • App version (Help β†’ About, or main.py --version)
  • OS and whether you’re on CPU or GPU
  • The model file you were using
  • Relevant log lines (see Troubleshooting)
  • Steps to reproduce

🧩 Contributing Addons

Addons don’t need to touch the core app at all. Publish your addon as a folder matching the addon contract, and share it in an issue or discussion so it can be listed in the community.

πŸš€ Releasing (maintainers)

Releases are built automatically by GitHub Actions when a v* tag is pushed:

  1. Bump the version in __init__.py and build_exe.spec.
  2. Update CHANGELOG.md.
  3. Tag and push: git tag v2.1.3 && git push origin v2.1.3.
  4. The workflow attaches the Windows .exe and Linux binary to the release; optionally add the .tar.gz (built via scripts/package_linux.sh) and a screen.png.

πŸ’¬ Questions?

Start a GitHub Discussion β€” the community and maintainers are happy to help.

🎯 What's Next?

You've completed this guide! Here are some suggested next steps to continue your GGUF Loader journey:

🏠

Explore Homepage

Discover more features, download options, and community resources on our homepage.

Visit Homepage β†’
πŸ“š

More Documentation

Continue learning with our comprehensive documentation library.

All Documentation β†’
πŸ’¬

Get Support

Have questions? Our community and support team are here to help.

FAQ & Support β†’

🏠 Back to Homepage