[openstack-dev] [UX] [Horizon] [Heat] Merlin project (formerly known as cross-project UI library for Heat/Mistral/Murano/Solum) plans for PoC and more

Timur Sufiev tsufiev at mirantis.com
Wed Aug 6 19:41:35 UTC 2014


Hi, folks!

Two months ago there was an announcement in ML about gathering the
requirements for cross-project UI library for
Heat/Mistral/Murano/Solum [1]. The positive feedback in related
googledoc [2] and some IRC chats and emails that followed convinced me
that I'm not the only person interested in it :), so I'm happy to make
the next announcement.

The project finally has got its name - 'Merlin' (making complex UIs is
a kind of magic), Openstack wiki page [3] and all other stuff like
stackforge repo, launchpad page and IRC channel (they are all
referenced in [3]). For those who don't like clicking the links, here
is quick summary.

Merlin aims to provide a convenient client side framework for building
rich UIs for Openstack projects dealing with complex input data with
lot of dependencies and constraints (usually encoded in YAML format
via some DSL) - projects like Heat, Murano, Mistral or Solum. The
ultimate goal for such UI is to save users from reading comprehensive
documentation just in order to provide correct input data, thus making
the UI of these projects more user-friendly. If things go well for
Merlin, it could be eventually merged into Horizon library (I’ll spare
another option for the end of this letter).

The framework trying to solve this ambitious task is facing at least 2
challenges:
(1) enabling the proper UX patterns and
(2) dealing with complexities of different projects' DSLs.

Having worked on DSL things in Murano project before, I'm planning at
first to deal with the challenge (2) in the upcoming Merlin PoC. So,
here is the initial plan: design an in-framework object model (OM)
that could translated forth and back into target project's DSL. This
OM is meant to be synchronised with visual elements shown on browser
canvas. Target project is the Heat with its HOT templates - it has the
most well-established syntax among other projects and comprehensive
documentation.

Considering the challenge (1), not being a dedicated UX engineer, I'm
planning to start with some rough UI concepts [4] and gradually
improve them relying on community feedback, and especially, Openstack
UX group. If anybody from the UX team (or any other team!) is willing
to be involved to a greater degree than just giving some feedback,
you're are enormously welcome! Join Merlin, it will be fun :)!

Finally, with this announcement I’d like to start a discussion with
Horizon community. As far as I know, Horizon in its current state
lacks such UI toolkit as Merlin aims to provide. Would it be by any
chance possible for the Merlin project to be developed from the very
beginning as part of Horizon library? This choice has its pros and
cons I’m aware of, but I’d like to hear the opinions of Horizon
developers on that matter.

[1] http://lists.openstack.org/pipermail/openstack-dev/2014-June/037054.html
[2] https://docs.google.com/a/mirantis.com/document/d/19Q9JwoO77724RyOp7XkpYmALwmdb7JjoQHcDv4ffZ-I/edit#
[3] https://wiki.openstack.org/wiki/Merlin
[4] https://wiki.openstack.org/wiki/Merlin/SampleUI

-- 
Timur Sufiev



More information about the OpenStack-dev mailing list