Skip to content

Releases: kedro-org/kedro

1.3.1

07 Apr 12:54
68c3fa6

Choose a tag to compare

Bug fixes and other changes

  • Fixed AttributeError when node functions have non-Pydantic/dataclass type hints on params: 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

31 Mar 14:27
d1af182

Choose a tag to compare

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_find parameter to find_pipelines(), allowing users to selectively run a subset of existing pipelines by modifying the pipeline registry.
  • The CLI --checkout flag can now be used on a new Kedro project from the default template, without a starter.
  • Added SESSION_CLASS as a configurable project setting, allowing users to define a custom KedroSession subclass

Bug fixes and other changes

  • DataCatalog.load() and DataCatalog.save() now raise a DatasetError that includes the dataset name for easier debugging.
  • Aligned the run data passed to before_pipeline_run, after_pipeline_run, and on_pipeline_error and 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 cachetools dependency 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_logging flag to configure_project() to prevent runtime-added logging handlers from being overwritten when configure_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 CatalogConfigResolver splitting 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

29 Jan 14:25
fcb6b05

Choose a tag to compare

Major features and improvements

  • Added @experimental decorator to mark unstable or early-stage public APIs.
  • Added support for running multiple pipelines in a single Kedro session run via the --pipelines CLI option and pipeline_names argument in KedroSession.run() method.
  • Updated the spaceflights-pyspark starter to use the new SparkDatasetV2 integration, enabling local, Databricks-native, and remote Spark execution workflows.

Experimental features

  • Added experimental llm_context_node and LLMContextNode for assembling LLMs, prompts, and tools into a runtime LLMContext within Kedro pipelines.
  • Added experimental preview_fn argument to Node class to add support for user-injectable node preview functions.
  • Added new experimental support-agent-langgraph starter, 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=True in find_pipelines() calls in the project template's pipeline_registry.py to 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 uvx installation.
  • Updated Databricks deployment docs to cover Spark Connect and Unity 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

26 Nov 14:53
ead1aed

Choose a tag to compare

Bug fixes and other changes

  • Fixed project version mismatch error. The error is now only raised when the major version of the project and Kedro package differ, allowing minor and patch version differences without unnecessary failures.

1.1.0

25 Nov 15:53
6e6c4cb

Choose a tag to compare

Major features and improvements

  • Added the ignore_hidden parameter to the OmegaConfigLoader.
  • Dropped support for Python 3.9 (EOL Oct 2025). Minimum supported version is now 3.10.

Bug fixes and other changes

  • Bumped click dependency to support versions 8.2.0 and above.
  • Fixed typos in docs and docstrings.
  • Fixed duplicate execution of the deindex-old-docs.js script on Kedro documentation pages, preventing double injection of noindex meta 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-dagster plugin 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

16 Dec 15:19
3f9f118

Choose a tag to compare

Bug fixes and other changes

  • Improved namespace validation efficiency to prevent significant slowdowns when creating large pipelines
  • Made deprecation warning appear only when the deprecated --namespace flag is used

1.0.0

22 Jul 15:32
f18cc35

Choose a tag to compare

Major features and improvements

Data Catalog

  • The previously experimental KedroDataCatalog has been renamed to DataCatalog and 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 CatalogConfigResolver property.
    • 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 --namespaces CLI option and namespaces argument in KedroSession.run() method.
  • Improved namespace validation efficiency to prevent significant slowdowns when creating large pipelines.
  • Added stricter validation to dataset names in the Node class, ensuring . characters are reserved to be used as part of a namespace.
  • Added a prefix_datasets_with_namespace argument to the Pipeline class 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 ParallelRunner via the KEDRO_MP_CONTEXT environment variable.
  • Added --only-missing-outputs CLI flag to kedro run. This flag skips nodes when all their persistent outputs exist.
  • Updated kedro registry describe to return the node name property instead of creating its own name for the node.
  • Removed pre-commit-hooks dependency for new project creation.

Breaking changes to the API

CLI

  • kedro catalog create command has been removed.
  • kedro catalog list, kedro catalog rank, and kedro catalog resolve commands have been replaced with kedro catalog describe-datasets, kedro catalog list-patterns and kedro catalog resolve-patterns commands, respectively.
  • The kedro run option --namespace has been removed and replaced with --namespaces.
  • The kedro micropkg CLI command has been removed as part of the micro-packaging feature deprecation.

API

  • Private methods _is_project and _find_kedro_project are changed to is_kedro_project and find_kedro_project.
  • Renamed instances of extra_params and _extra_params to runtime_params.
  • Removed the modular_pipeline module and moved functionality to the pipeline module instead.
  • Renamed ModularPipelineError to PipelineError.
  • Pipeline.grouped_nodes_by_namespace() was replaced with group_nodes_by(group_by), which supports multiple strategies and returns a list of GroupedNodes, improving type safety and consistency for deployment plugin integrations.
  • Renamed session_id parameter to run_id in all runner methods and hooks to improve API clarity and prepare for future multi-run session support.
  • Removed the following DataCatalog methods: _get_dataset(), add_all(), add_feed_dict(), list(), and shallow_copy().
  • Changed the output of runner.run() and session.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-outputs CLI instead.

Documentation changes

  • Revamped the look and feel of the Kedro documentation, including a new theme and improved navigation with mkdocs as the documentation engine.
  • Updated the DataCatalog documentation 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

21 Jul 13:54
e82e026

Choose a tag to compare

1.0.0rc3 Pre-release
Pre-release

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

18 Jul 22:31
c278651

Choose a tag to compare

1.0.0rc2 Pre-release
Pre-release

Major features and improvements

  • Added --only-missing-outputs CLI flag to kedro 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-outputs CLI 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

20 Jun 13:33
edcddc4

Choose a tag to compare

1.0.0rc1 Pre-release
Pre-release

Major features and improvements

  • Added stricter validation to dataset names in the Node class, ensuring . characters are reserved to be used as part of a namespace.
  • Added a prefix_datasets_with_namespace argument to the Pipeline class 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 ParallelRunner via the KEDRO_MP_CONTEXT environment 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 describe to return the node name property instead of creating its own name for the node.

Documentation changes

  • Updated the DataCatalog documentation with improved structure and detailed description of new features.

Community contributions

Breaking changes to the API

  • Private methods _is_project and _find_kedro_project are changed to is_kedro_project and find_kedro_project.
  • Renamed instances of extra_params and _extra_params to runtime_params.
  • Removed the modular_pipeline module and moved functionality to the pipeline module instead.
  • Renamed ModularPipelineError to PipelineError.
  • Pipeline.grouped_nodes_by_namespace() was replaced with group_nodes_by(group_by), which supports multiple strategies and returns a list of GroupedNodes, improving type safety and consistency for deployment plugin integrations.
  • The micro-packaging feature and the corresponding micropkg CLI command have been removed.
  • Renamed session_id parameter to run_id in all runner methods and hooks to improve API clarity and prepare for future multi-run session support.
  • Removed the following DataCatalog methods: _get_dataset(), add_all(), add_feed_dict(), list(), and shallow_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.