The remote was created with an auto-generated initial commit (Apache-2.0
LICENSE plus a three-line README) that shares no ancestor with the history
carried over from Bookshelf. Merged with --allow-unrelated-histories so both
lines of history survive.
Conflict resolution kept this repository's versions:
* LICENSE -- both are Apache-2.0, but this one is the canonical 202-line
text; the remote's was a reflowed 73-line abridgement.
* README.md -- the remote's three-line stub is folded into the full
repository README as its opening description.
Umbra Bookshelf
A WordPress plugin to display and manage books for users in multiple languages: catalogue, ISBN tracking, series, pen names, retailer links, rating synchronisation, and newsletter delivery.
Umbra Bookshelf began as three separate plugins — BD Bookshelf, BD BookShelfHelper and BD SimpleEmail — and is now a single consolidated plugin. This repository continues the history of the original Bookshelf repository, which is now closed and archived.
Repository layout
| Path | What it is |
|---|---|
umbra-bookshelf/ |
The plugin. Books, library and email modules. Start at umbra-bookshelf/readme.txt. |
theme/ |
The bd-bookshelf WordPress theme. A separate artifact, deliberately not renamed in the consolidation. |
archive/pre-umbra-releases/ |
Release zips of the three pre-merge plugins. Superseded — do not install. |
Old/ |
Earlier plugin and theme snapshots, kept for reference. |
docs/, mockups, images, .docx/.zip specs |
Design material carried over from the original repository. |
Documentation
umbra-bookshelf/spec/SPEC_Umbra_Bookshelf_Plugin.md— the authoritative specification: identity, naming rules, architecture, module responsibilities, admin menu map, lifecycle.umbra-bookshelf/docs/ARCHITECTURE.md— why the plugin is shaped this way.umbra-bookshelf/docs/KNOWN-ISSUES.md— defects carried over from the merge, including one deliberately deferred.umbra-bookshelf/spec/archive/— pre-merge specifications, retained for provenance only.
Development
# static checks: syntax, duplicate classes, unresolved requires and assets,
# leftover old identifiers, preserved storage contracts
python3 umbra-bookshelf/tests/verify_structure.py
# runtime boot against stubbed WordPress (each context needs its own process)
php umbra-bookshelf/tests/smoke_runtime.php front
php umbra-bookshelf/tests/smoke_runtime.php admin
Upgrading from the old plugins
Umbra Bookshelf uses the same database tables, option keys, post meta, cron hooks and shortcodes as the three plugins it replaces, so existing data carries over without migration.
Install Umbra Bookshelf, then deactivate BD Bookshelf, BD BookShelfHelper and BD SimpleEmail. Do not delete them — deleting runs their uninstall routines, which drop your tables and options.
Status
v1.0.0 is the first consolidated release. The most important outstanding
problem is documented in
docs/KNOWN-ISSUES.md §1: the books and
library modules still create bd_books and bd_series with two incompatible
schemas. This predates the consolidation — merging the plugins made it
unconditional, and resolving it requires a data migration.