## Summary The intent is to have a centralised place to store the list of Kibana solutions and serverless project types. To that end, this PR creates a `@kbn/projects-solutions-groups` package. It also adds the new solution type `'chat'`. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
---|---|---|
.. | ||
src | ||
jest.config.js | ||
kibana.jsonc | ||
package.json | ||
README.md | ||
tsconfig.json |
@kbn/dependency-usage
A CLI tool for analyzing dependencies across packages and plugins. This tool provides commands to check dependency usage, aggregate it, debug dependency graphs, and more.
Table of Contents
- Show all packages/plugins using a dependency
- Show dependencies grouped by code owner
- List all dependencies for a package or directory
- Group by code owner with adjustable collapse depth
- Show dependencies matching a pattern
- Verbose flag to debug dependency graph issues
1. Show all packages/plugins using a specific dependency
Use this command to list all packages or plugins within a directory that use a specified dependency.
bash scripts/dependency_usage.sh -d <dependency> -p <path_to_directory>
or
bash scripts/dependency_usage.sh --dependency-name <dependency> --paths <path_to_directory>
Example:
bash scripts/dependency_usage.sh -d rxjs -p x-pack/solutions/security/plugins/security_solution
-d rxjs
: Specifies the dependency to look for (rxjs
).-p x-pack/solutions/security/plugins/security_solution
: Sets the directory to search within (x-pack/solutions/security/plugins/security_solution
).
2. Show dependencies grouped by code owner
Group the dependencies used within a directory by code owner.
bash scripts/dependency_usage.sh -p <path_to_directory> -g owner
or
bash scripts/dependency_usage.sh --paths <path_to_directory> --group-by owner
Example:
bash scripts/dependency_usage.sh -p x-pack/plugins -g owner
-p x-pack/plugins
: Sets the directory to scan for plugins using this dependency.-g owner
: Groups results by code owner.- Output: Lists all dependencies for
x-pack/plugins
, organized by code owner.
3. List all dependencies for source directory
To display all dependencies used within a specific directory.
bash scripts/dependency_usage.sh -p <path_to_directory>
or
bash scripts/dependency_usage.sh --paths <path_to_directory>
Example:
bash scripts/dependency_usage.sh -p x-pack/solutions/security/plugins/security_solution
-p x-pack/solutions/security/plugins/security_solution
: Specifies the package or directory for which to list all dependencies.- Output: Lists all dependencies for
x-pack/solutions/security/plugins/security_solution
.
4. Group by code owner with adjustable collapse depth
When a package or plugin has multiple subteams, use the --collapse-depth
option to control how granular the grouping by code owner should be.
Detailed Subteam Grouping
Shows all subteams within security_solution
.
bash scripts/dependency_usage.sh -p x-pack/solutions/security/plugins/security_solution -g owner --collapse-depth 4
Collapsed Grouping
Groups the results under a higher-level owner (e.g., security_solution
as a single group).
bash scripts/dependency_usage.sh -p x-pack/solutions/security/plugins/security_solution -g owner --collapse-depth 1
Explanation:
-p x-pack/solutions/security/plugins/security_solution
: Specifies the directory to scan.-g owner
: Groups results by code owner.--collapse-depth
: Defines the depth for grouping, where higher numbers show more granular subteams.- Output: Lists dependencies grouped by code owner at different levels of depth based on the
--collapse-depth
value.
5. Show dependencies matching a pattern
Search for dependencies that match a specific pattern (such as react-*
) within a package and output the results to a specified file.
bash scripts/dependency_usage.sh -p <path_to_directory> -d '<pattern>' -o <output_file>
Example:
bash scripts/dependency_usage.sh -d 'react-*' -p x-pack/solutions/security/plugins/security_solution -o ./tmp/results.json
-p x-pack/solutions/security/plugins/security_solution
: Specifies the directory or package to search within.-d 'react-*'
: Searches for dependencies that match the patternreact-*
.-o ./tmp/results.json
: Outputs the results to a specified file (results.json
in the./tmp
directory).- Output: Saves a list of all dependencies matching
react-*
inx-pack/solutions/security/plugins/security_solution
to./tmp/results.json
.
6. Verbose flag to debug dependency graph issues
Enable verbose mode to log additional details for debugging dependency graphs. This includes generating a non-aggregated dependency graph in .dependency-graph-log.json
.
bash scripts/dependency_usage.sh -p <path_to_directory> -o <output_file> -v
Example:
bash scripts/dependency_usage.sh -p x-pack/solutions/security/plugins/security_solution -o ./tmp/results.json
-p x-pack/solutions/security/plugins/security_solution
: Specifies the target directory or package to analyze.-o ./tmp/results.json
: Saves the output to theresults.json
file in the./tmp
directory.-v
: Enables verbose mode.
Output: Saves a list of all dependencies in x-pack/solutions/security/plugins/security_solution
to ./tmp/results.json
. Additionally, it logs a detailed, non aggregated dependency graph to .dependency-graph-log.json
for debugging purposes.
For further information on additional flags and options, refer to the script's help command.