Skip to content

Releases: zapata-engineering/orquestra-sdk

v0.49.0

26 May 10:34
cabe4cd
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.48.0...v0.49.0

v0.48.0

15 May 17:31
8e99ce4
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.47.0...v0.48.0

v0.47.0

28 Apr 13:37
3c33afa
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.46.0...v0.47.0

v0.46.0

14 Apr 12:10
124e760
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.45.1...v0.46.0

v0.45.1

21 Mar 23:37
d1ff60b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.45.0...v0.45.1

v0.45.0

15 Mar 15:16
2cda5bf
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.44.0...v0.45.0

v0.44.0

06 Mar 15:27
131923d
Compare
Choose a tag to compare

Changelog

🚨 Breaking Changes

  • Removed FluentBit-related CLI options: orq {up,down} --fluentbit flag. Logs produced by the local Ray runtime are read directly by the SDK now. This only affects users who used the experimental integration with FluentBit docker container.
  • GitImport will no longer be downloaded automatically when using Ray locally. This reverts behavior to v0.42.0.
  • Internal configuration environment variables have changed.

🔥 Features

  • Secrets can now be used inside workflow functions
  • sdk.secrets.get("name") will now use passport-based authorization if ORQUESTRA_PASSPORT_FILE environment variable is set. Otherwise, passing a valid config_name="..." is required.
  • Bump Ray version to 2.3
  • GithubImport can be used with a username and a secret referring to a "personal access token" to enable private GitHub repositories on Compute Engine. Server side support coming soon!

🐛 Bug Fixes

  • Getting full logs produced by Ray workflows. Previously, the dictionary returned by logs_dict = wf_run.get_logs() had just a single entry: {"logs": ["task 1 log", "task 1 log", "task 2 log", "task 2 log"]}. Now, the dictionary has a correct shape: {"task_invocation_id1": ["task 1 log", "task 1 log"], "task_invocation_id2": ["task 2 log", "task 2 log"]}.
  • Getting single task logs. Previously orq task logs would raise an unhandled exception. Now, it prints the log lines.
  • Workflow run IDs inside logs on CE now match the expected run ID.

💅 Improvements

  • orq wf view now shows TaskInvocationIDs instead of TaskRunIDs. This improves usage of orq wf view with other CLI commands that require passing invocation ID, like orq task {logs,results}.
  • sdk.WorkflowRun.wait_until_finished() will now print workflow status every now and then.

Internal

  • Git URL model changed inside the IR
  • orq up will now configure Ray's Plasma directory

PRs

Full Changelog: v0.43.0...v0.44.0

v0.43.0

06 Feb 16:11
2487492
Compare
Choose a tag to compare

What's Changed

🚨 Breaking Changes

  • Brand-new orq CLI with simplified command tree and interactive prompts when a required argument isn't passed. New commands:
    • orq workflow submit
    • orq workflow view
    • orq workflow list
    • orq workflow stop
    • orq workflow logs
    • orq workflow results
    • orq wf as a shorthand for orq workflow
    • orq task logs
    • orq task results
    • orq up
    • orq down
    • orq status
    • orq login
  • sdk.WorkflowRun.get_logs() doesn't accept any arguments any more. Now, it returns all the logs produced by the tasks in the workflow. If you're interested in only a subset of your workflow's logs, please consider using one of the following filtering options:
from orquestra import sdk
from orquestra.sdk.schema.workflow_run import State

wf_run = sdk.WorkflowRun.by_id("foo")

logs = wf_run.get_logs()
# Option 1
single_task_logs = logs["my_inv_id"]

# Option 2
logs_subset = {id: lines for id, lines in logs.items() if id in ["foo", "bar", "baz"]}

# Option 3
for task in wf_run.get_tasks():
    if task.get_status() == State.FAILED:
        print(task.get_logs())
  • sdk.WorkflowRun.get_artifacts() doesn't accept any arguments any more. Now, it returns all the artifacts produced by the tasks in the workflow.
  • sdk.TaskRun.get_logs() returns a list of log lines produced by this task. Previously, it returned a dictionary with one entry.
  • Executing a workflow on Ray with Git imports will now install them. A known limitation is that this will only work for Git repositories that are Python packages and will fail for Git repositories that are not Python packages.
  • The API will no longer accept config_save_file as optional parameters, from now on if you want to use a different config file use the ORQ_CONFIG_PATH environment variable.

🔥 Features

  • list_workflow_runs added to the Public API. This lets you list the workflows for a given config, for example sdk.list_workflow_runs("ray") or sdk.list_workflow_runs("prod-d").

🐛 Bug Fixes

  • Fixed broken link on docs landing page.
  • Internal logs from Ray are no longer displayed.
  • Fixed the docstrings for sdk.WorkflowRun.get_artifacts(). It returns a dictionary with TaskInvocationID as keys and whatever the task returns as values.
  • Fixed bug where some log line from Ray may be duplicated when viewing logs
  • Tasks with duplicate imports will no longer fail when running on QE
  • AST parser will no longer print a lot of "Info" messages
  • sdk.WorkflowRun.get_logs() now only returns logs produced by the user. Previously, it included internal debug messages produced by Ray.
  • Logs from workflows submitted to Ray are now always returned as JSONL lines

New Contributors

Full Changelog: v0.42.0...v0.43.0

v0.42.0

12 Jan 12:11
eb40be5
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/zapatacomputing/orquestra-workflow-sdk/commits/v0.42.0