-
Notifications
You must be signed in to change notification settings - Fork 46
chore(release): 0.30.3 #1043
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(release): 0.30.3 #1043
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,18 @@ | ||
| ## 0.30.3 (2026-08-10) | ||
|
|
||
| ### Features | ||
| * Added a Rust session runtime adapter, allowing sessions to run using the OpenJD v1 Rust runtime in addition to the existing Python runtime. (#1002) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This entry presents the Rust runtime as simply available, but it can be absent at runtime and the failure mode is deliberately hard — worth a caveat here.
The consequence for an operator: setting Suggest a sentence stating the requirement (or that the setting is opt-in/experimental) and that sessions fail rather than falling back when the runtime is unavailable. Same applies to |
||
| * The worker agent now consumes the `runtimeHint` from UpdateWorkerSchedule responses to select the session runtime (Python or Rust) per session. The service can signal which runtime to use; absent hints default to Python. (#1016) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This release makes the At 0.30.2 ( Anyone who set the value while experimenting on 0.30.1/0.30.2 and saw no effect will get a runtime switch they did not ask for in this release. Worth an explicit note — the current Features entries read as "a new capability was added", not "an existing config key that was previously ignored now takes effect". |
||
| * Added `select_runtime()` to resolve session runtime mode based on configuration (`python`, `rust`, or `service-selected`) and the service's runtime hint. (#1009) | ||
| * Runtime selection and failure telemetry events are now emitted (opt-out respected via `[telemetry] opt_out` in worker.toml), providing visibility into which runtime is chosen and any selection/construction failures. (#1021) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The telemetry entry describes the purpose of the new events but not what they transmit, and the new events carry identifiers that prior worker-agent telemetry did not send.
For a public agent where telemetry is on by default and opt-out is the user's responsibility, the set of identifiers leaving the host is the material fact — "providing visibility into which runtime is chosen" understates it. Suggest naming the fields in the entry so operators can make an informed opt-out decision without reading the source. Credit where due: the implementation is careful about not leaking free text — the scheduler deliberately sends a constant There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. One gap in the otherwise careful PII handling behind this entry, worth flagging while the release is still open:
"failure_reason": failure_reason[:_FAILURE_REASON_MAX_LEN], # 200but That is exactly the path where the value is known not to be one of Applying |
||
|
|
||
| ### Bug Fixes | ||
| * Fixed `step_name` not being passed through to `run_task`, which caused jobs with wrap environments to fail because OpenJD could not resolve `WrappedStep.Name`. (#1039) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This entry says the missing
So the code path was latent, not reachable. Recommend softening to something like " |
||
| * Fixed `step_name` not being forwarded on the Rust runtime path, so `WrappedStep.Name` now resolves correctly for Rust sessions as well. (#1040) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same category as the #1009 duplication on line 14: this is listed as a bug fix, but the code it fixes was introduced in this very release and never shipped. The Rust runtime path did not exist in 0.30.2 — the adapter arrived in Combined with line 10 (already noted separately), the Bug Fixes section currently reads as though 0.30.3 repairs two |
||
| * Fixed the agent terminating on transient network errors (connection closed, connect timeout, endpoint connection, read timeout) during UpdateWorkerSchedule calls. These are now retried with exponential backoff. (#1013) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The parenthesised list understates the scope of what is now retried, and one omission is operationally significant. The implementation does not enumerate those four leaf types — it catches two botocore base classes ( _TRANSIENT_NETWORK_EXCEPTIONS = (BotocoreConnectionError, HTTPClientError)Per the comment directly above it, that also covers Also worth noting for readers: the retry budget is finite. After |
||
| * Fixed an unrecoverable error exit when credentials expire mid-flight due to machine hibernate/sleep. The agent now detects the time-jump scenario and retries with bootstrap credentials. (#1014) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "The agent now detects the time-jump scenario" claims a precision the implementation explicitly disclaims, and the difference matters for anyone diagnosing an auth failure.
So a real IAM problem — fleet role deleted, trust policy edited, permission boundary tightened — that lands near a credential expiry boundary is now silently retried with bootstrap credentials and logged as "possible hibernate/sleep", instead of surfacing as the access-denied error it is. Bootstrap credentials often carry different permissions than the fleet role, so the retry may even succeed and mask a misconfiguration that will resurface later. Suggest matching the code's own hedging: "…retries with bootstrap credentials when credentials are found to have expired during the call" and dropping "detects the time-jump scenario". Operators who see the new warning should know it can also mean a genuine permissions failure. |
||
| * Fixed the service's `runtimeHint` wire values (`pythonexpr` and `rust`) not being recognized. They are now correctly mapped to the corresponding session runtimes. (#1009) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Now that this entry is attributed to a PR instead of a bare hash, it is visible that it cites the same PR as the PR #1009 landed as two commits: Listing it under |
||
| * Rust runtime panics (BaseException from PyO3) no longer kill the session thread silently. They are now converted to `SessionRuntimeCrashError` at the adapter boundary, allowing proper failure reporting and cleanup. (#1026) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing blank line between the last bullet and the Some strict CommonMark renderers require a blank line before an ATX heading that directly follows a list item, in which case |
||
| ## 0.30.2 (2026-07-14) | ||
|
|
||
| ### Features | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These release notes omit the required-dependency floor raises that ship with 0.30.3. Between
290e493(0.30.2) and this commit,pyproject.tomlchanged:openjd-model:>= 0.8.1, < 0.11→>= 0.11.1, < 0.12openjd-sessions:== 0.10.10→== 0.10.13deadline-job-attachments:== 0.1.2→== 0.1.3The
openjd-modelchange is the notable one: it raises the minimum across two minor versions, so anyone installing the worker agent into an environment that also pinsopenjd-model < 0.11(a constraint that was valid for every prior release) will now get a resolution conflict on upgrade rather than a working install. That is exactly the kind of thing a reader consults a changelog for, and it is not derivable from any entry here.Suggest adding a line under Features (or a
### Dependenciessubsection) noting theopenjd-modelminimum moved to>= 0.11.1, < 0.12.