[openstack-dev] [murano][murano-apps] FQNs of murano apps/classes

Kirill Zaitsev kzaitsev at mirantis.com
Mon Jun 27 15:14:53 UTC 2016

TL,DR version: 
Murano team is using io.murano namespace for murano Core Library, it should not be used for apps; We’ve updated our murano apps to use org.openstack and/or com.mirantis where applicable [1]. If you’re developing a murano app — please pick a relevant namespace.

Long Version:
In MuranoPL packages and classes have FQNs, Fully Qualified Names. This is done to allow developers of apps distinguish between different implementations of the same thing. For example we might have a VM-based MySQL [2] and a docker-based MySQL classes [3]. The idea of FQNs is quite similar to the idea of namespaces from Java, for example.

Until very recently we(murano-team) have been using ‘io.murano’ prefix for all of our apps. Originally this namespace was designed to contain only ‘core’ murano classes, but then we’ve added a couple of apps, and a couple more and eventually we’ve been using the namespace all over. This lead to app developers from outside the core murano team to copy this practice and use ‘io.murano’ prefix in their own apps (Since all the apps start with ‘io.murano’ one would make a logical solution, that he should also start his/her app with ‘io.murano’). This defeats the idea of having multiple independent implementations with different FQN, so we’re updating our apps to remove this prefix. It will probably take some time to update apps on app.openstack.org, but apps in murano-apps have already been updated accordingly.

The same idea applies to murano plugins, that extend core library with new functionality. This work is described in corresponding spec [4] (it’s quite short, so if you’re writing a murano-plugin, please give it a read) and will be implemented by this commit [5]. The goal here is also to remove ‘io.murano.extensions’ from the class names of the plugins. Old names are deprecated, but would be supported.

So, if you’re developing a murano app, please don’t use 'io.murano' as the prefix for your app’s FQN, but rather choose a more appropriate one. 'org.openstack' might be a good choice. And if your company plans to invest into supporting the app — it might be a good idea to put it’s name there.

[1] https://review.openstack.org/#/q/status:merged+project:openstack/murano-apps+branch:master+topic:bp/fix-fqn-usage 
[2] https://git.openstack.org/cgit/openstack/murano-apps/tree/MySQL/package/manifest.yaml#n15
[3] https://git.openstack.org/cgit/openstack/murano-apps/tree/Docker/Applications/MySQL/package/manifest.yaml#n15
[4] https://specs.openstack.org/openstack/murano-specs/specs/newton/approved/plugin-fqn-rename.html
[5] https://review.openstack.org/#/c/332875/

Kirill Zaitsev
Murano Project Tech Lead
Software Engineer at
Mirantis, Inc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160627/adc2eac3/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Message signed with OpenPGP using AMPGpg
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160627/adc2eac3/attachment.pgp>

More information about the OpenStack-dev mailing list