Skip to content

Releases: experimaestro/experimaestro-python

v2.1.5

20 Mar 06:50

Choose a tag to compare

[2.1.5] - 2026-03-20

Bug Fixes

  • Handle broken codecarbon installations in CI (cb74f10)

Features

  • Add agent skill and install-skill CLI command (741e6fb)
  • Auto-serialize experiment configs with tags at finalize (5580c66)
  • Add stop_tags() to prevent tag propagation from sub-configs (521abf9)

[2.1.4] - 2026-03-18

Bug Fixes

  • tui: Xp run status display (613e9be)- Normalize identifiers to lowercase in Identifier constructor (8c2afa8)
  • Replace deprecated docutils OptionParser with get_default_settings (cf54bf5)
  • Handle Union types in generic type argument validation (7725252)
  • Display tags on separate lines in TUI job detail view (789e088)

Features

  • Validate generic type arguments at runtime in GenericType.validate (1a53067)
  • Add set[T] as a supported parameter type (b882cdc)
  • Allow running services for past runs in TUI (20830fb)

Testing

  • Add xfail test for generic type arg validation (a0486a4)

[2.1.3] - 2026-03-07

Bug Fixes

  • Fix handle_delete_all for orphans (fa6fcfb)
  • Preserve failure reason in job state serialization for monitoring (e7755d7)
  • Make xp.wait() properly block until all jobs finish and propagate Ctrl+C (e335c6c)
  • Stop job submissions after Ctrl+C signal is received (1877778)

Documentation

Features

  • Reuse SSH connection for rsync via ControlMaster multiplexing (51ea555)

Performance

  • Replace inspect.stack() with sys._getframe() in Config.init (382a52e)
  • Skip file I/O for unrelated jobs in EventReader.start_watching() (4d8056a)

Testing

  • Add tests verifying xp.wait() blocks until all jobs finish (a3c8030)

[2.1.2] - 2026-03-05

Features

  • Add tree-based job view in TUI with configurable grouping (69e5d72)
  • Add adaptive directory polling to detect new event files on NFS (606562f)

[2.1.1] - 2026-03-05

Bug Fixes

  • Remove stale dependencies arg from ExperimentJobInformation constructor (c19a2b6)
  • Use experiment status to determine if running in TUI (ab56414)
  • Only block experiment deletion when experiment is running (df5048e)
  • Deserialize nested JobTag and ProgressLevel in EventBase.from_dict (9d130dd)
  • Block experiment deletion only when experiment is actively running (f4dca41)
  • Improve job deletion to allow unscheduled jobs and show detailed errors (79b922a)

Features

  • Default TUI sort by status (running first) then start time desc (966c6a0)
  • Improve stray/orphan job detection with SSH support and split TUI tabs (677509b)

Refactor

  • Bulk event replay, fix TUI flickering, clean up event architecture (d34a3ce)
  • Flatten experiment event files layout (8b99674)

[2.1.0] - 2026-03-04

Bug Fixes

  • Remove FIXME marker and fix formatting in mkdocs plugin (bbfee41)
  • TUI state display, event cache key mismatch, and poll-based deletion detection (7b4319f)
  • Make subclasses of mocked classes subscriptable (085809b)
  • Show concise error for HandledException instead of full traceback (984819d)
  • Correct test assertion for nonexistent file in test_polling (5d62451)
  • Refactor JobState to use subclass overrides, fix TUI status display (968b6a5)

Features

  • Update TUI, WebUI, and CLI to use scheduler_state and experiment job info (bc06c1f)
  • Bump SSH remote protocol version to 2.0 (56fdf19)
  • Generalize parent to imports for multi-file YAML inheritance (ffcc896)

Miscellaneous Tasks

  • Update docs/demo submodule (366fb1e)

Refactor

  • Separate scheduler_state from execution state in job model (e68f62f)

Testing

  • Adapt tests to scheduler_state split and removed submittime (f8a71c5)

[2.0.7] - 2026-03-02

Bug Fixes

  • Skip sub-package traversal when module import fails (6c3ca0b)

Features

  • ProcessWebService, service log viewing, and keep services alive (321b500)

[2.0.6] - 2026-03-02

