Data parser for Fedora Packager Dashboard https://forge.fedoraproject.org/apps/packager_dashboard
  • Python 99.8%
  • Mako 0.2%
Find a file
Sheikh Limon ae1bd3ca89
All checks were successful
CI / build_and_test (push) Successful in 2m9s
docs: add AGENTS.md and fastapi-migration roadmap
Introduce AGENTS.md to provide project context, coding constraints, development workflows, and anti-patterns for AI coding agents.

Add docs/fastapi-migration.md capturing the 4-phase architectural migration plan from Flask to FastAPI (Epic #264), including the ADR summary and dependency flowchart.

Assisted-by: Gemini 3.8 Flash
Signed-off-by: Sheikh Limon <sheikhlimondev@gmail.com>
2026-09-08 15:00:31 +00:00
.forgejo/workflows ci: bump actions/checkout from 4 to 7 2026-09-07 04:53:30 +06:00
.s2i Minimize s2i 2024-06-04 13:20:42 +02:00
alembic style: format codebase with ruff 2026-08-17 20:59:37 +06:00
conf chore: drop obsolete FTI tracker syncing and bug tagging 2026-09-07 03:36:47 +06:00
docs docs: add AGENTS.md and fastapi-migration roadmap 2026-09-08 15:00:31 +00:00
oraculum perf: optimize bugzilla tracker queries 2026-09-07 04:04:51 +06:00
tests perf: optimize bugzilla tracker queries 2026-09-07 04:04:51 +06:00
.dockerignore style: format codebase with ruff 2026-08-17 20:59:37 +06:00
.git-blame-ignore-revs chore: add .git-blame-ignore-revs 2026-08-17 21:00:06 +06:00
.gitignore chore: modernize local development and dependencies 2026-08-10 14:29:51 +06:00
.pre-commit-config.yaml fix(build): exclude project package from requirements.txt to fix S2I assemble 2026-08-28 23:30:22 +06:00
AGENTS.md docs: add AGENTS.md and fastapi-migration roadmap 2026-09-08 15:00:31 +00:00
alembic.ini Switch oraculum to standard skeleton 2019-01-14 13:34:47 +01:00
CONTRIBUTING.md docs: add CONTRIBUTING.md guide 2026-09-07 15:14:41 +00:00
gunicorn.cfg gunicorn: try to specify bind manually 2022-01-07 13:39:50 +01:00
LICENSE style: format codebase with ruff 2026-08-17 20:59:37 +06:00
Makefile docs: add CONTRIBUTING.md guide 2026-09-07 15:14:41 +00:00
pyproject.toml chore: configure commitizen for automated releases and changelog 2026-09-07 05:24:07 +06:00
README.md chore: add ruff and pre-commit configuration 2026-08-17 20:18:02 +06:00
requirements.txt fix(build): exclude project package from requirements.txt to fix S2I assemble 2026-08-28 23:30:22 +06:00
run_cli.py ci: migrate from legacy Zuul to Forgejo Actions with uv caching 2026-08-19 11:50:56 +06:00
uv.lock chore: configure commitizen for automated releases and changelog 2026-09-07 05:24:07 +06:00

Oraculum

Data parser for Fedora Packager Dashboard.

Handles caching and querying resources from multiple services like Bodhi, Pagure (dist-git) and many more.

Requirements

  • Python 3.12+
  • uv
  • Redis (for Celery)

Installation

Clone this repo, change to its directory, install dependencies:

git clone https://forge.fedoraproject.org/apps/oraculum.git && cd oraculum
sudo dnf install redis                # or: sudo apt install redis-server
uv sync

Running Locally

  1. Start the Development Server: In your terminal, start the development server (applies database migrations, starts Redis, Celery workers, and Flask):

    uv run oraculum dev
    
  2. Populate Initial Cache (First Run Only): On a fresh setup, open a second terminal window and run an immediate initial sync:

    uv run oraculum cache-recreate
    

Note

cache-recreate is only required on your initial setup or after resetting your local database. For routine daily development, running uv run oraculum dev is sufficient as background Celery workers automatically refresh the cache.

Dependency Management

This project uses uv for local dependency management, while generating a standard requirements.txt specifically for the OpenShift S2I production build.

To add, remove, or upgrade a dependency:

  1. Update pyproject.toml (or use uv add <package>).
  2. Run uv sync to resolve dependencies, update uv.lock, and sync your local .venv.
  3. Run make prod-build to export the strictly pinned requirements.txt.

Important: You must commit both uv.lock and requirements.txt when making dependency changes. This guarantees that local development and the OpenShift production environment both receive the exact same reproducible builds.

Code Quality & Testing

  • Format code:
    uv run ruff format .
    
  • Lint code:
    uv run ruff check .
    
  • Fix auto-fixable lint issues:
    uv run ruff check --fix .
    
  • Run tests:
    uv run pytest
    

Pre-commit Hooks (Optional)

To automatically format and lint staged files before every git commit:

uv run pre-commit install