Releases: kedro-org/kedro
Releases · kedro-org/kedro
1.3.1
Bug fixes and other changes
- Fixed
AttributeErrorwhen node functions have non-Pydantic/dataclass type hints onparams:inputs. The parameter validation framework now correctly skips types it cannot validate.
Documentation changes
- Added documentation for
Optional[Model]support and multi-type union limitations in parameter validation. - Improved Mermaid diagram visibility in dark mode.
Community contributions
1.3.0
Major features and improvements
- Added optional parameter validation that uses type hints of parameter inputs to auto-validate and instantiate Pydantic models/dataclasses with no impact on untyped parameters.
- Added
list_versions()method for versioned datasets to list available dataset versions. - Added
pipelines_to_findparameter tofind_pipelines(), allowing users to selectively run a subset of existing pipelines by modifying the pipeline registry. - The CLI
--checkoutflag can now be used on a new Kedro project from the default template, without a starter. - Added
SESSION_CLASSas a configurable project setting, allowing users to define a custom KedroSession subclass
Bug fixes and other changes
DataCatalog.load()andDataCatalog.save()now raise aDatasetErrorthat includes the dataset name for easier debugging.- Aligned the run data passed to
before_pipeline_run,after_pipeline_run, andon_pipeline_errorand the schema specified in the hooks specs. - Fixed a path traversal vulnerability in versioned dataset loading that could allow unauthorized file access via unsanitized version strings.
- Fixed remote code execution vulnerability in the logging configuration.
- Removed the
cachetoolsdependency and replaced it with a lightweight internal caching implementation. - Added a warning when a node returns a value but is defined with
outputs=None, clarifying that the return value is ignored. - Added
preserve_loggingflag toconfigure_project()to prevent runtime-added logging handlers from being overwritten whenconfigure_project()is called after custom handlers have been attached (e.g. in a long-running server process such as FastAPI). - Added util method
find_config_file()to handle different config file extensions (.yml, .yaml) - Added reusable suggestion functionality for mistyped pipeline names using
kedro run - Added a fix for
CatalogConfigResolversplitting sqlalchemy URL during pattern resolution.
Documentation changes
- Added parameter validation documentation covering Pydantic model and dataclass support for typed parameters.
Community contributions
1.2.0
Major features and improvements
- Added
@experimentaldecorator to mark unstable or early-stage public APIs. - Added support for running multiple pipelines in a single Kedro session run via the
--pipelinesCLI option andpipeline_namesargument inKedroSession.run()method. - Updated the
spaceflights-pysparkstarter to use the newSparkDatasetV2integration, enabling local, Databricks-native, and remote Spark execution workflows.
Experimental features
- Added experimental
llm_context_nodeandLLMContextNodefor assembling LLMs, prompts, and tools into a runtimeLLMContextwithin Kedro pipelines. - Added experimental
preview_fnargument toNodeclass to add support for user-injectable node preview functions. - Added new experimental
support-agent-langgraphstarter, which supports the above experimental features. This starter contains pipelines that leverage LangGraph for agentic workflows and Langfuse or Opik for prompt management and tracing.
Bug fixes and other changes
- Set
raise_errors=Trueinfind_pipelines()calls in the project template'spipeline_registry.pyto ensure pipeline discovery errors are raised during project runs. - Fixed packaged runs logging the current working directory name; they now log the installed package name (or project path) instead.
Documentation changes
- Added beginner-friendly notes on
uvxinstallation. - Updated Databricks deployment docs to cover
Spark ConnectandUnity Catalog– first workflows, and local-to-remote development.
Community contributions
Many thanks to the following Kedroids for contributing PRs to this release:
1.1.1
1.1.0
Major features and improvements
- Added the
ignore_hiddenparameter to theOmegaConfigLoader. - Dropped support for Python 3.9 (EOL Oct 2025). Minimum supported version is now 3.10.
Bug fixes and other changes
- Bumped
clickdependency to support versions 8.2.0 and above. - Fixed typos in docs and docstrings.
- Fixed duplicate execution of the
deindex-old-docs.jsscript on Kedro documentation pages, preventing double injection ofnoindexmeta tags after the MkDocs migration.
Documentation changes
- Added a note on programmatically creating lambdas when lazily saving a
PartionedDataset. - Added Dagster as a supported deployment platform and the
kedro-dagsterplugin to the list of community plugins. - Added new data-validation documentation covering how to use Pandera and Great Expectations with Kedro.
Community contributions
Many thanks to the following Kedroids for contributing PRs to this release:
0.19.15
1.0.0
Major features and improvements
Data Catalog
- The previously experimental
KedroDataCataloghas been renamed toDataCatalogand is now the default catalog implementation. - It retains the dict-like interface, supports lazy dataset initialisation, and delivers improved performance.
- While this change is seamless for users following standard Kedro workflows, it introduces a richer API for programmatic use:
- New pipeline-aware commands, available via both the CLI and interactive environments.
- Simplified handling of dataset factories.
- Centralised pattern resolution via the
CatalogConfigResolverproperty. - Ability to serialise the catalog to configuration and reconstruct it from it.
Read more in the Kedro documentation.
Namespaces
- Added support for running multiple namespaces within a single session with
--namespacesCLI option andnamespacesargument inKedroSession.run()method. - Improved namespace validation efficiency to prevent significant slowdowns when creating large pipelines.
- Added stricter validation to dataset names in the
Nodeclass, ensuring.characters are reserved to be used as part of a namespace. - Added a
prefix_datasets_with_namespaceargument to thePipelineclass which allows users to turn on or off the prefixing of the namespace to the node inputs, outputs, and parameters. - Changed pipeline filtering for namespace to return exact namespace matches instead of partial matches.
Other features and improvements
- Changed the default node name to be formed of the function name used in the node suffixed by a secure hash (SHA-256) based on the function, inputs, and outputs, ensuring uniqueness and improved readability.
- Added an option to select which multiprocessing start method is going to be used on
ParallelRunnervia theKEDRO_MP_CONTEXTenvironment variable. - Added
--only-missing-outputsCLI flag tokedro run. This flag skips nodes when all their persistent outputs exist. - Updated
kedro registry describeto return the node name property instead of creating its own name for the node. - Removed
pre-commit-hooksdependency for new project creation.
Breaking changes to the API
CLI
kedro catalog createcommand has been removed.kedro catalog list,kedro catalog rank, andkedro catalog resolvecommands have been replaced withkedro catalog describe-datasets,kedro catalog list-patternsandkedro catalog resolve-patternscommands, respectively.- The
kedro runoption--namespacehas been removed and replaced with--namespaces. - The
kedro micropkgCLI command has been removed as part of the micro-packaging feature deprecation.
API
- Private methods
_is_projectand_find_kedro_projectare changed tois_kedro_projectandfind_kedro_project. - Renamed instances of
extra_paramsand_extra_paramstoruntime_params. - Removed the
modular_pipelinemodule and moved functionality to thepipelinemodule instead. - Renamed
ModularPipelineErrortoPipelineError. Pipeline.grouped_nodes_by_namespace()was replaced withgroup_nodes_by(group_by), which supports multiple strategies and returns a list ofGroupedNodes, improving type safety and consistency for deployment plugin integrations.- Renamed
session_idparameter torun_idin all runner methods and hooks to improve API clarity and prepare for future multi-run session support. - Removed the following
DataCatalogmethods:_get_dataset(),add_all(),add_feed_dict(),list(), andshallow_copy(). - Changed the output of
runner.run()andsession.run()— it now always returns all pipeline outputs, regardless of catalog configuration. - Removed the
AbstractRunner.run_only_missing()method, an older and underused API for partial runs. Please use--only-missing-outputsCLI instead.
Documentation changes
- Revamped the look and feel of the Kedro documentation, including a new theme and improved navigation with
mkdocsas the documentation engine. - Updated the
DataCatalogdocumentation with improved structure and detailed description of new features. Read the DataCatalog documentation here.
Community contributions
Many thanks to the following Kedroids for contributing PRs to this release:
Migration guide from Kedro 0.19.* to 1.*
See the migration guide for 1.0.0 in the Kedro documentation.
1.0.0rc3
Major features and improvements
Changed DataCatalog.__getitem__ to raise DatasetNotFoundError for missing datasets, aligning with expected dictionary behavior.
Bug fixes and other changes
Breaking changes to the API
Upcoming deprecations for Kedro 1.0.0
Documentation changes
Community contributions
1.0.0rc2
Major features and improvements
- Added
--only-missing-outputsCLI flag tokedro run. This flag skips nodes when all their persistent outputs exist. - Removed the
AbstractRunner.run_only_missing()method, an older and underused API for partial runs. Please use--only-missing-outputsCLI instead.
Bug fixes and other changes
- Improved namespace validation efficiency to prevent significant slowdowns when creating large pipelines
Breaking changes to the API
Upcoming deprecations for Kedro 1.0.0
Documentation changes
Community contributions
1.0.0rc1
Major features and improvements
- Added stricter validation to dataset names in the
Nodeclass, ensuring.characters are reserved to be used as part of a namespace. - Added a
prefix_datasets_with_namespaceargument to thePipelineclass which allows users to turn on or off the prefixing of the namespace to the node inputs, outputs, and parameters. - Changed the default node name to be formed of the function name used in the node suffixed by a secure hash (SHA-256) based on the function, inputs, and outputs, ensuring uniqueness and improved readability.
- Added an option to select which multiprocessing start method is going to be used on
ParallelRunnervia theKEDRO_MP_CONTEXTenvironment variable.
Bug fixes and other changes
- Changed pipeline filtering for namespace to return exact namespace matches instead of partial matches.
- Added support for running multiple namespaces within a single session.
- Updated
kedro registry describeto return the node name property instead of creating its own name for the node.
Documentation changes
- Updated the
DataCatalogdocumentation with improved structure and detailed description of new features.
Community contributions
Breaking changes to the API
- Private methods
_is_projectand_find_kedro_projectare changed tois_kedro_projectandfind_kedro_project. - Renamed instances of
extra_paramsand_extra_paramstoruntime_params. - Removed the
modular_pipelinemodule and moved functionality to thepipelinemodule instead. - Renamed
ModularPipelineErrortoPipelineError. Pipeline.grouped_nodes_by_namespace()was replaced withgroup_nodes_by(group_by), which supports multiple strategies and returns a list ofGroupedNodes, improving type safety and consistency for deployment plugin integrations.- The micro-packaging feature and the corresponding
micropkgCLI command have been removed. - Renamed
session_idparameter torun_idin all runner methods and hooks to improve API clarity and prepare for future multi-run session support. - Removed the following
DataCatalogmethods:_get_dataset(),add_all(),add_feed_dict(),list(), andshallow_copy(). - Removed the CLI command
kedro catalog create. - Changed the output of
runner.run()— it now always returns all pipeline outputs, regardless of catalog configuration.
Migration guide from Kedro 0.19.* to 1.*
See the migration guide for 1.0.0 in the Kedro documentation.