-
Notifications
You must be signed in to change notification settings - Fork 45
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
Disintegration of MLJBase (discussion and tracking issue) #416
Comments
pre-compiling MLJBase on my newish macbook pro just too 37seconds 😢 |
For easy discoverability, maybe a consistent naming scheme as such:
Of course, these packages (e.g. MLJDistributions.jl) can definitely be used outside of MLJ. |
Anyway, this sounds like a great idea. |
Of course, the hard part is keeping all the dependencies, compat entries, etc. in sync. Tools like CompaHelper can help. There are probably additional tools that we can develop to make development and maintenance easier. |
Thanks for the feedback! Others have criticised the adoption of the "MLJ" prefix for packages that are really meant for more general consumption. (MLJScientificTypes is a case in point - but we already had ScientificTypes for the light version.) The criticism is that developers see "MLJ" and think that means the package is only for use with MLJ packages. I think there's validity in this.
Yes, these things help and I am probably not familiar enough with those tools, so appreciate your continued input here. |
Yeah that's definitely a concern. I guess we should identify which subparts of MLJBase are useful in general, and which parts are really only useful in the MLJ context. As you point out, the |
For the measures, For the The advantage of something like |
Am happy were finally discussing about this. This may reduce package testing time for 3rd party developers. |
Why don't we just call it |
Same comment that I posted here. The MLJ.jl README has a very nice visualization of the dependency graph, stored in the repo at https://github.com/alan-turing-institute/MLJ.jl/blob/master/material/MLJ_stack.svg As we break up MLJModels and MLJBase, we should definitely remember to keep this image up-to-date. |
An issue for One weird thing is that unless the |
@giordano I'm not sure I understand. MLJSerialization is not intended to be independent of MLJBase, so it can just import We could avoid type piracy by not importing What do you think? |
It seems there is a case to be made for further modularisation of MLJBase. These all sound reasonable to me but happy to hear other ideas:
Separate MLJSerialization (see Move model serialisation out to separate package #388); relevant code lives here: https://github.com/alan-turing-institute/MLJBase.jl/blob/d377bee1198ec179a4ade191c11fef583854af4a/src/machines.jl#L656
Separate MLJOpenML; code: MLJBase/src/openml.jl
Separate
UnivariateFinite packageCategoricalDistributions.jl ; code: src/univariatefinite.jlSeparate StatisticalMeasures package; code: src/measures/
Separate MLJComposition package; code: src/composition
The benefits of the 3rd has come in Soss.jl integration but also for models wanting to specify
UnivariateFinite
distribution priors as hyper-parameters (originallyBayesianLDA
was this way). The third because it's so big.The text was updated successfully, but these errors were encountered: