Skip to content
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

Require ../kibana-extra for plugins during development #15452

Closed
4 of 5 tasks
kimjoar opened this issue Dec 6, 2017 · 3 comments
Closed
4 of 5 tasks

Require ../kibana-extra for plugins during development #15452

kimjoar opened this issue Dec 6, 2017 · 3 comments
Labels
Meta stale Used to mark issues that were closed for being stale Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc

Comments

@kimjoar
Copy link
Contributor

kimjoar commented Dec 6, 2017

Currently plugins can be placed in arbitrary locations during development. For several different reasons we want to start requiring that plugins live in ../kibana-extra relative to Kibana during development, e.g.

  • It removes a lot of unnecessary configs. Today every tool we build for Kibana plugins needs to know about (and handle) this.
  • The goal is that plugins will be built entirely separately in Kibana 7, both during development and production (i.e. no more Webpack in production). That means plugins can't import files directly in Kibana any more, but we still want to share packages such as flot between plugins, which will become simpler by having consistent location for plugins (see A new Kibana dev and build process #14993 for details on this).
  • In addition the new platform (New Kibana platform #9675) is built around the idea of multiple packages that depend on each other, and this move greatly simplifies the necessary tooling for that.

In the near-term it's just a move to the same structure as Elasticsearch and Logstash, and it won't impact development workflow except being stricter about location of plugins.

Part of #15170

Tasks:

@w33ble
Copy link
Contributor

w33ble commented Dec 6, 2017

Mind including some context in the issue description about what the development workflow will look like with this change? I don't see a description in the parent...

I see this message in an open PR in plugin helpers, and I have some questions now, so I'd like to learn more about what the plan is.

@kimjoar
Copy link
Contributor Author

kimjoar commented Dec 6, 2017

@w33ble Ah, my bad. Linked to #14993 in the description, which contains a bit of backstory on it.

When we move towards link: dependencies the plugins need a consistent location (as link: dependencies are relative). We discussed in Platform + Operations, and decided on doing the same as Elasticsearch did (introduce a -extra folder). This simplifies tooling for both development and production.

So in the near-term it's just a move to the same structure as Elasticsearch. It won't impact development workflow, except being stricter about location.

So for now the only change is moving to that folder. But as we introduce additional tooling (e.g. to better handled xpack and other plugins depending on packages in Kibana) this is an important change that hopefully should enable some new things (e.g. things we want in the new platform).

When we get "bootstrapping" in (exploration happening in #15055) we'll be able to depend on Kibana packages without npm publish-ing them anymore (and no npm link and npm link {dep} to test them when making changes etc).

@kimjoar
Copy link
Contributor Author

kimjoar commented Dec 6, 2017

Oh, and for K7 we'll likely get rid of scanDirs, pluginPaths, and all those configs, as everything will live in a defined location. That should hopefully improve both development and production.

(e.g. we currently have a --plugin-dir option in the plugin cli, but it hasn't actually worked with x-pack since at least 5.4. Being more consistent with location should hopefully help us avoid those kinds of problems, and let us build tooling which improves the dev workflow)

@kimjoar kimjoar added the Meta label Dec 12, 2017
@joshdover joshdover added the stale Used to mark issues that were closed for being stale label Jan 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Meta stale Used to mark issues that were closed for being stale Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc
Projects
None yet
Development

No branches or pull requests

3 participants