Skip to content

release: promote develop to main (parallel-tuning UX + TensorBoard visualization)#196

Merged
bartzbeielstein merged 9 commits into
mainfrom
develop
Jun 7, 2026
Merged

release: promote develop to main (parallel-tuning UX + TensorBoard visualization)#196
bartzbeielstein merged 9 commits into
mainfrom
develop

Conversation

@bartzbeielstein
Copy link
Copy Markdown
Collaborator

Promotes develop to main for release.

Contains (#195):

  • fix(model_selection): real config k/N progress labels under parallel SpotOptim
  • feat(multitask): TensorBoard tuning visualization via SpotOptimStrategy → minor bump
  • fix(plots): write_image-safe prediction figures (Timestamp/orjson)
  • build(deps): spotoptim>=0.12.8

🤖 Generated with Claude Code

bartzbeielstein and others added 8 commits June 7, 2026 02:39
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…refresh-lock-self-version

chore: refresh uv.lock self-version after 5.0.0 release
…l SpotOptim search

With SpotOptim n_jobs != 1 every objective evaluation runs in a worker
process holding a dill copy of the closure, so a label derived from
len(all_params) was stuck at 'config 1/N' on every bar. A
multiprocessing.Manager counter + lock (whose proxies survive the dill
round-trip and reconnect from spawned workers) now provides the true
cross-process evaluation count. The parent-side 'SpotOptim trials' bar
is created in sequential mode only — in parallel mode its update() ran
on worker dill-copies and the parent bar printed a stale 0% line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…mStrategy

Forward optional config attributes tensorboard_log / tensorboard_path /
tensorboard_clean through kwargs_spotoptim into the SpotOptim
constructor. Users set them as plain attributes on the config (the safe
package's config classes carry no __slots__), so spotforecast2_safe
stays untouched. Unset attributes are skipped so SpotOptim's own
defaults remain in charge. Live per-eval scalars under parallel tuning
(n_jobs_spotoptim != 1) require spotoptim >= 0.12.8, which logs infill
evaluations parent-side; the real-run test skips on older versions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
kaleido v1 serialises figures via orjson, which rejects the raw pandas
Timestamps that tz-aware indexes leave in trace x arrays (object dtype)
and in shapes/annotations/axis ranges — any direct fig.write_image()
call failed with 'Type is not JSON serializable: Timestamp'. Coerce all
datetime values to ISO-8601 strings at figure-build time (date axes
accept them natively; rendering unchanged). save_to_file keeps its JSON
round-trip for traces added after make_plot().

A full pio.from_json(fig.to_json()) round-trip was rejected: plotly 6
re-encodes numeric arrays as base64 bdata dicts, breaking consumers
that read trace.y.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0.12.8 logs infill evaluations parent-side in steady-state parallel
runs; with the floor bump the tuning-visualization feature is live
under n_jobs != 1 and the gated end-to-end test executes. Also add a
commented uv.sources template for a local editable spotoptim.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…arallel-tuning-ux

Parallel-SpotOptim UX: real progress labels, TensorBoard tuning visualization, write_image-safe figures
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

## [5.1.0-rc.1](v5.0.0...v5.1.0-rc.1) (2026-06-07)

### Features

* **multitask:** expose TensorBoard tuning visualization via SpotOptimStrategy ([3f5770c](3f5770c))

### Bug Fixes

* **model_selection:** show real config k/N progress labels in parallel SpotOptim search ([9fb8ced](9fb8ced))
* **plots:** make prediction figures safe for direct fig.write_image() ([2c9328f](2c9328f))

### Documentation

* add live {python} Examples to all public symbols missing them ([eabfd98](eabfd98))
@bartzbeielstein
Copy link
Copy Markdown
Collaborator Author

🎉 This PR is included in version 5.1.0-rc.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@bartzbeielstein
Copy link
Copy Markdown
Collaborator Author

🎉 This PR is included in version 5.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants