Reverse dependency on components#42
Conversation
To confirm though, once they are added to the registry this will be just: Pkg.add("dash")And the other 4 come along automatically, correct? If so, this looks perfect! |
| name: 🔎 Unit tests | ||
| command: | | ||
| julia -e 'using Pkg; Pkg.update(); Pkg.add(PackageSpec(url="https://github.com/plotly/Dash.jl.git", rev=ENV["CIRCLE_BRANCH"])); Pkg.add(PackageSpec(url="https://github.com/waralex/dash-html-components.git", rev="jl_generator_test")); Pkg.add(PackageSpec(url="https://github.com/waralex/dash-core-components.git", rev="jl_generator_test")); Pkg.build("Dash"); Pkg.build("DashHtmlComponents"); Pkg.build("DashCoreComponents"); Pkg.test("Dash", coverage=true); function precompile_pkgs(); for pkg in collect(keys(Pkg.installed())); if !isdefined(Symbol(pkg), :Symbol) && pkg != "Compat.jl"; @info("Importing $(pkg)..."); try (@eval import $(Symbol(pkg))) catch end; end; end; end; precompile_pkgs()' | ||
| julia -e 'using Pkg; Pkg.update(); Pkg.add(PackageSpec(url="https://github.com/waralex/DashBase.jl.git")); Pkg.add(PackageSpec(url="https://github.com/waralex/dash-html-components.git", rev="jl_reverse_test")); Pkg.add(PackageSpec(url="https://github.com/waralex/dash-core-components.git", rev="jl_reverse_test"));Pkg.add(PackageSpec(url="https://github.com/waralex/dash-table.git", rev="jl_reverse_test")); Pkg.add(PackageSpec(url="https://github.com/plotly/Dash.jl.git", rev=ENV["CIRCLE_BRANCH"])); Pkg.build("Dash");Pkg.test("Dash", coverage=true); function precompile_pkgs(); for pkg in collect(keys(Pkg.installed())); if !isdefined(Symbol(pkg), :Symbol) && pkg != "Compat.jl"; @info("Importing $(pkg)..."); try (@eval import $(Symbol(pkg))) catch end; end; end; end; precompile_pkgs()' |
There was a problem hiding this comment.
It's awfully hard to tell what's changing here - perhaps we can move this to a separate .jl file? To make clear that it's meant only for CI we can put it in the .circleci folder - similar to what we do with the plotly.js test script.
The user still needs to Pkg.add component packages if they plan to use them in their environment. In his entourage is added to the component version that satisfies the dependencies Dash. I.e. in Julia is 2 different actions - physical installation package and add a package to the current environment. Pkg.add(dash) physically install the component packages, but the user still needs to add them to their environment. The user does not need to add DashBase to their environment. |
|
As discussed on Slack, let's proceed with this. Aside from my comment about the unit test CI script this looks in good shape to me! The only potential change I can think of after this is bundling the rest of the core as sub-packages of |
|
@alexcjohnson Ok. I will move |
|
Is this PR obsolete now that we have #54? |
Yes, I'll close it |
DashBase.jl package added. Dash depends on DashBase and core components, core components depends on DashBase and other components depends on Dash.
For testing until the corresponding packages are added to the Registrator you need to install the packages in this order:
Corresponding PR to the generator plotly/dash#1302
If this option is accepted, then I will need to move the DashBase to the plotly repository. You will also need to update the
jlbranches for the main components