📁 invenio-accounts (5.1.4 -> 5.1.5 🐛)
release: v5.1.5
model: make forward compatible to sqlalchemy >= 2
📁 invenio-admin (1.4.0 -> 1.4.1 🐛)
📦 release: v1.4.1
docs: fix intersphinx config
setup: pin wtforms
3.2.0 makes a breaking change https://wtforms.readthedocs.io/en/3.2.x/changes/
📁 invenio-banners (3.1.1 -> 3.2.0 🌈)
release: v3.2.0
feat(tests): add test for html banner message
feat(administration): use html editor for message
global: use uow instead of explicit commit
refactor: use session.get where possible
* recomended sqlalchemy syntax for sqlalchemy >= 2.0
fix: tests
* test_banner_creation uses the active banner. the service method which
is tested validates the data over the schema where start_datetime and
end_datetime is a required field and it has to look like:
'%Y-%m-%d %H:%M:%S'
* the problem is that test_read_banner uses the same banner to test the
read service. the change in "active" has the effect that the stored
value in the database is not like "2024-07-10 12:04:03.348391" which
it is due the strftime function is not used. db.DateTime could only
bring back the date in form of a datetime object which is then used in
isoformat if the value in the database contains the ".34383" part.
* therefore the easiest solution is to use for test_read_banner the
"other" banner
* ATTENTION: be cautious during the migration from utcnow to
now(timezone.utc)
global: apply new SQLAlchemy rules
* change from model Model.query to db.session.query(Model)
* without an update in pytest-invenio and without this commit it
produces following errors: "sqlalchemy.exc.InvalidRequestError: Can't
operate on closed transaction inside context manager. Please complete
the context manager before emitting further commands." and
'sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation)
duplicate key value violates unique constraint "uq_accounts_user_email"'
* with the updated db fixture in pytest-inveniothis this commit fixes
following TypeError: 'Session' object is not callable
fix: SADeprecationWarning
* SADeprecationWarning: Invoking or_() without arguments is deprecated,
and will be disallowed in a future release. For an empty or_()
construct, use 'or_(false(), *args)' or 'or_(False, *args)'.
BannerModel.query.filter(or_(*filters))
* sqlalchemy/sqlalchemy#5054
fix: SAWarning
* SAWarning:
"This declarative base already contains a class with the "
"same class name and module name as %s.%s, and will "
"be replaced in the string-lookup table."
* if a model should not be versioned the __versioned__ should not be
there at all
* if it is there, it will be added to
version_manager.pending_classes (which seems like a bug, because it is
versioning set to false)
* those pending_classes will be checked against declared classes in
invenio_db.ext and since the banner model should not have a versioned
table it is not in the declared_classes list. this starts then a try
of the version_manager to create the missing tables which causes then
a duplicate error which is shown in the SAWarning
fix: add compatibility layer to move to flask>=3
* flask-sqlalchemy moved pagination.
* this change has been added to have a smooth migration to flask>=3.0.0
without creating a hard cut and major versions release.
📦 release: v3.1.1
📁 invenio-files-rest (2.2.1 -> 2.2.2 🐛)
release: v2.2.2
fix: LegacyAPIWarning of sqlalchemy
* LegacyAPIWarning: The Query.get() method is considered legacy as of
the 1.x series of SQLAlchemy and becomes a legacy construct in 2.0.
The method is now available as Session.get() (deprecated since:
2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)
role = current_datastore.role_model.query.get(id_)
global: move to db.session.query syntax
* this change is a working solution for sqlalchemy ~= 1.4 but a
necessity for >= 2.0
fix: compatibility with werkzeug >= 3.0.0.
* to keep the functionality as it is, a method from werkzeug have been
copy pasted over and changed slightly.
📁 invenio-oauthclient (4.0.2 -> 4.1.0 🌈)
release: v4.1.0
setup: remove upper pins oauthlib,requests-oauthlib
* this change was done to migrate to flask >= 3.0
global: jws use from invenio-base
* jws functionality has been moved to invenio-base because itsdangerous
removes it with v2.1.0
fix: for flask >= 3.0.0 compatibility
* flask >= 3.0.0 removes Markup. to keep the functionality Markup has to
be imported from markupsafe directly
📁 invenio-pidstore (1.3.1 -> 1.3.2 🐛)
release: v1.3.2
model: make forward compatible to sqlalchemy >= 2
i18n:push translations
fix: black
setup: move pytest-black-ng
* former is unsupported
fix: deprecation warning for sphinx
i18n:pulled translations (inveniosoftware/invenio-pidstore#153)
transifex: update config (inveniosoftware/invenio-pidstore#150)
ci: use i18n reusable workflows
📁 invenio-rdm-records (15.7.0 -> 15.7.1 🐛)
release: v15.7.1
installation: bump babel-edtf to >=1.2.0
* This is to enforce `edtf>=5`, which has a fix for supporting EDTF
intervals with unknown start/end.
use correct subkey
rename variable to be more precise
fix inveniosoftware/invenio-rdm-records#1846
setup: forward compatibility to itsdangerous>=2.1
* itsdangerous v2.1 removed the jws functionality
* the jws functionality has been copy pasted to invenio-base to provide
it further
fix: DeprecationWarning of SQLAlchemy
* Query.get() is deprecated in favor of Session.get()
📁 invenio-records (2.4.0 -> 2.4.1 🐛)
release: v2.4.1
model: make forward compatible to sqlalchemy >= 2
📁 invenio-users-resources (6.1.0 -> 6.1.1 🐛)
release: v6.1.1
global: make forward compatible to sqlalchemy >= 2
* LegacyAPIWarning: The Query.get() method is considered legacy as of
the 1.x series of SQLAlchemy and becomes a legacy construct in 2.0.
The method is now available as Session.get() (deprecated since:
2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)
role = current_datastore.role_model.query.get(id_)