-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Thank you for considering a contribution to reveilio. This page explains how to report issues, propose changes, and submit pull requests.
- Report a bug with a minimal, reproducible example.
- Suggest a feature by opening an issue before writing code, so we can agree on scope.
- Improve documentation, including typos, clarifications, and new examples.
- Submit a pull request for a bug fix, performance improvement, or new provider integration.
- Search existing issues and pull requests to avoid duplicating effort.
- For anything beyond a small fix or typo, open an issue first and wait for maintainer feedback before writing code.
- Make sure your change fits the project scope: reveilio is a library for LLM-driven resume scoring. Features that require a web server or external scraping service are out of scope.
Step-by-step setup for a new contributor:
-
Fork and clone the repository:
git clone https://github.com/<your-username>/reveilio.git cd reveilio
-
Create a virtual environment (Python 3.9 or later):
python -m venv .venv # Linux / macOS source .venv/bin/activate # Windows (PowerShell) .venv\Scripts\Activate.ps1
-
Install in editable mode with dev dependencies:
pip install -e ".[dev]" -
Run the test suite to confirm a clean baseline:
pytest
Use a descriptive branch name that reflects the change. Suggested prefixes:
-
fix/for bug fixes, e.g.fix/docx-extraction-empty-paragraphs -
feat/for new features, e.g.feat/mistral-provider -
docs/for documentation changes, e.g.docs/configuration-azure-example -
refactor/for internal restructuring with no behavior change
git checkout -b feat/my-change- Keep the change focused. One pull request should address one concern. Unrelated cleanups belong in separate PRs.
- Match the existing style. Follow the patterns in the surrounding code. Reveilio avoids over-abstraction, so prefer a direct fix to a new helper.
-
Add or update tests. Every bug fix should include a regression test. Every new feature should include unit tests that exercise its public surface. Tests live in
tests/and must not make real LLM calls; mockjson_completionas the existing tests do. - Update the documentation. If you add a public function, class, argument, or environment variable, update the relevant pages in the wiki (Quickstart, Configuration, API reference, or Guides as appropriate).
- Do not introduce new runtime dependencies without discussion. Added dependencies increase the install footprint and attack surface.
- Write imperative, present-tense subjects: "Add Mistral provider", not "Added" or "Adds".
- Keep the subject line at 72 characters or fewer.
- Explain why in the body, not just what changed.
- Reference related issues with
Fixes #123orRefs #123.
Before opening a pull request, run the full test suite locally:
pytest -qAll tests must pass. If you add optional dependencies, include the install command in your PR description so reviewers can reproduce your environment.
-
Push your branch to your fork:
git push origin feat/my-change
-
Open a pull request against
main. -
Fill out the PR template with:
- A short summary of the change.
- The motivation or linked issue.
- Any manual testing performed.
- Screenshots for documentation or UI changes (if applicable).
-
Request review and respond to feedback promptly. Keep the discussion on the PR, not in private channels.
-
Rebase, do not merge, if
mainadvances while your PR is open:git fetch origin git rebase origin/main git push --force-with-lease
- A maintainer will review your PR and may request changes.
- All discussion threads must be resolved before merge.
- The continuous integration suite must be green.
- Pull requests are typically squash-merged to keep the main history linear.
Please do not report security vulnerabilities through public GitHub issues. Instead, email the maintainers privately with a detailed description and, if possible, a proof of concept. You will receive an acknowledgement within a few working days.
By participating in this project, you agree to treat other contributors with respect. Be constructive in reviews, assume good intent, and keep discussion focused on the work.
💡 Not sure where to start? Look for issues tagged
good first issueon GitHub, or open a discussion if you have an idea and are unsure whether it fits the project scope.
v0.1.1 · docs
Getting started
Core features
- Configuration & providers
- Job descriptions
- Resume parsing
- Scoring & analysis
- PDF reports
- Database storage
Using reveilio
Deployment
Deep dive