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

Create tool to identify and visualize circular imports between plugins #78162

Closed
joshdover opened this issue Sep 22, 2020 · 4 comments · Fixed by #82867
Closed

Create tool to identify and visualize circular imports between plugins #78162

joshdover opened this issue Sep 22, 2020 · 4 comments · Fixed by #82867
Assignees
Labels
Feature:Dev Tools Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Team:Operations Team label for Operations Team

Comments

@joshdover
Copy link
Contributor

In order to add support for TypeScript project references and Bazel builds to plugins on a per-plugin basis, we cannot have any circular imports between plugins.

Since this is a blocking issue to solving many of the performance problems with our current developer experience & tooling, we should build a tool to identify the circular imports between our plugins so that we can determine the granularity of projects, where circular imports can easily be removed, how much effort will be required to resolve this problem.

Possible tools that could help us:

Related to #71566 #46773 #69706

@joshdover joshdover added Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Team:Operations Team label for Operations Team Feature:Dev Tools labels Sep 22, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-platform (Team:Platform)

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-operations (Team:Operations)

@mshustov
Copy link
Contributor

mshustov commented Sep 22, 2020

The last time I tried to use madge to detect circular refs in the platform codebase, it didn't work because Kibana uses a newer TS version, so I had to switch to https://github.com/sverweij/dependency-cruiser (my mistake, madge doesn't use that one under the hood)

@dplumlee
Copy link
Contributor

I know @oatkiller had worked on something similar to this problem within the security solution plugin in this pr #75579 to help with circular dependency visualization. Might be loosely related enough to lend insight

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Dev Tools Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc Team:Operations Team label for Operations Team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants