Repository navigation
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_ONLYmode that rejects every mutating request with403and shows a read-only banner in the UI, for safely exposing a demo (#81). - PyPI packaging metadata, a
serveroptional-dependency extra (FastAPI, Celery, Redis, Postgres driver, Alembic), and a Trusted Publishing release workflow.pip install bibmedednow installs a lightweight CLI;bibmeded search --dry-run,sourcesand--versionwork without server dependencies. - Added
bibmeded --version(#72, thanks @Sandro850). - Added the
bibmeded sourcescommand 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/nodemajor versions (#74). - Breaking: Python import package renamed
app->bibmeded(bibmeded/app/is nowbibmeded/bibmeded/) so the wheel no longer installs a generic top-levelapppackage. Run the server withuvicorn bibmeded.main:appand the worker withcelery -A bibmeded.workers.celery_app; Celery task names are nowbibmeded.workers.tasks.*, so drain queued tasks before upgrading. bibmeded --versionreportsunknowninstead of failing when the package is not installed. Thebibmeded sources --jsonfieldapi_keyis renamedapi_key_requirement(it holdsrequired/optional/no, never a key), and the missing-setting status now comes from a sharedrequired_setting_env_varhelper 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 calledhttp://localhost:8000from the browser. The Dockerfile now takes it as a build argument (defaulthttp://localhost:8000). - Added
.gitattributesforcing LF for*.sh, soscripts/entrypoint.shno 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 barepostgresql://default driver to psycopg v3.BIBMEDED_DATABASE_URLvalues ofpostgres://orpostgresql://are now normalised topostgresql+psycopg2://; explicit drivers and non-Postgres URLs are left untouched. The Docker Compose and CI URLs now name the driver explicitly.
Community
- Thank you to @Sandro850 for
bibmeded --version(#72) and @DYNOSuprovo forbibmeded sources(#71), both first contributions.