Skip to content

BibMedEd v0.4.0 — redesign, read-only demo mode, pip install

Latest

Choose a tag to compare

@ata381 ata381 released this 30 Sep 09:48
· 47 commits to master since this release
5db2098

BibMedEd 0.4.0 is the first release published to PyPI: pip install bibmeded installs a lightweight CLI (#84), and the Python import package was renamed app -> bibmeded (#97, breaking). The frontend has a new journal-editorial redesign (#75), and a BIBMEDED_READ_ONLY mode (#81) plus a one-command local demo (#86) make it safe to explore a seeded sample without changing it. New CLI commands --version and sources come from first-time contributors @Sandro850 and @DYNOSuprovo. Also included are a fix for fresh installs on SQLAlchemy 2.1 (#76), a real-data README walkthrough GIF (#96), and the LICENSE holder correction (#77). A hosted public demo is deliberately deferred.

Added

  • Added a BIBMEDED_READ_ONLY mode that rejects every mutating request with 403 and shows a read-only banner in the UI, for safely exposing a demo (#81).
  • PyPI packaging metadata, a server optional-dependency extra (FastAPI, Celery, Redis, Postgres driver, Alembic), and a Trusted Publishing release workflow. pip install bibmeded now installs a lightweight CLI; bibmeded search --dry-run, sources and --version work without server dependencies.
  • Added bibmeded --version (#72, thanks @Sandro850).
  • Added the bibmeded sources command to list adapters and their configuration status (#71, thanks @DYNOSuprovo).
  • Added a one-command local read-only demo (bibmeded/docker-compose.demo.yml, SQLite, no Postgres/Redis/worker) and a free-plan Render Blueprint for a public demo (deploy/render-demo.yaml), see #86. The hosted public demo itself is not yet deployed.

Changed

  • Redesigned the frontend with a journal-editorial look and WCAG 2.2 fixes (#75).
  • Aligned public documentation with the shipped feature set before launch (#73), refreshed the UI screenshots (#80), and added real-data tour screenshots and a README walkthrough GIF (#96).
  • Linked the Hacktoberfest 2026 issues from the good-first-issues guide (#70) and documented the agent merge policy in CLAUDE.md (#83).
  • Corrected the copyright holder name in LICENSE (#77).
  • Dependency updates: frontend minor and patch bumps (#59, #79); Dependabot now ignores TypeScript and @types/node major versions (#74).
  • Breaking: Python import package renamed app -> bibmeded (bibmeded/app/ is now bibmeded/bibmeded/) so the wheel no longer installs a generic top-level app package. Run the server with uvicorn bibmeded.main:app and the worker with celery -A bibmeded.workers.celery_app; Celery task names are now bibmeded.workers.tasks.*, so drain queued tasks before upgrading.
  • bibmeded --version reports unknown instead of failing when the package is not installed. The bibmeded sources --json field api_key is renamed api_key_requirement (it holds required/optional/no, never a key), and the missing-setting status now comes from a shared required_setting_env_var helper instead of parsing the error message.

Fixed

  • Fixed the frontend Docker image ignoring NEXT_PUBLIC_API_URL: Next.js inlines it at build time, but the Dockerfile never declared it, so deployed frontends called http://localhost:8000 from the browser. The Dockerfile now takes it as a build argument (default http://localhost:8000).
  • Added .gitattributes forcing LF for *.sh, so scripts/entrypoint.sh no longer fails with "no such file or directory" in containers built from a Windows checkout with CRLF conversion.
  • Fixed fresh installs failing with ModuleNotFoundError: No module named 'psycopg' on SQLAlchemy 2.1, which changed the bare postgresql:// default driver to psycopg v3. BIBMEDED_DATABASE_URL values of postgres:// or postgresql:// are now normalised to postgresql+psycopg2://; explicit drivers and non-Postgres URLs are left untouched. The Docker Compose and CI URLs now name the driver explicitly.

Community