Well... Git LFS is one solution, but maybe not the easiest one to handle for the devs.

But a simple file server with a nice directory structure containing each precompiled/packaged 3rd party dependency is another alternative (just have to be correctly tag/name the folders and files, so that Emsdk can download the correct versions according to the Emscripten release being pulled).  Put it differently, the simplest thing that could possibly work.

By doing so, there is some "reinvent the wheel" syndrome , as npm/pip/etc. are already addressing such kind of needs (manage packages/dependencies/delivery/etc.). The issue is that they are heavily tied to their own respective language/platforms (be it Node, Python, etc.). I wonder if there exist some kind of package management system that is programming language-neutral (and OS neutral also), and only focusing on having a bunch of files to be installed in a particular location according to some spec in a git branch. Basically, this is the need there.

But of course, I am probably not the right person to take any decision on this :)


Le 18/12/2019 à 10:07, Shachar Langbeheim a écrit :

Gabriel, essentially you propose to you Git LFS, instead? That sounds reasonable.

On Wed, 18 Dec 2019 at 09:27, Gabriel Cuvillier <[email protected] <mailto:[email protected]>> wrote:

    My two cents on this, from the point of view of a daily Emscripten
    user on various projects :

    If this change does not impact end-users of Emscripten, that just
    want to do C++ development targeting WebAssembly, then this is
    perfectly fine.   This change would just be an EMSDK
    "implementation detail", and I agree that from this point of view,
    removing the Java dependency is interesting.

    However, if the users are expected to use Node/npm at some point,
    then please, please, don't do this :) Not everyone is willing to /
    can use the Node/npm ecosystem on the projects they are working on.


    An alternative suggestion: instead of having to rely on 3rd party
    distribution system, why not "precompile/bundle" closure (as well
    as minify-html, or any other 3rd party dep), and use a more
    classic CDN-approach to deliver these big files.   This would
    remove the need for a package management system (npm, or even PIP
    if you have the same idea for Python tools) running on users
    machine... and potentially breaking for various reasons (network
    failures, misconfiguration of PATH, weird interaction with
    system-wide installation of Node/npm, etc..)


    Cheers,

    Gabriel

    Le 17/12/2019 à 19:33, Alon Zakai a écrit :

    Some possible concerns are:

    Is npm supported everywhere that the emsdk currently is? I assume
    it's supported in even more, but it would be good to check.

    How hard will supporting npm issues be for the devs here? That
    is, people will file issues on emscripten/emsdk that are due to
    npm not being set up right on their machine, or using the wrong
    version, or it fails due to some npm-specific issue, etc.. For
    myself personally, I don't use npm daily, so I am not already
    super-familiar with it, and those error messages and workarounds
    may not be obvious. Do other people that can respond to github
    issues have experience with npm?

    - Alon


    On Sun, Dec 15, 2019 at 6:31 AM Jukka Jylänki <[email protected]
    <mailto:[email protected]>> wrote:

        Hello all,

        the PRs

        https://github.com/emscripten-core/emsdk/pull/404,
        https://github.com/emscripten-core/emscripten/pull/9989, and
        https://github.com/emscripten-core/emscripten/pull/9990

        propose migrating Closure compiler and html-minifier to
        reside outside
        the Emscripten tree, and be installed via npm.

        The benefits of this change are:
         1. Future updates to closure and html-minifier will not
        bloat up the
        size of the Emscripten git repository (each update would
        increase the
        size of the git repository by ~+10% otherwise)
         2. Emscripten developers do not need to maintain a CDN and
        code for
        distributing closure/html-minifier, easing CDN and testing
        burden from
        emsdk,
         3. Tracking which version of closure and html-minifier we are on
        becomes explicit and idiomatic to people familiar with npm
        community
        (can be found in package.json) rather than having to look up
        git logs,
         4. Updating versions become easier, as migrating to a new
        versions
        can be changed into the file package.json

        The drawbacks of this change are:
         5. developers who follow the "I git cloned all repositories
        myself"
        approach and do not use emsdk need to run "npm install" once
        in the
        Emscripten root directory if they want to use closure or
        html-minifier,
         6. If npm goes down, it will disrupt emsdk installation

        Can people think of other benefits/drawbacks that should
        influence
        this design change?

        Cheers,
        Jukka

-- You received this message because you are subscribed to the
        Google Groups "emscripten-discuss" group.
        To unsubscribe from this group and stop receiving emails from
        it, send an email to
        [email protected]
        <mailto:emscripten-discuss%[email protected]>.
        To view this discussion on the web visit
        
https://groups.google.com/d/msgid/emscripten-discuss/CA%2B6sJ-2YQX9ku%3DPrwhDP0pnNoRZGjF8WtEnRPPMp0jFXJ-6Fsw%40mail.gmail.com.

-- You received this message because you are subscribed to the
    Google Groups "emscripten-discuss" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected]
    <mailto:[email protected]>.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpQOBVM6EHiVZwrwGmD_Qub-koAFey%3DLLq_uHXi12E4-RQ%40mail.gmail.com
    
<https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpQOBVM6EHiVZwrwGmD_Qub-koAFey%3DLLq_uHXi12E4-RQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
-- You received this message because you are subscribed to the Google
    Groups "emscripten-discuss" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected]
    <mailto:[email protected]>.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/emscripten-discuss/549820ac-3512-3b28-4dca-ec47892848ef%40gmail.com
    
<https://groups.google.com/d/msgid/emscripten-discuss/549820ac-3512-3b28-4dca-ec47892848ef%40gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/CA%2B_KjGbSVvrHo2PTjqyTsAHyVfyURjH7pNc0%2BTp-EeGAjJtOxw%40mail.gmail.com <https://groups.google.com/d/msgid/emscripten-discuss/CA%2B_KjGbSVvrHo2PTjqyTsAHyVfyURjH7pNc0%2BTp-EeGAjJtOxw%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/6834d972-c4ec-40ec-6adc-245503100522%40gmail.com.

Reply via email to