2.0.3 - 2026-05-10
- 🐛 Add
PipelineML.__add__andPipelineML.__radd__to supportpipeline_ml_factoryalongside the new feature ability which enables to pass severalpipeline_namesargument in CLI introduced inkedro==1.2.0(#690)
2.0.2 - 2026-02-16
- 🐛 Support for
pipeline_namesargument in CLI added inkedro==1.2.0(#686)
2.0.1 - 2026-01-18
- 🐛 Enable
PipelineMLlogging with either custom modelnamefollowing MLflow v3 convention, or customartifact_pathfor back-compatibility with older MLflow versions. (#687)
2.0.0 - 2025-11-25
- ✨ Add support for
mlflow>=3.0.0(#657)
- 💥 📌 Drop support for
mlflow>=2.0.0,<3.0.0(#678) - 💥 Drop
run_idargument ofMlflowModelTrackingDataset. In mlflow 3, the model is no longer necessarily tied to a run. It is now possible to specifyload_args={"model_uri":"models/<name>}to load a specific model outside the current run. (#678) - 💥 Drop
artifact_pathargument ofMlflowModelTrackingDataset. In mlflow 3, this argument is renamednameand can be passed to the dataset withsave_args={"name":"my_model_name"}(#678)
1.0.2 - 2025-09-27
- 🐛 Treat "databricks-uc" as a special value for mlflow_registry_uri (#675)
1.0.1 - 2025-08-13
- 🐛 Fix
run_idlogging error while loadingMlflowModelRegistryDataset(#671)
1.0.0 - 2025-07-27
- ✨ Add support for
kedro>=1.0.0(#658)
- 💥 📌 Drop support for
kedro==0.19.X(#658)
0.14.5 - 2025-07-27
- 📝 Document how to make partitioned datasets log only outputs of the current run (#652)
- 🔇 Update thread-safe related logs to DEBUG level to reduce logging (#650)
- 🐛 Fix
KedroPipelineModel.load_contextloading from local files with uri filepath formlflow>=2.21,<3#656
0.14.4 - 2025-02-20
- ✨ Add the
tracking.disable_tracking.disable_autologgingconfiguration option inmlflow.ymlto disable autologging by default. This simplify the workflow for Databricks users who have autologging activated by default, which conflicts withkedro-mlflow([#610]). - ✨ Add
tracking.experiment.create_experiment_kwargs.artifact_locationandtracking.experiment.create_experiment_kwargs.tagsconfiguration options inmlflow.ymlto enable advanced configuration of mlflow experiment created at runtime bykedro-mlflow([#557]).
- 🐛 Fix type annotations introduced in #633 which are not compatible with
python==3.9.
0.14.3 - 2025-02-17
- 🐛 Reopen the mlflow run before each node to bypass mlflow thread safety and ensure all tracking is done within the same run_id (#623, #624)
0.14.2 - 2025-02-16
- 🐛 👷 Ensure
mlflow.ymlis package with the package distribution so thatkedro mlflow initcan find it ([#635]).
0.14.1 - 2025-02-12
- 📝 Change documentation theme to the pydata sphinx theme, and refactor sections to make them clearer (#621)
- 🐛 Fix a regression introduced by
0.13.4and enable again to load an artifact from a differentrun_id(#622).
0.14.0 - 2025-01-28
- 💥 📌 Pin
mlflow>=2.7.0to support predict parameters for custom models (see above feature)
0.13.4 - 2024-12-14
- 🐛 🚑 Ensure
MlflowArtifactDatasetlogs in the same run that parameters to when usingmlflow>=2.18in combination withThreadRunner(#613)
0.13.3 - 2024-10-29
- ✨ Implement missing
PipelineMLfiltering functionalities to letkedrodisplay resume hints and avoid breakingkedro-viz(#377, #601, Calychas) - ✨ Sanitize parameters name with unsupported characters to avoid
mlflowerrors when logging (#595, pascalwhoop) - 🔊 Add logs about the exact
run_idloaded within aMlflowRegistryDatasetbecause some URI are confusing (e.g.latest) and hard to debug (#552)
- 📌 ✨ Removed lower and upper bounds for
pythonversions of to be constantly in sync withkedroand make migrations faster (#603) - ➕ ➖ Removed
pytest-lazy-fixturein favor ofpytest-lazy-fixtureswhich has less reputation but is more up to date. The former has not been updated in two years and is not compatible with recent pytest. (#524, #604)
0.13.2 - 2024-10-15
- 🐛 🚑 Fix
MlflowArtifactDatasetloadandsavemethods to make them compatible with modern datasets without private_loadand_saveintroduced inkedro-datasets>=5.0.0(#598)
0.13.1 - 2024-09-24
- ✨ Add support for "modern" datasets (introduced in Kedro 0.19.7) that expose
loadandsavepublicly (#590, deepyaman)
- 🐛 Refactor
MlflowMetricsHistoryDatasetto avoid usingget_all_metricsinternally because this function cannot save metrics on a remote server (#582)
0.13.0 - 2024-09-01
- ✨ Add support for loading model with alias in
MlflowModelRegistryDataset(#553)
-
💥 📌 Officially drop support for
mlflow<1.29.0which was implicit since the introduction ofkm.random_nameresolver in #481 (#571) -
📝 🔊 Various improvements to documentation and logging (#549, #554, #567)
- 🐛 Implement
only_nodes_with_namespaceand__sub__methods inPipelineMLforkedro-viz>=9.2.0compatibility (#569)
0.12.2 - 2024-04-18
- 👷 📦 Add build distribution (instead of source only distribution) to PyPI release to make install easier and faster (#515)
- 📝 Document the ability to update configuration at runtime (#395)
- ✨ Project level CLI commands
kedro mlflow init,kedro mlflow uiandkedro mlflow modelifynow work even inside a subdirectory and not at the root of the kedro project to be consistent withkedro>0.19.4(#531)
- 🐛 Proxy import of private kedro functions
_is_projectand_find_kedro_projectto be resilient to changes (#531)
0.12.1 - 2024-02-09
- ✨ Add a
km.random_nameresolver which enables to use auto-generated names for kedro runs instead of pipeline name in themlflow.ymlconfiguration file (#426)
- 🐛 Add support for dataset factories in
KedroPipelineModel(#516, sebastiandro)
0.12.0 - 2023-12-19
- ✨ Add support for python 3.11 (#450, rxm7706)
- ✨ ⬆️ Add support for pydantic v2 (#476)
- ✨ ⬆️ Add support for
kedro==0.19.X(#)
- 💥 :⬆️: Drop support for
kedro==0.18.Xseries. - 💥 ✨ Change default
copy_modeto"assign"inKedroPipelineModelbecause this is the most efficient setup (and usually the desired one) when serving a KedroPipelineas a Mlflow model. This is different from Kedro's default which is to deepcopy the dataset (#463). - 💥 ♻️
MlflowArtifactDataset.__init__methoddata_setargument is renameddatasetto match new Kedro conventions (#391). - 💥 ♻️ Rename the following
DataSetswith theDatasetsuffix (without capitalizedS) to match new kedro conventions fromkedro>=0.19and onwards (#439, ShubhamZoro):MlflowArtifactDataSet->MlflowArtifactDatasetMlflowAbstractModelDataSet->MlflowAbstractModelDatasetMlflowModelRegistryDataSet->MlflowModelRegistryDatasetMlflowMetricDataSet->MlflowMetricDatasetMlflowMetricHistoryDataSet->MlflowMetricHistoryDataset
- 💥 ♻️ Rename the following
DataSetsto make their use more explicit, and use theDatasetsuffix:
0.11.10 - 2023-10-03
- 🐛 Avoid error when using
kedro==0.18.1withTemplatedConfigLoaderand nomlflow.ymlconfiguration file (#452, sami-sweng)
0.11.9 - 2023-07-23
- 🐛 Make
kedro-mlflowhook log parameters when the project is configured with theOmegaConfigLoaderinstead of raising an error (#430)
- ➖ Drop support for
python=3.7which has reached end-of-life status to prepare 0.19 (#391)
0.11.8 - 2023-02-13
-
✨ Added support for Mlflow 2.0 (#390)
-
✨ The
modelifycommand now accepts a--run-nameto specifiy the run name where the model is logged (#408)
-
📝 Update incorrect documentation about model registry with local relative filepath (#400)
-
🐛 The
modelifycommand now creates a conda environment based on your environment python and kedro versions instead of hardcodedpython=3.7andkedro=0.16.5(#405) -
🐛 The
modelifycommand now uses correctly the--pip-requirementsargument instead of raising an error (#405) -
🐛 The
modelifycommand now usesmodelifyas a default run name (#408)
0.11.7 - 2023-01-28
- ✨ Added a
MlflowModelRegistryDataSetinkedro_mlflow.io.modelsto enable fetching a mlflow model from the mlflow model registry by its name(#260)
- 🐛 Use
__default__as a run name if the pipeline is not specified in thekedro runcommmand to avoid empty names (#392)
0.11.6 - 2023-01-09
- ✨
kedro-mlflownow uses the default configuration (ignoringmlflow.yml) if an active run already exists in the process where the pipeline is started, and uses this active run for logging. This enables usingkedro-mlflowwith an orchestrator which starts mlflow itself before running kedro (e.g. airflow, themlflow runcommand, AzureML...) (#358)
0.11.5 - 2022-12-12
- ✨ Added an extra
server.mlflow_registry_urikey inmlflow.ymlto set the mlflow registry uri. (#260) - ✨ Add support for authorization with expiring tokens by adding an extra
server.request_header_providerentry inmlflow.yml(#357)
- 🐛
MlflowArtifactDataSet.load()now correctly loads the artifact when bothartifact_pathandrun_idarguments are specified. Previous fix in0.11.4did not work because when the file already exist locally, mlflow did not download it again so tests were incorrectly passing (#362)
- 🔥 💥 Remove
reload_kedro_mlflowline magic for notebook because kedro will deprecate the entrypoint in 0.18.3. It is still possible to access the mlflow client associated to the configuration in a notebook withcontext.mlflow.server._mlflow_client(#349). This is not considered as a breaking change since apparently no one uses it according to a discussion with kedro's team.
0.11.4 - 2022-10-04
- 🐛
MlflowArtifactDataSet.load()now correctly loads the artifact when bothartifact_pathandrun_idarguments are specified instead of raising an error (#362)
0.11.3 - 2022-09-06
- 🔊
kedro-mlflowhas its default logging level set toINFO. This was the default forkedro<=0.18.1. Forkedro>=0.18.2, you can change the level inlogging.yml(#348)
- 🐛
kedro-mlflownow uses thepackage_nameas experiment name by default if it is not specified. This is done to ensure consistency with the behaviour with nomlflow.ymlfile (#328) - 📝 Update broken links to the most recent kedro and mlflow documentation
0.11.2 - 2022-08-28
- ✨
kedro-mlflownow runs even without amlflow.ymlfile in yourconf/<env>folder. As a consequence, runningkedro mlflow initis now optional and should be only used for advanced configuration. (#328)
0.11.1 - 2022-07-06
- 🐛 Make
pipeline_ml_factorynow correctly useskpm_kwargsandlog_model_kwargsinstead of always using the default values. (#329) - 🐛
kedro mlflow initcommand no longer raises both a success and an error message when the command is failing. (#336)
- ♻️ Refactor
KedroMlflowConfigwhich no longer needs theproject_pathat instantiation. The uri validaiton is done atsetup()time to be able to use the configuration not at a root of a kedro project. This is not considered as a breaking change, because the recommended way to retrieve the config is to usesession.load_context().mlflowwhich automatically callssetup()and hence behaviour inside a kedro project is unmodified. (#314)
0.11.0 - 2022-06-18
- ✨ 💥 The
MLFLOW_TRACKING_URIenvironment variable is now used as the default tracking uri if theserver.mlflow_tracking_uriconfig key isNone. Themlflow.ymlis changed toserver: mlflow_tracking_uri: nullto enforce this new behaviour as the default value. If the environment variable does not exists, it will behave like before. (#321).
- ♻️ 💥 Unify the
MlflowPipelineHookandMlflowNodeHookin a singleMlflowHookto ensure consistency in registration order (#315) - ♻️ 🧑💻 💥 The
get_mlflow_configpublic function is removed. If you need to access the mlflow configuration, you can do it automatically in the contextmlflowattribute, e.g.session.load_context().mlflow(#310)
- ⚰️ 💥 Remove unused
stores_environment_variablesconfiguration option. This key must be removed frommlflow.yml. - ⬆️ 🐛 Upgrade requirements to make support for
kedro>=0.18.1, kedro<0.19.0explicit. This is the only valid compatibility range sincekedro-mlflow==0.10.0, but requirements had not been updated yet (#309).
0.10.0 - 2022-05-15
- ⬆️ Add support for
kedro==0.18.1which was broken due to kedro's removal of_active_sessionprivate global variable (#309).
- 📝 Fix typo in documentation (#302)
- ♻️ 💥 Refactor the
get_mlflow_configfunction which now takescontextinstead ofsessionas input (#309)
- 💥 ⬇️ Drop support for
kedro=0.18.0.kedro-mlflownow supports onlykedro>=0.18.1, kedro<0.19.0(#309).
0.9.0 - 2022-04-01
- ✨ Add support for
kedro=0.18.X(#290) - ✨
kedro-mlflowis now available onconda-forgeand can be installed withconda install kedro-mlflow. This is retroactive tokedro-mlflow==0.8.1(#118)
- 💥 🗑️ Drop support for
kedro=0.17.X(#290)
0.8.1 - 2022-02-13
- ✨ Open the UI in the default browser when the
mlflow_tracking_uriinmlflow.ymlis a http address instead of launching the ui server. (#275)
- 🐛 Force the input dataset in
KedroPipelineModelto be aMemoryDatasetto remove unnecessary dependency to the underlying KedroAbstractDatasetused during training (#273) - 🐛 Make
MlflowArtifactDatasetcorrectly log in mlflow Kedro DataSets without a_pathattribute likekedro.io.PartitionedDataset(#258). - 🐛 Automatically persist pipeline parameters when calling the
kedro mlflow modelifycommand for consistency with howPipelineMLobjects are handled and for ease of use (#282).
0.8.0 - 2022-01-05
- ✨ Add a
kedro mlflow modelifycommand to export a pipeline as a mlflow model (#261) - 📝 Format code blocks in documentation with
blacken-docs - 👷 Enforce the use of
blackandisortin the CI to enforce style guidelines for developers
- ✨ 💥 The
pipeline_ml_factoryaccepts 2 new argumentslog_model_kwargs(which will be passed as is tomlflow.pyfunc.log_model) andkpm_kwargs(which will be passed as is toKedroPipelineModel). This ensures perfect consistency with mlflow API and offers new possibility like saving the project source code alongside the model (#67). Note thatmodel_signature,conda_envandmodel_namearguments are removed, and replace respectively bylog_model_kwargs["signature"],log_model_kwargs["conda_env"]andlog_model_kwargs["artifact_path"]. - ✨ 💥 The
KedroPipelineModelcustom mlflow model now accepts any kedroPipelineas input (provided they have a single DataFrame input and a single output because this is an mlflow limitation) instead of onlyPipelineMLobjects. This simplifies the API for user who want to customise the model logging (#171).KedroPipelineModel.__init__argumentpipeline_mlis renamedpipelineto reflect this change. - 🗑️
kedro_mlflow.io.metrics.MlflowMetricsDataSetis no longer deprecated because there is no alternative for now to log many metrics at the same time. - 💥 Refactor
mlflow.ymlto match mlflow's API (#77). To migrate projects withkedro<0.8.0, please update theirmlflow.ymlwithkedro mlflow init --forcecommand.
- 🐛
KedroMlflowConfig.setup()methods now sets the experiment globally to ensure all runs are launched under the experiment specified in the configuration even in interactive mode (#256).
- 🔥 💥
KedroMlflowConfigandget_mlflow_configwere deprecated since0.7.3and are now removed fromkedro_mlflow.framework.context. Direct import must now usekedro_mlflow.config.
0.7.6 - 2021-10-08
- 🐛 The reserved keyword "databricks" is no longer converted to a local filepath before setting the
MLFLOW_TRACKING_URIto enable integration with databricks managed platform. (#248)
0.7.5 - 2021-09-21
- ✨ Add support for notebook use. When a notebook is opened via a kedro command (e.g.
kedro jupyter notebook), you can call the%reload_kedro_mlflowline magic to setup mlflow configuration automatically. Amlflow_clientto the database is also created available as a global variable (#124). - 📝 Add automatic API documentation through docstrings for better consistency between code and docs (#110). All docstrings are not updated yet and it will be a long term work.
-
♻️
KedroMlflowConfigwas refactored with pydantic for improved type checking when loading configuration, overall robustness and autocompletion. Its keys have changed, but it is not considered as a user facing changes since the public functionget_mlflow_config()andKedroMlflowConfig().setup()are not modified. -
🗑️ The
kedro.framework.contextfolder is moved tokedro.configfor consistency with the Kedro repo structure:get_mlflow_configimport must change fromfrom kedro_mlflow.framework.context import get_mlflow_configtofrom kedro_mlflow.config import get_mlflow_config.
0.7.4 - 2021-08-30
- ✨ Create an
MlflowMetricDataSetto simplify the existing metric API. It enables logging a single float as a metric, eventually automatically increasing the "step" if the metric is going to be updated during time (#73) - ✨ Create an
MlflowMetricHistoryDataSetto simplify the existing metric API. It enables logging the evolution of a given metric during training. (#73)
- 🐛 Dictionnary parameters with integer keys are now properly logged in mlflow when
flatten_dict_paramsis set toTruein themlflow.ymlinstead of raising aTypeError(#224) - 🐛 The user defined
sepparameter of themlflow.yml(defined innodesection) is now used even if the parameters dictionnary has a depth>=2 (#230)
- ♻️ Move
flatten_dictfunction tohooks.utilsfolder and rename it_flatten_dictto make more explicit that it is not a user facing function which should not be used directly and comes with no guarantee. This is not considered as a breaking change since it is an undocumented function. - 🗑️ Deprecate
MlflowMetricsDataSetin favor of the 2 new datasetsMlflowMetricDataSetandMlflowMetricHistoryDataSetnewly added. It will be removed inkedro-mlflow==0.8.0.
0.7.3 - 2021-08-16
- ✨ Update the
MlflowArtifactDataSet.load()method to download the data from therun_idif it is specified instead of using the local filepath. This can be used for instance to continue training from a pretrained model or to retrieve the best model from an hyperparameter search (#95)
0.7.2 - 2021-05-02
- 🐛 Remove global CLI command
new(which was not implemented yet) to make project CLI commands available. It is not possible to have 2 CLI groups (one at global level , one at project level) because of a bug inkedro==0.17.3(#193)
0.7.1 - 2021-04-09
-
✨ It is now possible to deactivate tracking (for parameters and datasets) by specifying a key
disabled_tracking: pipelines: [<pipeline-name>]in themlflow.ymlconfiguration file. (#92) -
✨ The
kedro mlflow uicommandhostandportkeys can be overwritten at runtime (#187)
- 🐛 The
kedro mlflow uicommand now reads properly theui:hostandui:portkeys from themlflow.ymlwhich were incorrectly ignored (#187)
0.7.0 - 2021-03-17
- ⬆️
kedro-mlflownow supportskedro>=0.17.1(#144).
- 📌 Drop support for
kedro==0.17.0, since the kedro core team made a breaking change in0.17.1. All future plugin updates will be only compatible withkedro>=0.17.1.
0.6.0 - 2021-03-14
- ⬆️
kedro-mlflownow supportskedro==0.17.0(#144). Since the kedro core team made a breaking change in the patch release0.17.1, it is not supported yet. They also recommend to downgrade to 0.17.0 for stability. - 📝 Updated documentation
- 🐛 The support of
kedro==0.17.0automatically makes the CLI commands available when the configuration is declared in apyproject.tomlinstead of a.kedro.yml, which was not the case in previous version despite we claim it was (#157).
- 📌 Drop support for
kedro==0.16.x. All future plugin updates will be only compatible withkedro>=0.17.0.
0.5.0 - 2021-02-21
- ✨ A new
long_parameters_strategykey is added in themlflow.yml(under in the hook/node section). You can specify different strategies (fail,truncateortag) to handle parameters over 250 characters which cause crashes for some mlflow backend. (#69) - ✨ Add an
envparameter tokedro mlflow initcommand to specify under whichconf/subfolder themlflow.ymlshould be created. (#159) - ✨ The input parameters of the
inferencepipeline of aPipelineMLobject are now automatically pickle-ised and converted as artifacts. (#158) - 📝 Detailed documentation on how to use
pipeline_ml_factoryfunction, and more generally on how to usekedro-mlflowas mlops framework. This comes from an example repokedro-mlflow-tutorial. (#16)
- 📌 Pin the kedro version to force it to be strictly inferior to
0.17which is not compatible with currentkedro-mlflowversion (#143) - ✨ It is no longer assumed for the project to run that the
mlflow.ymlis located underconf/base. The project will run as soon as the configuration file is discovered by the registered ConfigLoader (#159)
- ⚡ 💥 The
KedroPipelineModel.load_context()method now loads all theDataSetsin memory in theDataCatalog. It is also now possible to specify therunnerto execute the model as well as thecopy_modewhen executing the inference pipeline (instead of deepcopying the datasets between each nodes which is kedro's default). This makes the API serving withmlflow servecommand considerably faster (~20 times faster) for models which need compiling (e.g. keras, tensorflow ...) (#133) - ✨ The CLI projects commands are now always accessible even if you have not called
kedro mlflow inityet to create amlflow.ymlconfiguration file (#159)
0.4.1 - 2020-12-03
- ✨ It is now possible to supply credentials for the mlflow tracking server within
mlflow.ymlandcredentials.yml. They will be exported as environment variables during the run. (#31)
- 🐛 Fix
TypeError: unsupported operand type(s) for /: 'str' and 'str'when usingMlflowArtifactDataSetwithMlflowModelLocalFileSystemDataset(#116) - 📝 Fix various docs typo (#6)
- 🐛 When the underlying Kedro pipeline fails, the associated mlflow run is now marked as 'FAILED' instead of 'FINISHED'. It is rendered with a red cross instead of the green tick in the mlflow user interface (#121).
- 🐛 Fix a bug which made
KedroPipelineModelimpossible to load if one of its artifact was aMlflowModel<Saver/Logger>DataSet. These datasets were not deepcopiable because of one their attributes was a module (#122).
- 📝 Refactor doc structure for readability (#6)
- ⚡ 💥 The
KedroMlflowConfigno longer creates the mlflow experiment and access to the mlflow tracking server when it is instantiated. A newsetup()method sets up the mlflow configuration (tracking uri, credentials and experiment management) but must now be called explicitly. (#97)
0.4.0 - 2020-11-03
- ⬆️
kedro-mlflownow supportskedro>=0.16.5(#62) - ✨
kedro-mlflownow supports configuring the project inpyproject.toml(Only for kedro>=0.16.5) (#96) - ✨
pipeline_ml_factorynow accepts thatinferencepipelineinputsmay be intrainingpipelineinputs(#71) - ✨
pipeline_ml_factorynow infer automatically the schema of the input dataset to validate data automatically at inference time. The output schema can be declared manually inmodel_signatureargument (#70) - ✨ Add two DataSets for model logging and saving:
MlflowModelTrackingDatasetandMlflowModelLocalFileSystemDataset(#12) - ✨
MlflowPipelineHookandMlflowNodeHookare now auto-registered if you usekedro>=0.16.4(#29)
- ⚡
get_mlflow_confignow uses the KedroProjectContextConfigLoaderto get configs (#66). This indirectly solves the following issues:get_mlflow_confignow works in interactive mode ifload_contextis called with a path different from the working directory (#30)kedro_mlflownow works fine withkedro jupyter notebookindependently of the working directory (#64)- You can use global variables in
mlflow.ymlwhich is now properly parsed if you use aTemplatedConfigLoader(#72)
- 🐛
MlflowMetricsHistoryDatasetnow saves in the specifiedrun_idinstead of the current one when the prefix is not specified (#62) - 📝 Other bug fixes and documentation improvements (#6, #99)
- ✨ 💥 The
KedroPipelineModelnow unpacks the result of theinferencepipeline and no longer returns a dictionary with the name in theDataCatalogbut only the predicted value (#93) - ♻️ 💥 The
PipelineML.extract_pipeline_catalogis renamedPipelineML._extract_pipeline_catalogto indicate it is a private method and is not intended to be used directly by end users who should rely onPipelineML.extract_pipeline_artifacts(#100) - 🏗️ 💥 The
MlflowArtifactDataSetis moved fromkedro_mlflow.iofolder tokedro_mlflow.io.artifacts. (#109) - 🏗️ 💥 The
MlflowMetricsDataSetis moved fromkedro_mlflow.iofolder tokedro_mlflow.io.metrics. (#109)
- ♻️ 💥
kedro mlflow initcommand is no longer declaring hooks inrun.py. You must now register your hooks manually in therun.pyif you usekedro>=0.16.0, <0.16.3(#62). - 🔥 Remove
pipeline_mlfunction which was deprecated in 0.3.0. It is now replaced bypipeline_ml_factory(#105) - 🔥 Remove
MlflowDataSetdataset which was deprecated in 0.3.0. It is now replaced byMlflowArtifactDataSet(#105)
0.3.0 - 2020-10-11
- ✨ Add dataset
MlflowMetricsDataSetfor metrics logging (#9) and update documentation for metrics. - 👷 Add CI workflow
create-releaseto ensure release consistency and up-to-date CHANGELOG. (#57, #68) - 📝 Add templates for issues and pull requests (#57, #68)
- 🐛 Versioned datasets artifacts logging are handled correctly (#41)
- 🐛 MlflowDataSet handles correctly datasets which are inherited from AbstractDataset (#45)
- ⚡ Change the test in
_generate_kedro_commandto accept both emptyIterables(default in CLI mode) andNonevalues (default in interactive mode) (#50) - ⚡ Force to close all mlflow runs when a pipeline fails. It prevents further execution of the pipeline to be logged within the same mlflow run_id as the failing pipeline. (#10)
- 📝 Fix various documentation typos (#34, #35, #36 and more)
- 📝 Update README (add badges for readibility, add a "main contributors" section to give credit, fix typo in install command, link to milestones for more up-to-date priorities) (#57, #68)
- 👷 Fix bug in CI deployment workflow and rename it to
publish(#57, #68) - 🐛 Fix a bug in
MlflowDataSetwhich sometimes failed to log on remote storage (S3, Azure Blob storage) with underlyinglog_artifactswhen the kedro'sAbstractDataset._filepathwas apathlib.PurePosixPathobject instead of a string (#74). - 👷 Add a CI for release candidate creation and use actions to enforce semantic versioning and Keep a Changelog format.
- ♻️ Remove
conda_envandmodel_namearguments fromMlflowPipelineHookand add them toPipelineMLandpipeline_ml. This is necessary for incoming hook auto-discovery in future release and it enables having multiplePipelineMLin the same project (#58). This mechanically fixes #54 by makingconda_envpath absolute for airflow support. - ♻️ 💥
flatten_dict_params,recursiveandseparguments of theMlflowNodeHookare moved to themlflow.ymlconfig file to prepare plugin auto registration. This also modifies therun.pytemplate (to remove the args) and themlflow.ymlkeys to add ahooksentry. (#59) - 👷 Rename CI workflow to
test(#57, #68) - ⚡ The
input_nameattributes ofPipelineMLis now a python property and makes a check at setting time to prevent setting an invalid value. The check ensures thatinput_nameis a valid input of theinferencepipeline.
- 🗑️ Deprecate
MlflowDataSetwhich is renamed asMlflowArtifactDataSetfor consistency with the other datasets. It will raise aDeprecationWarningin this realease, and will be totally supressed in next minor release. Please update yourcatalog.ymlentries accordingly as soon as possible. (#63) - 🗑️ Deprecate
pipeline_mlwhich is renamed aspipeline_ml_factoryto avoid confusion between aPipelineMLinstance and the helper function to createPipelineMlinstances from KedroPipelines.
0.2.1 - 2018-08-06
📝 Many documentation improvements:
- Add a Code of conduct
- Add a Contributing guide
- Refactor README.md to separate clearly from documentation
- Fix broken links
- Fix bad markdown rendering
- Split old README.md information in dedicated sections
- 🐛 Enable
pipeline_mlto accept artifacts (encoder, binarizer...) to be "intermediary" outputs of the pipeline and not only "terminal" outputs (i.e. node outputs which are not re-used as another node input). This closes a bug discovered in a more general discussion in #16. - ♻️ Only non-empty CLI arguments and options are logged as tags in MLflow (#32)
0.2.0 - 2020-07-18
- ✅ Bump the codebase test coverage to 100% to improve stability
- 🚨 Improve rendering of template with a trailing newline to make them
black-valid - ✨ Add a
PipelineML.extract_pipeline_artifactsmethods to make artifacts retrieving easier for a given pipeline - 🎉 Use an official kedro release (
>0.16.0, <0.17.0) instead of the development branch
- 🏗️ 💥
hooks,contextandclifolders are moved toframeworkto fit kedro new folder architecture - ♻️ 💥 Rename
get_mlflow_confinget_mlflow_configfor consistency (withConfigLoader,KedroMlflowConfig...) - ♻️ 💥 Rename keys of
KedroMlflowConfig.to_dict()to remove the "_opts" suffix for consistency with theKedroMlflowConfig.from_dictmethod
- 🙈 Add
debugfolder to gitignore for to avoid involuntary data leakage - 🐛 Remove the inadequate warning "You have not initialized your project yet" when calling
kedro mlflow init - 🐛 Remove useless check to see if the commands are called inside a Kedro project since the commands are dynamically displayed based on whether the call is made inside a kedro project or not
- 🐛 Fix typos in error messages
- 🐛 Fix hardcoded path to the
run.pytemplate - 🐛 Make not implemented function raise a
NotImplementErrorinstead of failing silently - 🐛 Fix wrong parsing when the
mlflow_tracking_urikey of themlflow.ymlconfiguration file was an absolute local path - ⚰️ Remove unused
KedroMlflowContextClass - 🐛 Force the
MlflowPipelineHook.before_pipeline_runmethod to set themlflow_tracking_urito the one from the configuration to enforce configuration file to be prevalent on environment variables or current active tracking uri in interactive mode - 🐛 Fix wrong environment parsing case when passing a conda environment as a python dictionary in
MlflowPipelineHook - 🐛 Fix wrong artifact logging of
MlflowDataSetwhen a run was already active and the save method was called in an interactive python session. - ♻️ 💥 Force the user to declare an
input_namefor aPipelineMlobject to fix difficult inference of what is the pipeline input - ♻️ Update
run.pytemplate to fit kedro new one. - ♻️ Force
_generate_kedro_commandsto separate an option and its arguments with a "=" sign for readibility
0.1.0 - 2020-04-18
- ✨ Add cli
kedro mlflow initto udpdate the template andkedro mlflow uito openmlflowuser interface with your project configuration - ✨ Add hooks
MlflowNodeHookandMlflowPipelineHookfor parameters autologging and model autologging - ✨ Add
MlflowDataSetfor artifacts autologging - ✨ Add
PipelineMlclass and itspipeline_mlfactory for pipeline packaging and service