Skip to content

feat: add update_experiment_definition_metadata to Model entity - #354

Open
abhilash-kumar-nair wants to merge 2 commits into
betafrom
feat/experiment-definition-metadata-update
Open

feat: add update_experiment_definition_metadata to Model entity#354
abhilash-kumar-nair wants to merge 2 commits into
betafrom
feat/experiment-definition-metadata-update

Conversation

@abhilash-kumar-nair

Copy link
Copy Markdown
Contributor

Binds PUT /api/projects/{id}/models/{path}/experiment-definitions/{id}/metadata, so a definition can be renamed or flagged as the model's default without fetching and re-sending the whole experiment.

The server renamed the metadata request field 'isDefault' to 'setAsDefault' on the create and update endpoints, so send that instead. The old name is silently ignored rather than rejected, which made the client store every definition as non-default. This requires a server carrying that change.

For the same reason 'is_default' on update_experiment_definition now defaults to None, meaning the stored flag is kept, instead of False, which reset it. Both endpoints replace the whole metadata, so whatever the caller leaves out is filled in from the stored definition.

Both wire formats are pinned by tests, as a dropped metadata field is accepted by the server rather than reported.

@abhilash-kumar-nair
abhilash-kumar-nair force-pushed the feat/experiment-definition-metadata-update branch from 4ec3e48 to f5eaeb6 Compare September 8, 2026 06:57
Binds PUT /api/projects/{id}/models/{path}/experiment-definitions/{id}/metadata,
so a definition can be renamed or flagged as the model's default without
fetching and re-sending the whole experiment.

The server renamed the metadata request field 'isDefault' to 'setAsDefault' on
the create and update endpoints, so send that instead. The old name is silently
ignored rather than rejected, which made the client store every definition as
non-default. This requires a server carrying that change.

For the same reason 'is_default' on update_experiment_definition now defaults to
None, meaning the stored flag is kept, instead of False, which reset it. Both
endpoints replace the whole metadata, so whatever the caller leaves out is
filled in from the stored definition.
@abhilash-kumar-nair
abhilash-kumar-nair force-pushed the feat/experiment-definition-metadata-update branch 2 times, most recently from f5eaeb6 to 976b4a3 Compare September 8, 2026 07:02
Debian 11 bullseye stopped receiving security updates, so the Release file for
bullseye-security is no longer regenerated and has now passed its Valid-Until:

    Suite: oldoldstable-security
    Date: Mon, 31 Aug 2026 21:13:04 UTC
    Valid-Until: Mon, 07 Sep 2026 21:13:04 UTC

apt-get update fails on that expiry, which breaks the first apt layer of the
build image and so every make target that goes through build-docker. This is
permanent rather than a stale mirror, so it will not clear on a retry.

python:3.9.6 was the last 3.9 image built on bullseye. Move to
python:3.9.25-bookworm, keeping Python 3.9 as the version floor declared in
pyproject.toml and pinning the exact patch as the previous base did.

The newer libenchant in bookworm resolves en_US through aspell rather than
hunspell, which is stricter, so 'pylint --enable spelling' started reporting 37
words it had previously let through. It turns out the check was near enough a
no-op before: hunspell accepted anything, including the typo it now caught in
Experiment.failed ("in experiment thar have failed"). Fix that typo and add the
technical words it flags to the spelling wordlist.

Verified in the rebuilt image: 'make lint' exits 0 and the full suite is green
at 308 passed.
@abhilash-kumar-nair
abhilash-kumar-nair force-pushed the feat/experiment-definition-metadata-update branch from 66b409e to 1641c27 Compare September 8, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant