Changelog

2.0

2.0.0

no release date

general

client

  • [client] [breaking]

    Rename library:

    • mlflow-client -> mlflow-rest-client

    • MLflowApiClient -> MLflowRESTClient

    References: #DSX:545, #DSX:632

  • [client] [feature]

    Add Bearer token auth

    References: #DSX:442

dependency

  • [dependency] [breaking]

    Use pydantic to parse responses

    References: #DSX:384

docs

  • [docs] [feature]

    Move documentation to readthedocs.org

    References: #DSX:421

ci

  • [ci] [feature]

    Move from Gitlab CI to Github Actions

    References: #1, #DSX:412

dev

  • [dev] [feature]

    Upgrade source code to Python 3.7+

    References: #DSX:599

  • [dev] [feature]

    Check type hints with mypy

    References: #DSX:549

1.1

1.1.7

Released: 26.05.2021 17:47

client

tests

  • [tests] [bug]

    Do not use relative paths to run tests

    References: #DSX:166

dev

  • [dev] [feature]

    Build and push dev versions for feature and bug branches too

    References: #DSX:358

1.1.6

Released: 03.04.2021 14:21

client

  • [client] [feature]

    Disable SSL ignore warnings

    References: #DSX:166

  • [client] [feature]

    Create one session for all requests

    References: #DSX:166

ci

  • [ci] [feature]

    Use Jenkins declarative pipeline

    References: #DSX:166

1.1.5

Released: 25.12.2020 15:55

general

  • [general] [feature]

    Test python 3.8 and 3.9 compatibility

    References: #DSX:34

docs

  • [docs] [feature]

    Add summary to documentation pages

    References: #DSX:130

ci

  • [ci] [feature]

    Pass project urls into setup.py

    References: #DSX:34

  • [ci] [feature]

    Improve Jenkinsfile

    References: #DSX:34

  • [ci] [feature]

    Move CI/CD from bdbuilder04 to adm-ci

    References: #DSX:111

  • [ci] [feature]

    Download base python images before build

    References: #DSX:128

  • [ci] [feature]

    Fix requirements caching in Docker image

    References: #DSX:130

dev

  • [dev] [feature]

    Add requirements-dev.txt as dev extras into setup.py

    References: #DSX:34

1.1.4

Released: 05.12.2020 13:06

general

  • [general] [bug]

    Include README.rst into PyPi package

    References: #DSX:80

ci

  • [ci] [feature]

    Allow to build and deploy versions from non-master branch

    References: #DSX:66

  • [ci] [feature]

    Remove old dev versions from Artifactory

    References: #DSX:72

  • [ci] [feature]

    Move documentation deployment step to separated Jenkins job

    References: #DSX:80

  • [ci] [feature]

    Pass real project version to SonarQube

    References: #DSX:34

  • [ci] [feature]

    Pass project links to SonarQube

    References: #DSX:34

  • [ci] [feature]

    Move CI/CD from bdbuilder04 to adm-ci

    References: #DSX:111

  • [ci] [feature]

    Format source code with Black

    References: #DSX:34

  • [ci] [feature]

    Check source code vulnerabilities with Bandit

    References: #DSX:34

  • [ci] [bug]

    Publish package and documentation to Artifactory in one build info

    References: #DSX:89

  • [ci] [bug]

    Remove redundant proxying from Jenkinsfile

    References: #DSX:34

  • [ci] [bug]

    Remove volumes after stopping test container

    References: #DSX:34

  • [ci] [bug]

    Fix PyLint report upload to SonarQube

    References: #DSX:34

  • [ci]

    Make test scripts a docker image entrypoints

    References: #DSX:89

dev

  • [dev] [feature]

    Add pre-commit hooks

    References: #DSX:34

1.1.3

Released: 17.10.2020 03:40

client

  • [client] [feature]

    Add list_model_all_versions and list_model_all_versions_iterator methods

    References: #DSX:25

ci

  • [ci]

    Improve Jenkinsfile

    References: #DSX:53

1.1.2

Released: 02.10.2020 19:06

