JuliaPlots / JuliaPlots/PlotlyJS.jl

Revisit removal of Blink as a dependency

Open
#272 10 comments 1 reaction 0 assignees View on GitHub
Dominant language
Julia
Stars
444
Forks
86
PR merge metrics
No merged PRs in 30d

Description

Hi @sglyon 👋

I raised this issue once here

https://github.com/sglyon/PlotlyJS.jl/issues/184

but would like to raise it again.

Blink.jl is kind of a heavy dependency with a nontrivial build process. I don't think it is really necessary for what I think you want with PlotlyJS.jl.

Would you be open to using [Requires.jl](https://github.com/MikeInnes/Requires.jl) and have some code that only gets loaded if someone has independently loaded Blink.jl?

This way, you would not lose any Blink functionality, but Blink would not be a dependency.

When I raised this issue before, it was for my package, [Pages.jl](https://github.com/EricForgy/Pages.jl), and we were able to close the issue because it turns out I could just use PlotlyBase.jl for Pages.jl instead.

Now, I have [Figures.jl](https://github.com/EricForgy/Figures.jl). Figures.jl provides a `display` that will display PlotlyJS charts in a draggable "Figure" in a browser window and depends on PlotlyJS.jl proper.

My idea is to:

- Not lose any Blink.jl functionality currently in PlotlyJS.jl
- Use Requires.jl so that functionality only gets loaded if someone independently does `using Blink`
- Remove Blink.jl as a dependency of PlotlyJS.jl

Reason: I don't want people to have to install Blink.jl to use my package that has a dependency on PlotlyJS.jl.

What do you think?

If you are open to this idea, I can submit a PR 🙏

Edit: By the way, if you are open to this, I may do something similar with WebIO.jl since I'd like to use PlotlyJS.jl without acquiring a dependency on WebIO.jl as well. In that case, I might even add Figures.jl as a backend to PlotlyJS.jl with the same philosophy, i.e. using Requires.jl so PlotlyJS.jl doesn't have a dependency on Figures.jl but can take advantage of it.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.