Skip to content

Releases: experimaestro/experimaestro-python

v2.0.4

28 Feb 12:47

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.

[2.0.4] - 2026-02-28

Features

  • Better SLURM error reporting and TUI job status info (c12e268)
  • Show partition time limits in SLURM configure TUI (4a71b19)

v2.0.3

28 Feb 11:55

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.

[2.0.3] - 2026-02-28

Bug Fixes

  • Resolve remote workspace path for SSH log file syncing (306758b)
  • SSH remote TUI monitoring bugs and remove redundant Jobs column (d696c8b)
  • Recognize PARTITION_TIME_LIMIT as a SLURM error state (29165bc)

v2.0.2

28 Feb 08:04

Choose a tag to compare

[2.0.2] - 2026-02-28

Bug Fixes

  • tests: Use experiment.failed property instead of FailedExperiment exception (fdf8b6f)- Fix order of params for cli documentation (d109c46)
  • Use addListener instead of non-existent add_token in launcher template (29ded3b)
  • Rationalize field() default value semantics (#191) (e9c34ff)
  • TUI jobs disappear after relaunching failed experiment (#190) (3f2aa97)
  • Variable shadowing bug in documentation analyzer (9b533dc)

CI

Documentation

  • Updated demo (77b9f1e)
  • Enhance changelog with detailed dynamic task outputs and read more links (7a37e8b)

v2.0.1

24 Feb 18:48

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.

[2.0.1] - 2026-02-24

Bug Fixes

  • Rationalize field() default value semantics (#191) (e9c34ff)

Documentation

  • Enhance changelog with detailed dynamic task outputs and read more links (7a37e8b)

v2.0.0

20 Feb 11:03

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.

[2.0.0] - 2026-02-20

Bug Fixes

  • ConfigurationBase: Documentation and new fields to describe an experiment (df6e0a6)
  • build: Auto-run npm build during pip install (fixes #157) (3ec6c6f)
  • build: Skip frontend build on ReadTheDocs (ff61714)
  • carbon: Handle Energy objects from newer codecarbon versions (64c09df)
  • carbon: Store carbon settings in params.json for SLURM compatibility (aa6a2bd)
  • ci: Add contents:write permission to update release notes (ca68c62)
  • cli: Improve FailedExperiment error handling and exit codes (ead3003)
  • cli.py: Python path should be modified including when running the experiments (c5487f8)
  • configuration: Serialize the task to recompute exactly the identifier (f642607)
  • configuration: Fixed bugs with identifiers (98608c3)
  • configuration: Fixed more bugs with identifiers (fbea16e)
  • core: Move register_task_output back to Config class (399f883)
  • core: Add name() method to EnumType class (6e1e83e)
  • deps: Update webpack-dev-server to 5.2.2 (2603abe)
  • docs: Explicitly build MkDocs site to ReadTheDocs output directory (998efd0)
  • docs: Use post_checkout instead of pre_build for RTD (cfdb081)
  • docs: Mock mkdocs in Sphinx conf.py for RTD builds (0e7c4b2)
  • docs: Fetch git tags for version detection on RTD (38ed73f)
  • dynamic_outputs: Fix task output count management and add documentation (1da665f)
  • events: Archive job events on successful completion (2bc1780)
  • events: Prevent duplicate event processing due to race condition (2483a4f)
  • kill: Show error reason when failing to kill job (d878874)
  • mkdocs: Handle gracefully when mkdocs is not installed (886248b)
  • monitor: Prevent orphaned event consolidation on running experiments (43134f7)
  • polling: Optimize ResourcePoller to avoid tight loop (ae52085)
  • scheduler: Add thread-safe listener management (83bb4d3)
  • scheduler: Wait for notification queue before experiment exit (adf5a4d)
  • scheduler: Improve job state management and disk loading (59e17bc)
  • scheduler: Add thread safety to dynamic outputs and fix counting (0a3f43b)
  • scheduler: Ensure experiment events written synchronously on job finish (63c1b98)
  • scheduler: Allow killing scheduled jobs, not just running ones (a234dba)
  • scheduler: Add setter to Job.progress property (73d6ecf)
  • scheduler: Improve job restart logic and clear transient fields properly (ce51856)
  • server: Fix some display bugs in the UI (642c48a)
  • slurm: Better SLURM launcher finder (0992214)
  • slurm: Check if slurm process is alive before returning it (d084d27)
  • slurm: Resolve race conditions and blocking in async methods (ca2a89b)
  • sphinx: Add compatibility with Sphinx 8.0 (e1bde2b)
  • state: Cache jobs to receive progress events in TUI (f107fd7)
  • test: Make test_token_timeout_zero more robust (82dc143)
  • tests: Suppress logging errors during test timeout cleanup (33bc5dd)
  • tests: Fix flaky SLURM tests (437d6cc)
  • tests: Disable process detaching in test mode to prevent rogue processes (8e9ccb0)
  • tests: Use experiment.failed property instead of FailedExperiment exception (fdf8b6f)
  • tui: Use better status (b6b1f34)
  • tui: Prevent UI freeze when closing log viewer during sync (becc1d3)
  • tui: Use Process abstraction for process info instead of psutil (0cee4c2)
  • tui: Convert progress dicts to LevelInformation objects (bcd283e)
  • tui: Keep finished experiments in scheduler so jobs remain visible (62dd192)
  • tui: Display and copy remote paths in ssh-monitor mode (304c7ce)
  • tui: Fix services not appearing in TUI with live scheduler (671d5c6)
  • types: Accept generics as Param (but no real validation) (6f639ce)
  • types: Add generic type parameter compatibility check for overrides (f67fa74)
  • typinutils: Test for optional (67164ec)- Fix (04705b3)
  • Fix (223932a)
  • Wrong indent ([d373348](https://github.com/experimaestro/experimae...
Read more

v2.0.0b32

09 Feb 07:37

Choose a tag to compare

fix: respect umask in setExecutable and handle flag parameter

The setExecutable method was ignoring the flag parameter and always
setting permissions to 0o744 regardless of umask. Now it:
- Adds execute bits while respecting umask when flag=True
- Removes execute bits when flag=False
- Preserves existing file permissions (only modifies execute bits)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

v2.0.0b31

03 Feb 07:36

Choose a tag to compare

fix: use lazy initialization for asyncio primitives

Creating asyncio primitives eagerly in __init__ using run_coroutine
could cause issues in CI environments where the EventLoopThread might
not be fully responsive during subprocess initialization.

Changed to lazy initialization with double-checked locking:
- Primitives are created on first access within the EventLoopThread
- A threading lock protects concurrent initialization
- The dispatch logic in aio_acquire/aio_release ensures code runs
  in the correct event loop, so primitives are always created there

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

v2.0.0b30

03 Feb 06:40

Choose a tag to compare

fix: respect umask when creating filelock lock files

The filelock library uses os.chmod() which ignores umask, causing lock
files to be created with 0o644 permissions regardless of umask settings.
This prevented group-writable permissions when umask 002 was set.

Added centralized wrapper functions (create_file_lock and
create_async_file_lock) that calculate the effective mode by applying
the current umask to a base mode of 0o666. This ensures lock files
respect umask settings, allowing group write permissions when umask
allows it (e.g., umask 002 results in 0o664).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

v2.0.0b29

28 Jan 09:23

Choose a tag to compare

fix(core): add name() method to EnumType class

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

v2.0.0b28

23 Jan 22:16

Choose a tag to compare

feat(remote): add protocol version checking for client-server compati…