model

  • [model]

    Fix error with accessing model list by stage

    References: #DSX:45

dependency

  • [dependency]

    Don’t hard code dependency versions

    References: #DSX:45

1.1.1

Released: 29.09.2020 18:08

docs

  • [docs]

    Improve documentation

    References: #DSX:46

1.1.0

Released: 29.09.2020 16:29

model

  • [model] [feature]

    Allow to get version by stage from Model object

    References: #DSX:46

run

  • [run] [feature]

    Allow to get param by key from RunData object

    References: #DSX:46

  • [run] [feature]

    Allow to get metric by key from RunData object

    References: #DSX:46

tag

  • [tag] [feature]

    Allow to get tag by name from any object

    References: #DSX:46

docs

  • [docs]

    Improve documentation

    References: #DSX:46

tests

  • [tests]

    Increase tests coverage

    References: #DSX:46

misc

  • [refactor]

    Refactor code

    References: #DSX:46

1.0

1.0.8

Released: 24.09.2020 16:42

general

docs

1.0.7

Released: 16.09.2020 12:14

general

docs

1.0.6

Released: 14.08.2020 12:12

ci

1.0.5

Released: 14.08.2020 12:12

general

ci

  • [ci]

    Development version is released on every push to dev branch

    References: #SCRR:111, r0aa457f9

1.0.4

Released: 07.08.2020 17:20

client

1.0.3

Released: 05.08.2020 18:01

client

  • [client] [bug]

    Fixed MLflowApiClient.get_or_create_model method

    References: #SCRR:111, re9d7759d

1.0.2

Released: 05.08.2020 18:01

client

  • [client] [bug]

    Fixed ignore_ssl_check flag handling in MLflowApiClient methods

    References: #SCRR:111, r3b7c1930

tests

1.0.1

Released: 31.07.2020 14:15

client

  • [client] [feature]

    Add MLflowApiClient.get_or_create_model method

    References: #SCRR:111, r22d95875

1.0.0

Released: 30.07.2020 19:01

general

client

  • [client] [feature]

    client.MLflowApiClient class methods were created:
    • get*
      • get_experiment_by_name

      • get_or_create_experiment

      • get_model

      • get_model_version

      • get_model_version_download_url

    • list*
      • list_experiment_runs

      • list_models

      • list_model_versions

    • search*
      • search_models

      • search_model_versions

    • create*
      • create_model

      • create_model_version

    • update*
      • rename_experiment

      • start_run

      • schedule_run

      • finish_run

      • fail_run

      • kill_run

      • log_run_batch

      • log_run_model

      • rename_model

      • set_model_description

      • set_model_version_description

      • transition_model_version_stage

      • test_model_version

      • promote_model_version

      • promote_model_version

    • tag*
      • set_experiment_tag

      • set_run_tag

      • delete_run_tag

      • set_model_tag

      • delete_model_tag

      • set_model_version_tag

      • delete_model_version_tag

    • delete*
      • delete_experiment

      • delete_run

      • delete_model

      • delete_model_version

    • restore*
      • restore_experiment

      • restore_run

    Renamed:
    • update_run -> set_run_status

    • log_parameter -> log_run_parameter

    • log_metric -> log_run_metric

    • get_metric_history -> get_run_metric_history

    • list_artifacts -> list_run_artifacts

    • get_artifact -> get_run_artifact

    • search2 -> search_runs

    Updated:
    • list_experiments

    • get_experiment

    • create_experiment

    • get_experiment_id

    • get_run

    • create_run

    Deleted:
    • get_or_create_experiment_id

    • search

    References: #SCRR:111, r81484376

  • [client] [feature]

    Added new MLflowApiClient methods:
    • list_experiment_runs_iterator

    • list_run_artifacts_iterator

    • search_runs_iterator

    • search_models_iterator

    • search_model_versions_iterator

    • archive_model_version

    References: #SCRR:111, ra01fe488

  • [client] [feature]

    Now it’s possible to pass stages to MLflowApiClient.list_model_versions as list of strings

    References: #SCRR:111, ra01fe488

  • [client] [bug]

    Fixed MLflowApiClient methods:
    • list_experiments

    • log_run_model

    • delete_run_tag

    • get_run_metric_history

    • list_run_artifacts

    • search_runs

    • set_model_description

    • list_models

    • search_models

    • get_model_version

    • set_model_version_description

    • set_model_version_tag

    • delete_model_version_tag

    • delete_model_version

    • search_model_versions

    • get_model_version_download_url

    • transition_model_version_stage

    References: #SCRR:111, ra01fe488

artifact

  • [artifact] [feature]

    artifact module was added with certain classes:
    • FileInfo

    References: #SCRR:111, r81484376

experiment

  • [experiment] [feature]

    experiment module was added with certain classes:
    • Experiment

    • ExperimentTag

    • ExperimentStage

    References: #SCRR:111, r81484376

model

  • [model] [feature]

    model module was added with certain classes:
    • Model

    • ModelVersion

    • ModelTag

    • ModelVersionTag

    • ModelVersionStage

    • ModelVersionState

    • ModelVersionStatus

    References: #SCRR:111, r81484376

  • [model] [feature]

    • model.ModelVersionState
      • Is comparable now with another ModelVersionState or tuple (=(status, message))

      • Presence of an item in a dict can be checked using in operator

    • model.ModelVersion
      • Is comparable now with another ModelVersion, list, dict or tuple (=(name, version))

      • Presence of an item in a dict can be checked using in operator

    • model.Model
      • Is comparable now with another Model, list, dict or str (=name)

      • Presence of an item in a dict can be checked using in operator

    References: #SCRR:111, ra01fe488

  • [model] [bug]

    Fixed parsing stage in model.ModelVersion constructor

    References: #SCRR:111, ra01fe488

page

  • [page] [feature]

    page module was added with certain classes:
    • Page

    References: #SCRR:111, r81484376

  • [page] [feature]

    • page.Page:
      • Class can be constructed from list

      • Presence of an item can be checked with in operator

      • Item can be appended using + operator

      • Item can be removed using del operator

      • Items count can be determined using len function

      • Is comparable now with another Page, list or dict

      • Is iterable now

    References: #SCRR:111, r432be0ef

run

  • [run] [feature]

    run module was added with certain classes:
    • Run

    • RunInfo

    • RunData

    • Param

    • Metric

    • RunTag

    • RunStage

    • RunStatus

    • RunViewType

    References: #SCRR:111, r81484376

  • [run] [feature]

    • run.RunInfo
      • experiment_id is not mandatory constructor argument anymore

      • Is comparable now with another Run, list, dict or str (=id)

      • Presence of an item in a dict can be checked using in operator

    • tag.Param
      • Is comparable now with another Param, list, dict or tuple (=(key, value))

      • Presence of an item in a dict can be checked using in operator

    • run.Metric
      • Is comparable now with another Metric, list, dict or tuple (=(key, value, timestamp) or (key, value))

      • Presence of an item in a dict can be checked using in operator

    • tag.RunTag
      • Is comparable now with another RunTag, list, dict or tuple (=(key, value))

      • Presence of an item in a dict can be checked using in operator

    • run.RunData
      • Is comparable now with another RunData, list or dict

      • Presence of an item in a dict can be checked using in operator

    • run.Run
      • Is comparable now with another Run, list or dict

      • Presence of an item in a dict can be checked using in operator

    References: #SCRR:111, r432be0ef

tag

  • [tag] [feature]

    tag module was added with certain classes:
    • Tag

    References: #SCRR:111, r81484376

  • [tag] [feature]

    • tag.Tag
      • Is comparable now with another RunTag, list, dict or tuple (=(key, value))

      • Presence of an item in a dict can be checked using in operator

    References: #SCRR:111, r432be0ef

  • [tag] [bug]

    Fixed MLflowApiClient methods tag handling:
    • list_experiments

    • get_run

    • create_model_version

    References: #SCRR:111, ra01fe488

misc