-
Notifications
You must be signed in to change notification settings - Fork 14.1k
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
RFC - Customizations #2011
RFC - Customizations #2011
Conversation
On the python side i really don't like the let's import everything from a file approach. Airflow take on handling this looks quite a bit more sophisticated to me https://github.com/apache/incubator-airflow/blob/master/airflow/plugins_manager.py |
Could be tricky in this iteration, but plugins for time grains would be a
great addition for our use case.
On Fri, 20 Jan 2017, 20:37 Riccardo Magliocchetti, ***@***.***> wrote:
BTW we now have something similar for custom datasources, see 5a0e06e
<5a0e06e>
and fc921d6
<fc921d6>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#2011 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AEdFuC9bMltG80DSLbxLTU0_NFXEkfanks5rURrugaJpZM4LpsP6>
.
--
…_______
Alan Cruickshank
E: alanmcruickshank@gmail.com
T: +44 770 6851825
|
Sounds good to me, we can think of config vars where one defines the list of things to import. |
@xrmx I think the difference in approaches can be traced to semantics. Airflow has more of a plugin system which offers extension for an installed instance. @0x0ece's feature may more properly be called a "customization" framework, suitable for those maintaining (and developing on) forks. Personally, I appreciate the functionality and simplicity of the approach. @alanmcruickshank The |
I agree with @mahmoud, that's a good point - I should rename the directory to |
@mahmoud i don't think the python side of this PR is about a plugin system as it's not about making the code extensible. It's just a shortcut to maintain forks easily. @0x0ece thanks for sharing your customization, a few random thoughts:
|
All right, let's recap then:
I'll wait for a comment on the js from the FE people, e.g. @ascott, and post an update asap. As for my specific example:
|
@alanmcruickshank BTW, we were using something around these lines: #1188 |
This is all pretty reasonable, though the codebase may get shuffled around quite a bit still (before 1.0) and I'd prefer not having to worry about keeping this "plugins interface" working while refactoring. For instance, we probably want to refactor the visualizations so that each one gets a folder with there related If we hook up the plugins as defined in this PR, it will make that refactoring harder if not impossible.... |
All right, I'm closing this PR then. But please think of a way for simple contributions/personalization in the main refactor. :) |
Hi,
I'm proposing an initial plugins system.
The idea is to have a
plugins
directory containing mostly empty files, which are already "properly linked" in the code. This way, one can tweak Superset, but also easily upgrade to newer versions, with low-to-none merge conflicts. (This is heavily inspired by Airflow.)At shopkick we're using superset since 0.10, did a lot of internal small patches, mostly personalizing the UI, and every time there's an update re-merging is a pretty painful operation.
With this current system, we're currently personalizing:
You can see an example of the plugins system in action here:
https://github.com/shopkick/superset/tree/sk_0.15.2/superset/plugins
To reiterate, the main purpose is to have empty files somewhere that one can personalize as she likes, without incurring in merge conflicts when a new version is released. In principle every single piece of Superset can be extended in a similar fashion, but I'm not a fan of too general implementations, I'd grow the list of supported features as the community requires them.
Please LMK what do you think, E.