Skip to content

Releases: Substra/substra

0.36.0

12 Sep 13:02
a50bcf6
Compare
Choose a tag to compare

0.36.0 - 2022-09-12

Added

  • input multiplicity within the cli in debug mode
  • list_model to the SDK client

Removed

  • chore: remove the examples section, and references to them

Changed

  • BREAKING CHANGE: opener input identifier must be opener
  • BREAKING CHANGE: datasample input identifier must be datasamples
  • BREAKING CHANGE: chainkeys, opener and datasamples are forbidden identifier for inputs and outputs
    of kind artifact and performance
  • BREAKING CHANGE: pass the algo method to execute under the --method-name argument within the CLI.
    If the interface between substra and the backend is handled via substratools, there are no changes to apply
    within the the substra code but algo and metric Dockerfiles should expose a --method-name argument in
    the ENTRYPOINT (#266)
  • test tasks now have an higher rank than their parent train task
  • chore: remove close source for CHANGELOG, README and cyclic-example
  • chore: rename connect-tools to substra-tools.
  • BREAKING CHANGE: remove the shared local folder of the compute plan
  • feat: download function of the client return the path of downloaded file.

Feature

  • Local mode: add a check, a task output of type performance must have public permissions

Fixes

  • Filters: Fix the filters on status for compute plans and tasks
    This fix also introduces some changes: the value for the filters on status must now be a list (like for other filters, there is a OR condition between elements of the list) and its value must be
    substra.models.ComputePlanStatus.{name of the status}.value for compute plans and substra.models.Status.{name of the status}.value for tasks.
    Example:
# Return all the compute plans that are not finished
client.list_compute_plan(filters={'status':[substra.models.ComputePlanStatus.todo.value, substra.models.ComputePlanStatus.waiting.value, substra.models.ComputePlanStatus.doing.value]})
# Return all the composite traintuples with the status "doing"
client.list_composite_traintuple(filters={"status": [substra.models.Status.doing.value]})

Documentation

  • Add the filters documentation to the references

0.9.0

21 Apr 08:21
200f8bf
Compare
Choose a tag to compare

Changelog

Features

  • Export model and node info
  • Debug mode: in a multi node setup, create one local compute plan folder per node
  • Debug mode: move the chainkeys to the local-worker directory

Fixes

  • client.update_compute_plan: did not accept a substra.sdk.schemas.UpdateComputePlanSpec object as input
  • Patch the order of the y_pred and y_true in the objective, it was wrong when the user did not order the values in the opener get_X and get_y functions
  • Fix on the error parsing: when some errors were thrown, the error parsing threw another exception

0.8.0

03 Dec 16:02
a671b49
Compare
Choose a tag to compare

Although the API only slightly changes (compute_plan_id renamed into compute_plan_key, hash into checksum and dataset.keys into dataset.data_sample_keys), this new version of substra is designed to work with a new release of the backend that introduces these very important changes:

  • asset keys are not content hashes anymore but uuids,
  • the unicity of asset content is not enforced anymore (no more exist_ok=True, no more AlreadyExists exceptions)
  • data samples will now be read by the opener in the order they were specified in the tuple.

Changed

  • Switch from content hash to uuid for asset keys (#235)
  • Renamed attributes (#240)
  • Use substra-tools 0.7.0 in examples (#244)
  • Added support for multi-node in debug mode (#238 and #239)

Removed

  • Removed the run-local command that has been deprecated for a while now and replaced by the debug mode (#242 )

0.7.1

09 Oct 11:47
a476c0b
Compare
Choose a tag to compare

Fixes

  • Do not connect automatically to a Docker daemon when importing Substra (made the import fail inside a Docker container)
  • Debug mode - increase the size of /dev/shm and use the host IPC namespace (for the MONAI example)

0.7.0

30 Sep 08:42
3968a04
Compare
Choose a tag to compare

Features

  • Debug mode

  • Auto batching: when adding or updating a compute plan, the tuples are uploaded by batch to avoid server errors. This can be configured from SDK:

    client.add_compute_plan(data, auto_batching=True, batch_size=20)

    or the CLI:

    substra add compute_plan --batch-size 20 data.json
    substra add compute_plan --no-auto-batching data.json
  • New method to retry a call in case of server error, e.g. a timeout: retry_on_exception

  • Client initialisation: see the API changes

  • Output of the get methods: see the API changes

  • Output of the create methods: see the API changes

API - breaking changes

Client initialisation

  • Define the "profile" during the initialisation, whether by giving parameters or the path to a config file
  • Remove the version argument at initialisation
  • New debug mode argument at initialisation (False by default)

Previous API:

c = Client()
c.add_profile(profile_name, url, version, insecure)
c.login(username, password)

New API:

c = Client(url, token, retry_timeout, insecure, debug)
c.login(username, password)

or

c = Client.from_config_file(profile_name, config_path, tokens_path, token, retry_timeout, debug)
c.login(username, password)

The get methods return a Python object whose attribute are in snake_case

Instead of a dictionnary, the returned object is now a class instance, as described in the documentation and its attributes are in snake_case instead of camelCase.

Previous API:

traintuple = client.get_traintuple(traintuple_key)
in_models = traintuple['inModels']

New API:

traintuple = client.get_traintuple(traintuple_key)
in_models = traintuple.in_models

The create methods return a key

The creation methods now return the key of the created object, apart from the create_compute_plan
method that returns the whole object.

Previous API:

traintuple = client.create_traintuple(data)
traintuple_key = traintuple['key']

New API:

traintuple_key = client.create_traintuple(data)
traintuple = client.get_traintuple(traintuple_key)

pkhash has been replaced by key

The objects in Substra are now identified by their key instead of pkhash.

Fixes

0.7.0-alpha.1

20 Jul 12:06
9455a7e
Compare
Choose a tag to compare
0.7.0-alpha.1 Pre-release
Pre-release

Support new objects and methods in the local backend:

  • aggregate tuples
  • composite traintuples
  • create a compute plan directly with the add_compute_plan and update_compute_plan methods

This depends on the version 0.6.0 of susbtra-tools, the examples use the new 'n_samples' argument for fake data generation.

0.7.0-alpha

08 Jul 08:03
Compare
Choose a tag to compare
0.7.0-alpha Pre-release
Pre-release

API changes

Define the "profile" for the client at initialization. Initialise it by passing parameters or directly from a config file.

Previous API:

c = Client()
c.add_profile(profile_name, url, version, insecure)
c.login(username, password)

New API:

c = Client(url, token, retry_timeout, backend, version, insecure)
c.login(username, password)

or

c = Client.from_config_file(profile_name, config-path, user_path, token, retry_timeout, backend)
c.login(username, password)

Features

  • local debugging: run everything locally using the local backend in the client.
c = Client(..., backend='local')

0.6.0

08 Jul 08:02
Compare
Choose a tag to compare

API changes

The login method and command now need a username and password to work.

Previous API:

c = Client()
c.add_profile(profile_name, username, password, url, version, insecure)
c.login()

New API:

c = Client()
c.add_profile(profile_name, url, version, insecure)
c.login(username, password)

Features

  • Better error messages both in SDK and CLI
  • New metadata field for all assets
  • Remove dependency on keyring. This introduces a breaking API change: the login method and command now expect to have login and password as input.

Fixes

  • Fixed missing permissions in examples
  • Removed unnecessary logins in example scripts

0.5.0

14 May 09:13
005097f
Compare
Choose a tag to compare

Features

  • Internal changes to send JSON metadata with multipart upload to the server.

Fixes

  • Fix when retrying the creation of an asset containing file(s).

0.4.0

15 Apr 15:31
8062306
Compare
Choose a tag to compare

Features

  • Improve documentation
  • CLI: update run-local (train method does not return predictions)
  • CLI: change --yaml/--json option to --output yaml/json
  • CLI: add --log-level option
  • Various small improvements in sdk, cli and tests

Updating from 0.3.0 to 0.4.0 should not cause any compatibility issue.