On 12/15/2014 02:26 PM, Anton Zemlyanov wrote:
The building of the UI plugin has several things I do not like

1) I need to extract the UI part of the plugin and copy/symlink it to fuel-web

This is required, the UI part should live somewhere in statics/js. This directory is served by nginx and symlinking/copying is I think the best way, far better than adding new directories to nginx configuration.

2) I have to run grunt build on the whole fuel-web

This shouldn't at all be necessary.

3) I have to copy files back to original location to pack them

Shouldn't be necessary.

4) I cannot easily switch between development/production versions (no way to easily change entry point)

Development/production versions should only differ by serving raw/compressed files. The compressed files should be published by the plugin author.


The only way to install plugin is `fuel plugins --install`, no matter development or production, so even development plugins should be packed to tar.gz

The UI part should be working immediately after symlinking somewhere in the statics/js directory imho (and after API is aware of the new pugin but).

P.


Anton

On Mon, Dec 15, 2014 at 3:30 PM, Przemyslaw Kaminski <pkamin...@mirantis.com <mailto:pkamin...@mirantis.com>> wrote:

    First of all, compiling of statics shouldn't be a required step.
    No one does this during development.
    For production-ready plugins, the compiled files should already be
    included in the GitHub repos and installation of plugin should
    just be a matter of downloading it. The API should then take care
    of informing the UI what plugins are installed.
    The npm install step is mostly one-time.
    The grunt build step for the plugin should basically just compile
    the staticfiles of the plugin and not the whole project. Besides
    with one file this is not extendable -- for N plugins we would
    build 2^N files with all possible combinations of including the
    plugins? :)

    P.


    On 12/15/2014 11:35 AM, Anton Zemlyanov wrote:
    My experience with building Fuel plugins with UI part is
    following. To build a ui-less plugin, it takes 3 seconds and
    those commands:

    git clone https://github.com/AlgoTrader/test-plugin.git
    cd ./test-plugin
    fpb --build ./

    When UI added, build start to look like this and takes many minutes:

    git clone https://github.com/AlgoTrader/test-plugin.git
    git clone https://github.com/stackforge/fuel-web.git
    cd ./fuel-web
    git fetch https://review.openstack.org/stackforge/fuel-web
    refs/changes/00/112600/24 && git checkout FETCH_HEAD
    cd ..
    mkdir -p ./fuel-web/nailgun/static/plugins/test-plugin
    cp -R ./test-plugin/ui/*
    ./fuel-web/nailgun/static/plugins/test-plugin
    cd ./fuel-web/nailgun
    npm install && npm update
    grunt build --static-dir=static_compressed
    cd ../..
    rm -rf ./test-plugin/ui
    mkdir ./test-plugin/ui
    cp -R ./fuel-web/nailgun/static_compressed/plugins/test-plugin/*
    ./test-plugin/ui
    cd ./test-plugin
    fpb --build ./

    I think we need something not so complex and fragile

    Anton




    _______________________________________________
    OpenStack-dev mailing list
    OpenStack-dev@lists.openstack.org  
<mailto:OpenStack-dev@lists.openstack.org>
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


    _______________________________________________
    OpenStack-dev mailing list
    OpenStack-dev@lists.openstack.org
    <mailto:OpenStack-dev@lists.openstack.org>
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to