Kedro pipeline_registry.py ========================== With the realease of came a new module in the project template . Here are some notes that I learned while playing with this new module. Date: March 20, 2021 With the realease of `kedro==0.17.2` came a new module in the project template `pipeline_registry.py`. Here are some notes that I learned while playing with this new module. ## migrating to `pipeline_registry.py` * create a `src//pipeline_registry.py` file create a * `register_pipelines` function in `pipeline_registry.py` that mirrors the * register_pipelines method from your `hooks.py` module do not bring the * `hook_impl` decorator remove register_pipelines method on your `ProjectHooks` * class You should now have something that looks like this in your `src//pipeline_registry.py`. ``` python """Project pipelines.""" from typing import Dict from kedro.pipeline import Pipeline def register_pipelines() -> Dict[str, Pipeline]: """Register the project's pipelines. Returns: A mapping from a pipeline name to a ``Pipeline`` object. """ return {"__default__": Pipeline([])} ``` > pipeline_registry only works in `kedro>=0.17.2` ## Conflict Resolution _What happens If I register pipelines in both places_ I was not able to find any official documentation on how conflict resolution worked so I stepped into a project and added to both my `hooks.py` and `pipeline_registry.py` file. I noticed that it would pick up pipelines from both modules, but pipelines from `hooks.py` always take precedence. The entire duplicate pipeline will be over written by the one from `hooks.py`. > kedro automatically merges pipelines from both hooks.py takes precedence ## Ready to update In my experience there were no issues upgrading from `0.17.1` to `0.17.2`. I would reccomend only having one `register_pipelines` so decide to migrate to the new `pipeline_registry.py` or keep it in your `hooks.py`, but both is only going to lead to confusion. https://twitter.com/datajoely/status/1375193511264456705