Sign up to take part
Registered users can ask their own questions, contribute to discussions, and be part of the Community!
I have developed and deployed a custom dataset plugin to a production Dataiku instance. Now I am about to introduce a new feature (breaking change) to the my custom plugin.
I would appreciate your experience/advice on how to manage multiple versions of a custom plugin in Dataiku. I am interested in
For the first question, as far as I 'm aware of you can have one active version of a plugin per instance. If you try to change the active version of a plugin it will affect all the projects in that specific instance. One way to go is to have 2 plugins I guess. One version-1.0.1 and one version-2.0.0
How to manage multiple versions of a plugin in a Dataiku instance?
Not possible in a single instance. Use multiple Dataiku instances or create a v2 plugin version as a new plugin to allow you keep multiple concurrent versions and allow users to migrate
How to notify end-users of my plugin about a breaking change?
There is a Usages tab in the plugin screen to help you identify plugin usage (also available in the Python API). From there it will be up to you on how to communicate changes to users.
Are there any tools in Dataiku to help end-users to migrate to newer version of a custom plugin?
You can use Dataiku Python APIs to deploy plugins programatically. There are no other built-in tools or workflows for plugins. I have not tested it but it should be possible to change a recipe from one version of a plugin to another. Have a look at the get_settings(), get_recipe_raw_definition() and save() methods of the Python API. Maybe you can develop a plugin or macro that allows users to migrate recipes from one plugin version to the next one. Let us know how it goes, it's an interesting subject...
Any other concerns I should be aware of?
Thank you all for your feedback and suggestions.
My understanding of plugin is that it contains many components. If I introduce a breaking change to one of the components in my plugin, do I have to create a new plugin or a new version of the component?