Skip to content

Releases: dbos-inc/dbos-transact-py

2.5.0

17 Nov 17:19
b32775b

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.4.0...2.5.0

2.4.0

11 Nov 17:44
b0f07cd

Choose a tag to compare

What's Changed

Full Changelog: 2.3.0...2.4.0

2.3.0

27 Oct 18:33
b329d55

Choose a tag to compare

What's Changed

  • Set Authenticated User and Role Fields from Client by @kraftp in #490
  • Python Fixes by @kraftp in #493
  • Better Validation by @kraftp in #495
  • Don't promote SIGTERM to SIGKILL; let the users do it if needed by @apoliakov in #496
  • Only set OTLP providers when exporter endpoints are set by @qianl15 in #497

Full Changelog: 2.2.0...2.3.0

2.2.0

14 Oct 19:10
cf48898

Choose a tag to compare

What's Changed

Full Changelog: 2.1.0...2.2.0

2.1.0

06 Oct 17:06
1887532

Choose a tag to compare

What's Changed

Full Changelog: 2.0.0...2.1.0

2.0.0

25 Sep 15:21
9aabef8

Choose a tag to compare

DBOS Python 2.0 dramatically reduces package size, reducing DBOS from 18 to 6 direct dependencies and from 73 to 10 total dependencies. It also makes the system database more configurable, adding options to use a custom SQLAlchemy engine or custom database schema.

Fewer Dependencies

Breaking Changes

  • OpenTelemetry is now optional and opt-in. To use DBOS OpenTelemetry features (such as built-in tracing and export) you must install the optional DBOS-OpenTelemetry dependencies (pip install dbos[otel]) and set the enable_otlp flag to True in your configuration:
config: DBOSConfig = {
  "name": "my-app",
  "system_database_url": os.environ.get("DBOS_SYSTEM_DATABASE_URL"),
  "enable_otlp": True,
}
DBOS(config=config)
  • In order to fix silent errors and improve maintainability, we’ve changed the serialization format from jsonpickle to pickle. Because of this change, workflows started on pre-2.0 cannot be forked or recovered in 2.0. This can also affect apps that use custom Workflow IDs to return the results of previously run workflows.

  • In order to upgrade from version 1.12.0 or below, first upgrade to 1.14.0, then upgrade to 2.0. This is because the Alembic-based system database migrations deprecated in DBOS Python 1.13.0 have been removed. System database migrations are now totally managed by DBOS.

  • The following deprecated parameters or methods were removed: the sys_db_name configuration parameter, the workflow restart method and command (replaced with fork), and the parent_workflow_id method.

  • Support for Python 3.9 is dropped as it is reaching end of life.

New Features

  • The current application version can now be accessed through DBOS.application_version
  • The system database schema can now be configured through the dbos_system_schema parameter.
  • A custom system database engine can now be configured through the system_database_engine. If provided, DBOS will not create an engine but use this instead.
  • A new DBOS.get_all_events method lets you retrieve all events published by a workflow.

All Changes

Full Changelog: 1.14.0...2.0.0

1.14.0

16 Sep 16:47
7173cbd

Choose a tag to compare

New Features

Workflow Debouncing. When you debounce a workflow, you delay its execution until some time has passed since the workflow has last been called. Debouncing is really useful for preventing wasted work when a workflow may be triggered multiple times in quick succession. For example, if a user is editing an input field, you can debounce their changes to execute a processing workflow only after they haven't edited the field for some time.

Docs: https://docs.dbos.dev/python/reference/contexts#debouncing

What's Changed

New Contributors

Full Changelog: 1.13.0...1.14.0

1.13.2

12 Sep 16:21
2de92dc

Choose a tag to compare

What's Changed

Full Changelog: 1.13.1...1.13.2

1.13.1

03 Sep 04:15
17e859d

Choose a tag to compare

What's Changed

  • fix(client): Await for a coroutine in retrieve_workflow_async() (#449) by @qianl15 in #450

Full Changelog: 1.13.0...1.13.1

1.13.0

02 Sep 18:58
50fac03

Choose a tag to compare

What's Changed

  • You can now use SQLite for your system database! This lets you prototype or test DBOS applications without Postgres, though Postgres is still recommended in production. For ease of getting started, a SQLite database is now the default for new applications. More details: https://docs.dbos.dev/python/tutorials/database-connection
  • The application database is now entirely optional. You can configure applications with just a system database like this:
config: DBOSConfig = {
    "name": "dbos-starter",
    "system_database_url": os.environ.get("DBOS_SYSTEM_DATABASE_URL"),
}
DBOS(config=config)
  • The CLI has been updated so all commands can run with just a system database URL.

Detailed Notes

Full Changelog: 1.12.0...1.13.0