Releases: ThePalaceProject/circulation
Releases · ThePalaceProject/circulation
v39.0.1
Immutable
release. Only release title and notes can be modified.
What's changed:
- Bump circulation-admin to v1.37.0 (d1de23a) by @dbernstein
Full Changelog: v39.0.0...v39.0.1
v39.0.0
Immutable
release. Only release title and notes can be modified.
What's Changed
Incompatible Changes
- Add first-class FacetData type for OPDS feed facet groups (PP-3675) by @jonathangreen in #3109
Features
- Add patron debug authentication admin tool (PP-3765) by @jonathangreen in #3076
- Add SAML SP metadata endpoint (PP-3749) by @tdilauro in #3075
- Add OPDS2 content negotiation to missing endpoints (PP-3044) by @jonathangreen in #3096
- Add OPDS2 content negotiation to navigation endpoint (PP-3044) by @jonathangreen in #3097
- Add first-class OPDS2 groups support to FeedData (PP-3675) by @jonathangreen in #3100
- Add network diagnostic self-tests for ILS integrations (PP-3841) by @jonathangreen in #3114
Bugfixes
- Fix OPDS2 single-entry responses using wrong Content-Type (PP-3044) by @jonathangreen in #3099
- Treat whitespace-only strings like empty strings in settings (PP-3873) by @tdilauro in #3126
- Incomplete collection and authenticator config not catastrophic (PP-3873) by @tdilauro in #3130
Other Changes
- Add type annotations to SIP2 client and provider by @jonathangreen in #3091
- Modify title suppression script to take a list of identifiers (PP-3754) by @dbernstein in #3086
- Add Dependabot auto-approve and auto-merge workflow by @jonathangreen in #3103
- Clear commit body when merging Dependabot PRs by @jonathangreen in #3106
- [PP-3602] Follow on fix addresses the problem of numeric identifiers … by @dbernstein in #3108
- Remove pytz dependency in favour of stdlib (PP-3822) by @jonathangreen in #3115
- [PP-3840] Add Excel formatted reports to inventory report zip by @dbernstein in #3113
- Refactor SuppressedFacets to use standard facet data structures (PP-3675) by @jonathangreen in #3119
Dependency Updates
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #3088
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #3089
- Bump google-api-python-client from 2.190.0 to 2.191.0 by @dependabot[bot] in #3092
- Bump authlib from 1.6.8 to 1.6.9 by @dependabot[bot] in #3093
- Bump pyfakefs from 6.1.2 to 6.1.3 by @dependabot[bot] in #3094
- Bump tox from 4.46.3 to 4.47.0 by @dependabot[bot] in #3095
- Bump lxml-html-clean from 0.4.3 to 0.4.4 by @dependabot[bot] in #3098
- Bump pytz from 2025.2 to 2026.1.post1 by @dependabot[bot] in #3101
- Bump tox from 4.47.0 to 4.47.1 by @dependabot[bot] in #3102
- Bump types-pytz from 2025.2.0.20251108 to 2026.1.1.20260304 by @dependabot[bot] in #3104
- Bump tox from 4.47.1 to 4.47.3 by @dependabot[bot] in #3105
- Bump docker/login-action from 3 to 4 by @dependabot[bot] in #3107
- Bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #3110
- Bump google-api-python-client from 2.191.0 to 2.192.0 by @dependabot[bot] in #3111
- Bump pyfakefs from 6.1.3 to 6.1.4 by @dependabot[bot] in #3112
- Bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #3117
- Bump tox from 4.47.3 to 4.48.1 by @dependabot[bot] in #3118
- Bump tox from 4.48.1 to 4.49.0 by @dependabot[bot] in #3122
- Bump google-api-python-client-stubs from 1.32.0 to 1.33.0 by @dependabot[bot] in #3121
- Bump pyspellchecker from 0.8.4 to 0.9.0 by @dependabot[bot] in #3123
- Bump google-auth from 2.48.0 to 2.49.0 by @dependabot[bot] in #3124
- Bump tox from 4.49.0 to 4.49.1 by @dependabot[bot] in #3125
- Bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #3116
- Bump google-api-python-client-stubs from 1.33.0 to 1.34.0 by @dependabot[bot] in #3129
- Bump dorny/paths-filter from 3 to 4 by @dependabot[bot] in #3131
- Bump pyjwt from 2.11.0 to 2.12.0 by @dependabot[bot] in #3132
- Bump google-auth from 2.49.0 to 2.49.1 by @dependabot[bot] in #3133
Full Changelog: v38.1.0...v39.0.0
v38.1.2 Hotfix Release
Immutable
release. Only release title and notes can be modified.
This release contains a single bugfix.
- [PP-3602] Follow on fix addresses the problem of numeric identifiers … by @dbernstein in #3108
Full Changelog: v38.1.0...v38.1.2
v38.1.0
Immutable
release. Only release title and notes can be modified.
Note: This release contains breaking changes despite the fact that it is labeled as a minor update. When I cut the release I didn't realize the start up task system contains a database migration until after I had cut the release.
What's Changed
Features
- Add one-time startup task system (PP-3684) by @jonathangreen in #3035
- Add admin endpoint to queue collection import on demand (PP-364) by @jonathangreen in #3069
Bugfixes
- Fix flaky DeleteInvisibleLanesScript test by @jonathangreen in #3043
- Add startup task to force re-import OPDS for Distributors collections (PP-3684) by @jonathangreen in #3055
- Fix excessive logging during OPDS2 crawlable feed generation (PP-3771) by @jonathangreen in #3085
Other Changes
- Add type annotation to container module variable by @jonathangreen in #3042
- Work around tox-docker KeyError on Docker 29+ by @jonathangreen in #3045
- Rename TestIdFixture to IdFixture and add int_id property by @jonathangreen in #3047
- Refactor initialization script transaction management (PP-3684) by @jonathangreen in #3048
- [PP-3602] Add target_age range based on Work.target_age rather than b… by @dbernstein in #3041
- Add OpenID Connect patron authentication support (PP-3473) by @tdilauro in #3038
- Relax schema.org model validation to accept fields with and without namespace prefix by @jonathangreen in #3067
- Add format-neutral LinkContentType enum for OPDS feed links (PP-3675) by @jonathangreen in #3065
- [PP-3687] Add JIRA version creation automation github workflow. by @dbernstein in #3058
- Fix SAML list of federated IdPs menu for Admin UI (PP-3542) by @tdilauro in #3074
- Ensure jira release sync action creates the release notes link in the... (PP-3793) by @dbernstein in #3080
- Cache crawlable collection endpoints for 5 minutes rather than 2 hour… by @dbernstein in #3081
- Fix target_age column displaying as a date in inventory report CSV by @dbernstein in #3087
Dependency Updates
- Bump google-api-python-client from 2.189.0 to 2.190.0 by @dependabot[bot] in #3044
- Bump tox from 4.34.1 to 4.35.0 by @dependabot[bot] in #3049
- Bump google-api-python-client-stubs from 1.31.0 to 1.32.0 by @dependabot[bot] in #3054
- Bump pydantic-xml from 2.18.0 to 2.19.0 by @dependabot[bot] in #3053
- Bump tox from 4.35.0 to 4.36.0 by @dependabot[bot] in #3052
- Bump dunamai from 1.25.0 to 1.26.0 by @dependabot[bot] in #3051
- Bump pydantic-settings from 2.12.0 to 2.13.0 by @dependabot[bot] in #3050
- Bump tox from 4.36.0 to 4.36.1 by @dependabot[bot] in #3056
- Bump pycountry from 24.6.1 to 26.2.16 by @dependabot[bot] in #3057
- Bump authlib from 1.6.6 to 1.6.8 by @dependabot[bot] in #3059
- Bump tox from 4.36.1 to 4.38.0 by @dependabot[bot] in #3060
- Bump tox from 4.38.0 to 4.41.0 by @dependabot[bot] in #3061
- Bump flask from 3.1.2 to 3.1.3 by @dependabot[bot] in #3062
- Bump pydantic-settings from 2.13.0 to 2.13.1 by @dependabot[bot] in #3063
- Bump werkzeug from 3.1.5 to 3.1.6 by @dependabot[bot] in #3064
- Bump pyfakefs from 6.1.1 to 6.1.2 by @dependabot[bot] in #3070
- Bump tox from 4.41.0 to 4.44.0 by @dependabot[bot] in #3071
- Bump types-psycopg2 from 2.9.21.20251012 to 2.9.21.20260223 by @dependabot[bot] in #3072
- Bump tox from 4.44.0 to 4.45.0 by @dependabot[bot] in #3073
- Bump actions/checkout from 4 to 6 by @dependabot[bot] in #3077
- Bump tox from 4.45.0 to 4.46.3 by @dependabot[bot] in #3078
- Bump certifi from 2026.1.4 to 2026.2.25 by @dependabot[bot] in #3079
- Bump firebase-admin from 7.1.0 to 7.2.0 by @dependabot[bot] in #3082
- Bump nltk from 3.9.2 to 3.9.3 by @dependabot[bot] in #3083
- Bump Admin UI package version to 1.36.0 by @jonathangreen in #3084
Full Changelog: v38.0.0...v38.1.0
v38.0.1
Immutable
release. Only release title and notes can be modified.
Hotfix Release v38.0.1
What's changed?
- Cache crawlable collection endpoints for 5 minutes rather than 2 hours (PP-3794) by @dbernstein #3081
Full Changelog: v38.0.0...v38.0.1
v38.0.0
Immutable
release. Only release title and notes can be modified.
What's Changed
Breaking Changes
- [PP-3653] Remove LCP non-EPUB deprioritize behavior and setting. by @dbernstein in #3032
- Add streaming media support for OPDS for Distributors (PP-3590) by @jonathangreen in #3015
Features
- Standardize Ebooks display title in Formats facet (PP-3604) by @jonathangreen in #3010
- Extract schema.org audience and age data in OPDS2 importer (PP-3600) by @jonathangreen in #3008
- Add reverse-order sorting for lane facets (PP-3147) by @jonathangreen in #3017
- Add streaming media support for OPDS for Distributors (PP-3590) by @jonathangreen in #3015
- Refactor OPDS2 serializer with strict Pydantic models (PP-2728) by @jonathangreen in #3027
- [PP-3664] Add patron-facing Adobe ID reset endpoint by @dbernstein in #3033
- [PP-3579] add visibility column by @dbernstein in #3009
- [PP-3524] Remove complex sort script for "last_update" order in order… by @dbernstein in #3018
Bugfixes
- Fix flaky Overdrive integration test by @jonathangreen in #3014
- Fix time-dependent test failure in playtime report test by @jonathangreen in #3020
- Fix collection delete timeout by batching license pool deletions (PP-3683) by @jonathangreen in #3034
Other Changes
- Extract schema.org models to dedicated module (PP-3600) by @jonathangreen in #3007
- Refactor lanes module into dedicated facets and worklist modules (PP-3147) by @jonathangreen in #3011
- Add strict type annotations to feed/facets module (PP-3147) by @jonathangreen in #3013
- Remove unused /feed/qa endpoints 🔥 (PP-2728) by @jonathangreen in #3026
- Refactor feed types to use strongly-typed dataclasses (PP-2728) by @jonathangreen in #3025
- Add strict typing to src/palace/manager/api/lanes.py by @dbernstein in #3023
- Resolve warnings in tests by @jonathangreen in #3029
- Add strict type checking to all files under src/palace/manager/api/ad… by @dbernstein in #3022
Dependency Updates
- Bump alembic from 1.18.1 to 1.18.3 by @dependabot[bot] in #3016
- Bump protobuf from 6.32.1 to 6.33.5 by @dependabot[bot] in #3019
- Bump pyjwt from 2.10.1 to 2.11.0 by @dependabot[bot] in #3021
- Bump google-api-python-client from 2.188.0 to 2.189.0 by @dependabot[bot] in #3024
- Bump tenacity from 9.1.2 to 9.1.3 by @dependabot[bot] in #3028
- Bump tenacity from 9.1.3 to 9.1.4 by @dependabot[bot] in #3030
- Bump pyfakefs from 6.0.0 to 6.1.0 by @dependabot[bot] in #3031
- Bump alembic from 1.18.3 to 1.18.4 by @dependabot[bot] in #3036
- Bump pyfakefs from 6.1.0 to 6.1.1 by @dependabot[bot] in #3037
- Bump cryptography from 46.0.2 to 46.0.5 by @dependabot[bot] in #3039
- Bump pillow from 12.1.0 to 12.1.1 by @dependabot[bot] in #3040
Full Changelog: v37.1.0...v38.0.0
v37.1.0
Immutable
release. Only release title and notes can be modified.
What's Changed
Other Changes
- Update circulation-admin ui to 1.35.0 from 1.34.0 by @dbernstein in #3006
Full Changelog: v37.0.0...v37.1.0
v37.0.0
Immutable
release. Only release title and notes can be modified.
What's Changed
Breaking Changes
- [PP-3498] Add sort option to crawlable feed by @dbernstein in #3002
Features
- Add bulk update audience classifications script (PP-3538) by @jonathangreen in #2994
- Add policy-filtered works, search, and facets to admin suppressed feed (PP-3525) by @jonathangreen in #2990
- [PP-3498] Add sort option to crawlable feed by @dbernstein in #3002
- Add DeMarque WebReader JWT for ODL fulfillment (PP-3586) by @jonathangreen in #3004
Other Changes
- Add comprehensive type annotations to scripts module by @jonathangreen in #2979
- Add comprehensive type annotations to util module by @jonathangreen in #2980
- Rename AdminFeed and AdminAnnotator by @jonathangreen in #2987
- Improve some SAML error responses (PP-3507) by @tdilauro in #2997
- Update deprecated
setParseActionmethod calls by @tdilauro in #2998 - Add type annotations to FeedController and related code (PP-3525) by @jonathangreen in #2992
- Refactor search module into smaller, focused components by @jonathangreen in #2995
- Standardize 401 problem detail URLs with recoverable/unrecoverable categories by @jonathangreen in #3003
- [PP-3488] Add the published date, bisac tags, and age ranges to the inventory report. by @dbernstein in #2986
- Refactor lane module into smaller, focused components by @jonathangreen in #3001
- Add type annotations to ExternalSearchIndex methods by @jonathangreen in #3000
- Convert SearchBase class to module-level helper functions by @jonathangreen in #2996
Dependency Updates
- Bump alembic from 1.18.0 to 1.18.1 by @dependabot[bot] in #2988
- Bump pyasn1 from 0.6.1 to 0.6.2 by @dependabot[bot] in #2993
- Bump pyparsing from 3.3.1 to 3.3.2 by @dependabot[bot] in #2999
- Bump google-auth from 2.47.0 to 2.48.0 by @dependabot[bot] in #3005
Full Changelog: v36.4.0...v37.0.0
v36.4.0
Immutable
release. Only release title and notes can be modified.
What's Changed
Features
- [PP-3247] Adds terms_checkouts to license model and ensures that odl … by @dbernstein in #2969
- Add library catalog content filtering (PP-3237) by @jonathangreen in #2933
- [PP-3248] Add License.terms_checkouts to inventory report. by @dbernstein in #2971
Bugfixes
- Fix OPDS2+ODL streaming DRM fulfillment (PP-3467) by @jonathangreen in #2956
- Fix customlist deadlock by ensuring global ordering across all pools by @jonathangreen in #2955
- Fix OPDS2+ODL importer to correctly extract streaming links based on medium (PP-3467) by @jonathangreen in #2962
- Fix streaming DRM content type to include streaming profile (PP-3467) by @jonathangreen in #2965
- Fix OPDS importer to replace format data on harvest (PP-3467) by @jonathangreen in #2967
- Filter MARC export by library content settings (PP-3241) by @jonathangreen in #2972
Other Changes
- Include matching attribute in SAML patron ID extraction logging. by @tdilauro in #2950
- Implement StreamingFulfillment class for streaming fulfillment (PP-3467) by @jonathangreen in #2966
- Remove unused DatabaseExclusiveWorkList class 🔥 by @jonathangreen in #2973
- Add type annotations to PatronUtility class by @jonathangreen in #2974
- Add type annotations to Credential model methods by @jonathangreen in #2977
- Add type annotations to Admin and AdminRole models by @jonathangreen in #2976
- Add type annotations to edition.py and enable mypy strict checking by @jonathangreen in #2978
- Add type annotations to web_publication_manifest module by @jonathangreen in #2975
Dependency Updates
- Bump pyfakefs from 5.10.2 to 6.0.0 by @dependabot[bot] in #2948
- Bump certifi from 2025.11.12 to 2026.1.4 by @dependabot[bot] in #2954
- Bump pillow from 12.0.0 to 12.1.0 by @dependabot[bot] in #2952
- Bump pyparsing from 3.2.5 to 3.3.1 by @dependabot[bot] in #2949
- Bump celery from 5.6.0 to 5.6.2 by @dependabot[bot] in #2953
- Bump tox from 4.32.0 to 4.33.0 by @dependabot[bot] in #2961
- Bump google-auth from 2.45.0 to 2.47.0 by @dependabot[bot] in #2960
- Bump jsonschema from 4.25.1 to 4.26.0 by @dependabot[bot] in #2959
- Bump pyinstrument from 5.1.1 to 5.1.2 by @dependabot[bot] in #2958
- Bump urllib3 from 2.6.2 to 2.6.3 by @dependabot[bot] in #2957
- Bump tox from 4.33.0 to 4.34.0 by @dependabot[bot] in #2963
- Bump types-requests from 2.32.4.20250913 to 2.32.4.20260107 by @dependabot[bot] in #2964
- Bump werkzeug from 3.1.4 to 3.1.5 by @dependabot[bot] in #2968
- Bump tox from 4.34.0 to 4.34.1 by @dependabot[bot] in #2981
- Bump google-api-python-client from 2.187.0 to 2.188.0 by @dependabot[bot] in #2985
- Bump filelock from 3.20.2 to 3.20.3 by @dependabot[bot] in #2984
- Bump alembic from 1.17.2 to 1.18.0 by @dependabot[bot] in #2982
- Bump virtualenv from 20.36.0 to 20.36.1 by @dependabot[bot] in #2983
Full Changelog: v36.3.0...v36.4.0
v36.3.0
Immutable
release. Only release title and notes can be modified.
What's Changed
Features
- Make ODL text/html imports streaming type (PP-3296) by @jonathangreen in #2943
Other Changes
- Revert "[PP-3376] Increase nginx large client buffers to support long… by @dbernstein in #2937
- [PP-3376] Makes library_uuids param optional for generating quicksigh… by @dbernstein in #2936
- Update circulation admin ui to version 1.34.0. by @dbernstein in #2942
Dependency Updates
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #2935
- Bump urllib3 from 2.6.1 to 2.6.2 by @dependabot[bot] in #2934
- Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #2938
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #2939
- Bump mypy from 1.19.0 to 1.19.1 by @dependabot[bot] in #2940
- Bump pre-commit from 4.5.0 to 4.5.1 by @dependabot[bot] in #2946
- Bump filelock from 3.20.0 to 3.20.1 by @dependabot[bot] in #2945
- Bump google-auth from 2.43.0 to 2.45.0 by @dependabot[bot] in #2944
- Bump flask-cors from 6.0.1 to 6.0.2 by @dependabot[bot] in #2941
Full Changelog: v36.2.0...v36.3.0