Important changes to know about
Merging objects
This release introduces the ability to manually or automatically merge duplicate editions, works, authors, series, and suggestions from the user interface. Admins can give merge permissions to any user. Use this power with care. There are still a few bugs with merging: check the Issues to see what might happen before you use this feature. We also advise you to turn on automatic flagging of merges and then merge them manually before you consider moving to automated merging, as merging records is a potentially destructive activity.
See Admin > Manage Data for options.
Anubis hotfix
A bug in the latest Anubis version is cause multi-part form submission to fail. Most notably, this can prevent BookWyrm users from adding new books 😢. Docker users will see their Anubis version is now pinned to the latest known Anubis version that doesn't have this bug.
Updated display for books and authors
@mouse-reeve has reworked some pages to provide more contextual advice to users, surface more identifiers, and generally make things easier to understand.
Management command to clean up faulty series entries
This was supposed to be fixed with a data merge in the last release, but that caused new problems and didn't fix all the old problems. You can manually run an admin command to repair series entries in editions that are stringified JSON entries (the underlying problem was fixed in an earlier release).
Run ./bw-dev runweb python manage.py repair_series: to remove json strings from series entries in editions and if necessary turn them into actual series
Flags:
--names: additionally fix any series that do not have a series name--skip-books: only fix any series that do not have a series name--all: same as--names, but will also fix any nameless series that don't have an inventaire ID--dry-run: simulate what would happen but do not change anything--counts: only report how many records could be fixed
This is not in the documentation yet, but will be soon.
Thanks for using BookWyrm!
What's Changed
Updated Dependencies 🧸
- Bump django from 5.2.16 to 5.2.17 by @dependabot[bot] in #4238
- Bump aiohttp from 3.14.3 to 3.14.4 by @dependabot[bot] in #4245
- Bump pillow from 12.3.0 to 13.0.0 by @dependabot[bot] in #4257
- pump opentelemetry versions by @ilkka-ollakka in #4259
New Features 🎉
- Automatically detect duplicate book data entries by @mouse-reeve in #3961
- Enable manual merges by @hughrun in #4004
- Automatically merge duplicates by @mouse-reeve in #3967
- Create mergeable-mixin for book data models by @mouse-reeve in #3960
- Display and edit work metadata by @mouse-reeve in #4169
- Adds data quality view for invalid ISBNs by @mouse-reeve in #4194
- Detect duplicates on save by @mouse-reeve in #4198
- Display tweaks by @mouse-reeve in #4217
- Adds BNF and LibraryThing Ids to edit book forms by @mouse-reeve in #4216
- Filter out ratings separately from reviews on feed by @mouse-reeve in #4227
- Sort and filter lists by @mouse-reeve in #4223
- Adds search within a list by @mouse-reeve in #4225
- Filter and sort books on author page by @mouse-reeve in #4220
Bug Fixes 🐛
- Re-evaluate marked duplicates on save by @mouse-reeve in #4019
- Restores shelf annotations by @mouse-reeve in #4141
- Merging fails on duplicates that will appear twice on someone's shelves by @mouse-reeve in #4160
- Don't link to orphaned works in the other part of the work banner by @mouse-reeve in #4163
- Adds BNF id and VIAF to edit author view by @mouse-reeve in #4162
- Merge views fixes by @hughrun in #4157
- allow follows to be deleted when user no longer exists by @hughrun in #4186
- Fix Open Library search url by @hughrun in #4185
- Correct link in federated users page by @qbi in #4178
- Updates OpenLibrary URLs to always be .json by @mouse-reeve in #4196
- ISBN issues by @mouse-reeve in #4208
- Exempt reset password view from login required by @mouse-reeve in #4206
- Series fix command by @hughrun in #4184
- Return exact match without trigram in user search by @mouse-reeve in #4224
- Saves last_edited_by when editing book data by @mouse-reeve in #4222
- Fix 500 error on invalid suggestion item by @mouse-reeve in #4214
- Redirect to book or user page when deleting a status from its own page by @edwjin in #4244
- Deduplicate book superlative rating counts by user by @aazminu in #4240
- docker: fix anubis version instead of latest by @ilkka-ollakka in #4262
Other Changes
- User permissions for manual data merging by @hughrun in #4000
- Mergeable suggestion list by @mouse-reeve in #4024
- Auto merge suggestion lists by @mouse-reeve in #4025
- fix hardcoded object type in merge notice by @hughrun in #4113
- Remove stray closing div in manual merge template by @UnknownPlatypus in #4158
- Display stand-in text for merging unnamed series by @mouse-reeve in #4161
- fix long urls breaking manual data merge page by @hughrun in #4164
- Show human-readable values instead of just links in common merge banners by @mouse-reeve in #4168
- compose: add healthcheck to redis instances and wait for them by @ilkka-ollakka in #4092
- tweak(client_ip_address): unify handling of x-forwarded-for header by @ilkka-ollakka in #4107
- postgres backup to use pg_dump custom format to reduce size and speed up restore by @ilkka-ollakka in #3993
- Fix repeated RSA key imports during broadcasts by @noamaanMulla-03 in #4165
- Sorts merge candidates by targets and fixes tabs by @mouse-reeve in #4172
- Revert "compose: add healthcheck to redis instances and wait for them" by @mouse-reeve in #4177
- fix: rate limit login routes correctly by @noamaanMulla-03 in #4173
- Even more type hinting by @PatrickChildersIT in #4153
- use more descriptive name for redis than the letter r by @PatrickChildersIT in #4192
- type hinting models annual goals to book by @PatrickChildersIT in #4189
- type hinting models bookwyrm_export_job to federated_server by @PatrickChildersIT in #4190
- Add type hinting to some views and miscellaneous files by @PatrickChildersIT in #4193
- type hinting for fields model by @PatrickChildersIT in #4191
- Removes legacy VIAF ID referenced in activities by @mouse-reeve in #4226
- Perform each merge as a child task by @mouse-reeve in #4215
- Make sure we're not scanning for dupes when edition rank is changed by @mouse-reeve in #4221
- Remove user from Series by @hughrun in #4137
- Adds help text to a number of fields in book-related forms by @mouse-reeve in #4242
New Contributors
- @UnknownPlatypus made their first contribution in #4158
- @noamaanMulla-03 made their first contribution in #4165
- @edwjin made their first contribution in #4244
- @aazminu made their first contribution in #4240
Full Changelog: v0.9.3...v0.9.4