-
Notifications
You must be signed in to change notification settings - Fork 17
Remove all Makie/Plots related hacks. This is not the place. #139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Most JuliaGeo geometry packages can plot their objects in Makie now after a lot of complaints and confusion that they didn't. MakieCore is not particularly large but I totally agree making it a weak dep would be better. But we need to find a way for that to continue working with a weak dependency, not just removing all of the code and breaking user expectation that |
Again, that is not true. You introduced these inappropriate dependencies in Shapefile.jl, GeoJSON.jl and ArchGDAL.jl. Packages like GeoParquet.jl and GeoArrow.jl are still clean. If people complain that these geometries can't plot directly, you don't add dependencies. You recommend the installation of a dedicated package for plotting. The hacks here with GeoInterfaceMakie.jl + MakieCore.jl alongside a Makie.jl extension are far from an acceptable solution.
It is not about size, it is about scope. Shapefile.jl is a package for reading/writing the shapefile format. Any dependency that does not contribute to this objective is unwelcome, and increases the potential of build failures in downstream applications. Also, MakieCore.jl depends on GeometryBasics.jl, so you made Shapefile.jl depend on another set of geometries, which defeats the whole GeoInterface.jl story.
I hope @visr and other JuliaGeo maintainers will agree that your expectations should not have higher priority over good software engineering practices. Weak dependencies are a good solution when a single package that defines types is placed in an extension for method specialization of functions that live in another package. Here you have a combo of MakieCore.jl + Makie.jl + GeoInterface.jl + GeoInterfaceMakie.jl that is just madness. And I won't even talk about invalidations... If you want to plot these geometries defined in Shapefile.jl, create a monolithic "GeoMakie.jl" package that defines the plotting recipes for all the types you care about. These definitions can live in package extensions of GeoMakie.jl, not the other way around. |
visr
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's not remove this feature until we have some consensus on what a possible better approach would be, which we can discuss in #138.
Why there needs to be a consensus before the merge? This PR solves a serious dependency issue in the Shapefile.jl package, which has nothing to do with plotting. The plotting story should be addressed outside of the Shapefile.jl repository. |
|
Because this PR will break many people's workflows. Please try to be constructive we can solve this for everyone, not just for you. |
You already broke other people's workflows when you unilaterally decided to add Makie-related deps to these packages. Can't you see the seriousness of this issue?
It is not just for me. You made a decision that was not widely discussed anywhere. I doubt the majority of users would vote in favor of adding Makie-deps to Shapefile.jl |
|
Removing dependencies without losing plot recipes is solved in this PR, with minor change to the macro for dependent packages: |
|
Closing in favor of #142 |
Fix #138