Releases: seantis/libres
Releases · seantis/libres
1.0.0
0.10.2
0.10.1
- Adds proper support for SQLAlchemy 1.4. As a result of this
Allocation.typeandReservation.typeare no longer nullable
and have a default value of 'generic', you may use the following
recipe using an alembicOperationsobject to migrate existing
databases:context.operations.execute(""" UPDATE allocations SET type = 'generic' WHERE type IS NULL; """) context.operations.alter_column('allocations', 'type', nullable=False) context.operations.execute(""" UPDATE reservations SET type = 'generic' WHERE type IS NULL; """) context.operations.alter_column('reservations', 'type', nullable=False)
0.10.0
- Adds new entity
ReservationBlockerfor administrative blockers
of targeted allocations for the targeted timespans, this also ends
up adding a new columnsource_typetoReservedSlotwhich can be
added using the following recipe using an alembicOperationsobject:operations.add_column( 'reserved_slots', Column( 'source_type', Enum( 'reservation', 'blocker', name='reserved_slot_source_type' ), nullable=False, server_default='reservation' ) ) operations.alter_column( 'reserved_slots', 'source_type', server_default=None )
0.9.0
- Replaces
JSONdatabase type withJSONB, this means
Postgres as a backend is not required. You will also need
to write a migration for existing JSON columns. You may use
the following recipe using an alembicOperationsobject:operations.alter_column( 'table_name', 'column_name', type_=JSON, postgresql_using='"column_name"::jsonb' )
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
-
Drops support for Python 3.7 and adds support for 3.11
-
Switches to
pyproject.toml -
Adds type annotations
-
Changes
Scheduler.allocateto avoid hundreds of separate
SQL queries when passing in hundreds of datetime ranges in
order to identify existing overlapping allocations.Performance could still be a concern, since the query contains
a lot of datetime comparisons. It might be quicker in the common case to filter to the minimum and maximum dates that
have been passed in and doing the overlap checks entirely in
Python. We will need to keep an eye on this.