Skip to content

Conversation

@aaxelb
Copy link
Contributor

@aaxelb aaxelb commented Oct 30, 2025

includes:

changelog summary:

# [25.6.0] - 2025-10-30
- bump dependencies
    - `celery` to 5.5.3
    - `kombu` to 5.5.4
- improve error handling in celery task-result backend
- use logging config in celery worker
- improve code docs (README.md et al.)
- add cardsearch feeds (rss and atom)
    - /trove/index-card-search/rss.xml
    - /trove/index-card-search/atom.xml
- fix: render >1 result in streamed index-value-search (csv, tsv, json)
- when browsing trove api in browser, wrap non-browser-friendly mediatypes in html (unless `withFileName`, which requests download)
- better trove.render test coverage
- code cleanliness
    - de-collide "simple" names
        - SimpleRendering => EntireRendering
        - SimpleTrovesearchRenderer => TrovesearchCardOnlyRenderer
    - consolidate more shared logic into trove.util
    - more accurate type annotations

aaxelb and others added 25 commits August 4, 2025 09:33
- use celery's own "retry on result-backend error" logic
    - new env var: `CELERY_RESULT_BACKEND_MAX_RETRIES` (default 17)
    - retry on OperationalError (for connection problems and such)
      and IntegrityError (for conflicting `get_or_create` in overlapping
      transactions, for example)
    - move `die_on_unhandled` decorator to public methods, so it's only
      used after max retries
- port fixes from celery's `BaseKeyValueStoreBackend`:
    - avoid clobbering successes with "worker lost" or other errors
    - avoid error trying to get non-existent task results
- use celery's `BaseBackend` instead of `BaseDictBackend`
  (equivalent for back-compat; let's use the better name)
[ENG-8409] fix: better handle errors in celery result backend
[ENG-8409] fix: use logging config for celery worker, too
- replace `trove.render._rendering` module with `trove.render.rendering`
  package (separate file for each rendering class)
- make `ProtoRendering` an actual `typing.Protocol` and narrow types to
  only unicode `str`
- add `trove.render.rendering.html_wrapped.HtmlWrappedRendering` that
  puts minimal `<!DOCTYPE html><pre>...</pre>` around an inner rendering
- use `HtmlWrappedRendering` to wrap responses that aren't html or json,
  when `Accept` header allows html and query params omit `withFileName`
- use mediatype constants more consistently (leaving off charset except
  for content-type header)
- stream pages as lists, not dicts with colliding keys
- tidy types
- move `iter_unique` to `trove.util.iter` and add tests
- add feed renderers:
    - trove.render.cardsearch_rss
    - trove.render.cardsearch_atom
- add feed paths:
    - /trove/index-card-search/rss.xml
    - /trove/index-card-search/atom.xml
- add links from cardsearch responses to feeds (with appropriate params)
- miscellaneous improvements:
    - better renderer test coverage
    - consolidate more shared logic into trove.util
    - more accurate type annotations
and its field rendered_content to entire_content
- SimpleTrovesearchRenderer => TrovesearchCardOnlyRenderer
- remove "simple" renderer convenience methods; it's not that hard to
  build an EntireRendering (previously named "SimpleRendering")
[ENG-9046] shtrove cardsearch feeds
[ENG-9046][followup] fix rss/atom validation errors
celery 5.5.3 (from 5.4.0)
kombu 5.5.4 (from 5.5.0)
pin django 5.2.7 (previously wildcard 5.2.*)
@aaxelb aaxelb changed the title Release/25.6.0 release 25.6.0 Oct 30, 2025
@coveralls
Copy link

Coverage Status

coverage: 84.4% (+2.6%) from 81.773%
when pulling 064971d on release/25.6.0
into 150997a on main.

@aaxelb aaxelb mentioned this pull request Oct 30, 2025
@aaxelb aaxelb merged commit 7bb91b4 into main Oct 30, 2025
6 checks passed
@aaxelb aaxelb deleted the release/25.6.0 branch October 30, 2025 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants