Re: [DISCUSS] Primate - new UI for CloudStack?

2019-09-22 Thread Rohit Yadav
All - thanks for your support and positive feedback.
I'll leave the thread open until the end of next week before kicking a voting 
thread to accept the codebase/repository.

Andrija - depending on how the community gathers consensus, the state and 
feedback on Primate technical preview (with the current winter LTS) and GA 
(with summer 2020 LTS) and depending on what we discuss and decide the UI would 
be deprecated and removed. Per my proposed plan, if all goals, timelines and 
consensus are met, the old UI may finally be removed in the winter 2020 LTS 
release after the due process of discussion and voting. Thanks.


Regards,

Rohit Yadav

Software Architect, ShapeBlue

https://www.shapeblue.com


From: Andrija Panic 
Sent: Friday, September 20, 2019 17:50
To: users 
Cc: dev@cloudstack.apache.org 
Subject: Re: [DISCUSS] Primate - new UI for CloudStack?

Hi Rohit,

been on CCC19NA and I'm fine with the whole idea (having seen everything,
etc.)

One thing to clarify: you mentioned "old UI reaches EOL in Winter lts 2020,
old UI codebase is removed from codebase" - but later stated, that since we
support LTS until 2022, that means "but, with no new UI functionality after
summer 2020".

So just to clarify WHEN actually is the old UI being finally removed
(codebase removed) from the product.

Everything else - a humble +1 for the great work you've done.

Andrija


rohit.ya...@shapeblue.com 
www.shapeblue.com
Amadeus House, Floral Street, London  WC2E 9DPUK
@shapeblue
  
 

On Fri, 20 Sep 2019 at 14:10, Rohit Yadav  wrote:

> All,
>
>
>
> == Summary ==
>
>
> I have been working on a new, modern role-based UI for Cloudstack (project
> Primate: https://github.com/shapeblue/primate) I demoed this for the
> first time at CCCNA19 last week and it was very well received. It was
> discussed, at length, as an item in the hackathon and the general consensus
> there was that this could become Cloudstacks new UI. We discussed a plan to
> achieve that and now I’m bringing that plan to the list for discussion.
>
>
>
> == Background ==
>
>
> The current CloudStack UI has grown technical debt over time and it has
> become harder to extend, develop, maintain in the long run, it is also
> difficult for new contributors to learn and get started. Since late 2018, I
> started working on a side-project with the aim to create a modern
> progressive and role-based declaratively-programmed UI for CloudStack,
> called Primate. Before creating Primate, I set out to create a list of core
> requirements of what would give us an extensible, modern UI that was easy
> to develop now and in the future. These are the requirements I came up with:
>
>   *   designed from ground up to be  a complete replacement for our
> combined user/admin UI
>   *   to respect all entities in cloudstack and not make assumptions on
> use-cases of cloudstack
>   *   data-driven and auto-generation of UI widgets and to be easy to
> learn, develop, extend, customise and maintain.
>   *   declarative programming
>   *   support for API discovery and parameter completion like CloudMonkey
>   *   support for custom roles
>
>
>
> I looked at existing Cloudstack UI projects but none of them fully
> satisfied all these requirements and started Primate.
>
>
>
> == Project Primate ==
>
>
> For the implementation, I compared a couple of opensource JS and UI
> frameworks and decided to use VueJS (https://vuejs.org)
> which is a JavaScript framework and AntD (https://ant.design<
> https://ant.design/>) which is a UI design language with a well-defined
> spec, styling guide, and an implementation-specific to VueJS. VueJS was
> selected because among a few other JS frameworks I surveyed it was the
> easiest (for me) to learn and get started. I also surveyed a few UI
> frameworks and selected AntD because it came with a well-defined spec,
> styling guide and VueJS specific implementation which gives several
> re-usable components out of the box.
>
>
>
> During the development of Primate, I used my previous experience from
> CloudMonkey and another PoC angular-based UI ProjectX, and it currently
> supports:
>
>   *   role-based UI based on API autodiscovery
>   *   auto-generated action/API forms with parameter completion
>   *   declarative component-driven views
>   *   modern programming methodologies (hot reloading, npm based
> build/run/compile etc.)
>   *   decoupled from core Cloudstack code
>   *   dynamic translation (most/many of old translation files ported)
>   *   includes dashboards, async job/API polling, all list views/tables
> per the old UI
>   *   browser history and url/route driven navigation
>   *   support for mobiles/tables/desktop screens
>   *   configuration driven UI customisation (of navigation, icons, APIs
> etc)
>
>
>
> To get to this point, I’ve had some valuable help from Anurag and Sven et
> al at EWerk.
> The development strategy to support all APIs out of the box in a
> data-driven way gives 

Re: [DISCUSS] Primate - new UI for CloudStack?

2019-09-22 Thread Rohit Yadav
Hi Sid,

I've put the proposal on the wiki for reference:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Proposal%3A+CloudStack+Primate+UI


Regards,

Rohit Yadav

Software Architect, ShapeBlue

https://www.shapeblue.com


From: Siddhartha Kattoju 
Sent: Friday, September 20, 2019 20:47
To: dev@cloudstack.apache.org 
Cc: us...@cloudstack.apache.org 
Subject: Re: [DISCUSS] Primate - new UI for CloudStack?

+1 from me as well.

Just a side note: I feel like there is a high risk of tldr here. May be its
just me. It may be would be good to put most of the details in a wiki page
and just post a summarized version on the list ?

*Sid Kattoju*

Cloud Software Architect | Professional Services

c 514.466.0951


* *




On Fri, Sep 20, 2019 at 8:10 AM Rohit Yadav 
wrote:

> All,
>
>
>
> == Summary ==
>
>
> I have been working on a new, modern role-based UI for Cloudstack (project
> Primate: https://github.com/shapeblue/primate) I demoed this for the
> first time at CCCNA19 last week and it was very well received. It was
> discussed, at length, as an item in the hackathon and the general consensus
> there was that this could become Cloudstacks new UI. We discussed a plan to
> achieve that and now I’m bringing that plan to the list for discussion.
>
>
>
> == Background ==
>
>
> The current CloudStack UI has grown technical debt over time and it has
> become harder to extend, develop, maintain in the long run, it is also
> difficult for new contributors to learn and get started. Since late 2018, I
> started working on a side-project with the aim to create a modern
> progressive and role-based declaratively-programmed UI for CloudStack,
> called Primate. Before creating Primate, I set out to create a list of core
> requirements of what would give us an extensible, modern UI that was easy
> to develop now and in the future. These are the requirements I came up with:
>
>   *   designed from ground up to be  a complete replacement for our
> combined user/admin UI
>   *   to respect all entities in cloudstack and not make assumptions on
> use-cases of cloudstack
>   *   data-driven and auto-generation of UI widgets and to be easy to
> learn, develop, extend, customise and maintain.
>   *   declarative programming
>   *   support for API discovery and parameter completion like CloudMonkey
>   *   support for custom roles
>
>
>
> I looked at existing Cloudstack UI projects but none of them fully
> satisfied all these requirements and started Primate.
>
>
>
> == Project Primate ==
>
>
> For the implementation, I compared a couple of opensource JS and UI
> frameworks and decided to use VueJS (https://vuejs.org)
> which is a JavaScript framework and AntD (https://ant.design<
> https://ant.design/>) which is a UI design language with a well-defined
> spec, styling guide, and an implementation-specific to VueJS. VueJS was
> selected because among a few other JS frameworks I surveyed it was the
> easiest (for me) to learn and get started. I also surveyed a few UI
> frameworks and selected AntD because it came with a well-defined spec,
> styling guide and VueJS specific implementation which gives several
> re-usable components out of the box.
>
>
>
> During the development of Primate, I used my previous experience from
> CloudMonkey and another PoC angular-based UI ProjectX, and it currently
> supports:
>
>   *   role-based UI based on API autodiscovery
>   *   auto-generated action/API forms with parameter completion
>   *   declarative component-driven views
>   *   modern programming methodologies (hot reloading, npm based
> build/run/compile etc.)
>   *   decoupled from core Cloudstack code
>   *   dynamic translation (most/many of old translation files ported)
>   *   includes dashboards, async job/API polling, all list views/tables
> per the old UI
>   *   browser history and url/route driven navigation
>   *   support for mobiles/tables/desktop screens
>   *   configuration driven UI customisation (of navigation, icons, APIs
> etc)
>
>
>
> To get to this point, I’ve had some valuable help from Anurag and Sven et
> al at EWerk.
> The development strategy to support all APIs out of the box in a
> data-driven way gives a functioning UI and scope to customise
> views/components over time. Support to declaratively add actions on all
> views and some action/customisation (ex. vm/zone deployment wizard) is in
> progress. The work was recently discussed and demo-ed at CCCNA19, the
> slides of my talk are here:
> https://rohityadav.cloud/files/talks/cccna19-primate.pdf
>
>
>
> == Discussion ==
>
>
>
> With this discussion thread, I want to propose the idea hatched in the
> recent hackathon for Primate to become the next UI for CloudStack. I’d like
> to seek everybody's thoughts, feedback, comments, and reviews on that idea.
>
> Obviously, part of any new UI project would mean that the existing UI
> development would eventually get abandoned. In the hac