Bug Fixes

  • Resolve npm security vulnerabilities and fix frontend build (734d416)
  • Update deprecated field(ignore_default=X) syntax in tests (3e512e6)
  • Prevent directory creation in dry-run mode (a06e694)
  • Add grace period to SLURM watcher before stopping (145fe50)
  • Handle event file rotation for job event files in EventReader (87020d0)
  • Clean up stale PID files and skip expensive process checks in monitoring ([942c68e](https://github.com/experimaestro/exp...
Read more

v2.1.4

18 Mar 16:55

Choose a tag to compare

[1.16.1] - 2026-03-18

Bug Fixes

  • Handle enum data type in parameters-difference (fixes #143) (fd80c6e)

[1.16.0] - 2025-12-20

Bug Fixes

  • Remove references to pkg_resources (7810dcb)

Features

  • Add workspace version checking to prevent v2 incompatibility (b144e40)

[1.15.2] - 2025-11-28

Bug Fixes

  • Do not return the same task output when running twice (3579b13)

[1.15.1] - 2025-10-13

Bug Fixes

[1.15.0] - 2025-10-12

Breaking

  • Init tasks are taken into account properly when computing identifiers (49c8766)

[1.14.0] - 2025-10-03

Bug Fixes

  • Robust generated value detection (d680bb6)
  • More robust generated value check (3fb99cd)

[1.13.0] - 2025-10-02

Bug Fixes

[1.12.0] - 2025-09-21

Build

v1.16.1

18 Mar 16:36

Choose a tag to compare

fix: handle enum data type in parameters-difference (fixes #143)

v2.1.3

07 Mar 10:26

Choose a tag to compare

[2.1.3] - 2026-03-07

Bug Fixes

  • Preserve failure reason in job state serialization for monitoring (e7755d7)
  • Make xp.wait() properly block until all jobs finish and propagate Ctrl+C (e335c6c)
  • Stop job submissions after Ctrl+C signal is received (1877778)

Documentation

Features

  • Reuse SSH connection for rsync via ControlMaster multiplexing (51ea555)

Performance

  • Replace inspect.stack() with sys._getframe() in Config.init (382a52e)
  • Skip file I/O for unrelated jobs in EventReader.start_watching() (4d8056a)

Testing

  • Add tests verifying xp.wait() blocks until all jobs finish (a3c8030)

v2.1.2

05 Mar 15:56

Choose a tag to compare

[2.1.2] - 2026-03-05

Features

  • Add tree-based job view in TUI with configurable grouping (69e5d72)
  • Add adaptive directory polling to detect new event files on NFS (606562f)

v2.1.1

05 Mar 13:33

Choose a tag to compare

[2.1.1] - 2026-03-05

Bug Fixes

  • Remove stale dependencies arg from ExperimentJobInformation constructor (c19a2b6)
  • Use experiment status to determine if running in TUI (ab56414)
  • Only block experiment deletion when experiment is running (df5048e)
  • Deserialize nested JobTag and ProgressLevel in EventBase.from_dict (9d130dd)
  • Block experiment deletion only when experiment is actively running (f4dca41)
  • Improve job deletion to allow unscheduled jobs and show detailed errors (79b922a)

Features

  • Default TUI sort by status (running first) then start time desc (966c6a0)
  • Improve stray/orphan job detection with SSH support and split TUI tabs (677509b)

Refactor

  • Bulk event replay, fix TUI flickering, clean up event architecture (d34a3ce)
  • Flatten experiment event files layout (8b99674)

v2.1.0

04 Mar 09:25

Choose a tag to compare

[2.1.0] - 2026-03-04

Bug Fixes

  • Remove FIXME marker and fix formatting in mkdocs plugin (bbfee41)
  • TUI state display, event cache key mismatch, and poll-based deletion detection (7b4319f)
  • Make subclasses of mocked classes subscriptable (085809b)
  • Show concise error for HandledException instead of full traceback (984819d)
  • Correct test assertion for nonexistent file in test_polling (5d62451)
  • Refactor JobState to use subclass overrides, fix TUI status display (968b6a5)

Features

  • Update TUI, WebUI, and CLI to use scheduler_state and experiment job info (bc06c1f)
  • Bump SSH remote protocol version to 2.0 (56fdf19)
  • Generalize parent to imports for multi-file YAML inheritance (ffcc896)

Miscellaneous Tasks

  • Update docs/demo submodule (366fb1e)

Refactor

  • Separate scheduler_state from execution state in job model (e68f62f)

Testing

  • Adapt tests to scheduler_state split and removed submittime (f8a71c5)

v2.0.7

02 Mar 08:41

Choose a tag to compare

[2.0.7] - 2026-03-02

Bug Fixes

  • Skip sub-package traversal when module import fails (6c3ca0b)

Features

  • ProcessWebService, service log viewing, and keep services alive (321b500)

v2.0.6

02 Mar 06:24

Choose a tag to compare

[2.0.6] - 2026-03-02

Bug Fixes

  • Resolve npm security vulnerabilities and fix frontend build (734d416)
  • Update deprecated field(ignore_default=X) syntax in tests (3e512e6)
  • Prevent directory creation in dry-run mode (a06e694)
  • Add grace period to SLURM watcher before stopping (145fe50)
  • Handle event file rotation for job event files in EventReader (87020d0)
  • Clean up stale PID files and skip expensive process checks in monitoring (942c68e)
  • Add dedicated cleanup pass to scan all jobs for stale PID files (51e1b9c)
  • Event-driven job state transitions and NFS polling support (093e300)
  • Monitoring mode not detecting experiment services and job states (26ba77b)
  • Serialize per-job states in status.json for correct monitoring counters (ef81b5f)

Features

  • Accumulate carbon metrics across ResumableTask restarts (762e9e4)

Performance

  • Avoid repeated filesystem scanning and SLURM checks in TUI (94b77ac)
  • Lazy-load jobs.jsonl and persist total_jobs in status.json (a3cf860)
  • Skip event replay at startup, lazy-load from status.json (62e9adb)
  • Flatten job event files to single directory for NFS efficiency (dafc347)

Refactor

  • Simplify EventReader to one-file-per-entity model with rotation (ffee974)

v2.0.5

01 Mar 11:34

Choose a tag to compare

[2.0.5] - 2026-03-01

Bug Fixes

  • Python 3.14 compatibility for annotations and Union types (5ba8316)
  • Prevent cleanup from deleting event files of active jobs (85ba2e1)
  • Stale job state and failed counter in SSH monitoring mode (acfa46e)
  • Move TUI data fetching to background workers for SSH responsiveness (b43b827)
  • Shared JobEventWriter and proper event file cleanup on restart (1dbb8b9)
  • Restore carbon metrics in MockJob.from_state_dict() and apply_event() (de3fcb1)
  • Replay job events on restart for up-to-date progress/carbon/timestamps (65cbead)
  • Move event replay after load_from_disk to prevent state overwrite (f7eb1f1)
  • Update tests for EventReader.follow() return type change (1785d67)

CI

  • Improved and fixed cliff file (63802c6)
  • Run tests for all stable python (up to 3.14) (9b74411)
  • Correct skip message (ae22ddb)

Features

  • Add centralized FileWatcherService with TailedFilePool (c528a99)

Miscellaneous Tasks