Introducing new versions of common pipelines

Hi,

We have a common Error Handler pipeline which we are developing for use across all projects. When I create a new version of the Error Handler, I don’t want to just update it directly in our DEV environment as other developers will be inconvenienced if it breaks their pipelines.

I can create a separate copy (e.g. “Error Handler New”) and then ask each project to migrate across to it - however then we end up with all projects pointing at “Error Handler New” and there is no easy way to rename this back to “Error Handler” without asking every project to repoint their pipelines again.

We could just incrementally name the common pipelines (e.g. “Error Handler v1”, “…v2”, “…v3”, etc.) however we’d prefer not to as we’d rather manage versions in our source code repository, not in Snaplogic.

Any suggestions of how to better manage the introduction of new versions of common pipelines?

Thanks,
C.J.

1 Like

I would argue that using pipeline names with a version number (e.g. “Error Handler v1”) is a reasonable approach if you think about those pipelines as the released software and not the original source code. In other words, you would have an “Error Handler” source pipeline where you made changes. Then, when you were satisfied with the state of the pipeline, you would make a copy and add the version number to the name.

To make it easier to consume common pipelines, you can put the version number in a pipeline parameter and then use an expression in the PipeExec to compute the path to the common pipeline. That way you would only have to change the pipeline parameter to do an upgrade. You could take it a bit further and leverage an expression library that contained the paths to the common pipelines so that configuring the PipeExec is just a matter of setting the path to “lib.common.error_handler_path”.

1 Like

Thanks for your reply - some really good suggestions in there so we’ll try some different approaches out.

Hello CJ,

Is it possible for you to share the common error handler pipeline ? We’re also in the process of creating one for our project, we can leverage it as best practice suggestion :slight_smile:

Best,
Yashu Vyas

Yashu,

I’ve posted this in a separate topic for visibility, you can find it here: Common Error Handler

Cheers,
C.J.

Thanks a lot C.J. It’s really informative.