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

Add ESLINT constraints to detect inter-group dependencies #194810

Merged
merged 13 commits into from
Oct 22, 2024

Conversation

gsoldevila
Copy link
Contributor

@gsoldevila gsoldevila commented Oct 3, 2024

Summary

Addresses https://github.com/elastic/kibana-team/issues/1175

As part of the Sustainable Kibana Architecture initiative, this PR sets the foundation to start classifying plugins in isolated groups, matching our current solutions / project types:

  • It adds support for the following fields in the packages' manifests (kibana.jsonc):

    • group?: 'search' | 'security' | 'observability' | 'platform' | 'common'
    • visibility?: 'private' | 'shared'
  • It proposes a folder structure to automatically infer groups:

  'src/platform/plugins/shared': {
    group: 'platform',
    visibility: 'shared',
  },
  'src/platform/plugins/internal': {
    group: 'platform',
    visibility: 'private',
  },
  'x-pack/platform/plugins/shared': {
    group: 'platform',
    visibility: 'shared',
  },
  'x-pack/platform/plugins/internal': {
    group: 'platform',
    visibility: 'private',
  },
  'x-pack/solutions/observability/plugins': {
    group: 'observability',
    visibility: 'private',
  },
  'x-pack/solutions/security/plugins': {
    group: 'security',
    visibility: 'private',
  },
  'x-pack/solutions/search/plugins': {
    group: 'search',
    visibility: 'private',
  },
  • If a plugin is moved to one of the specific locations above, the group and visibility in the manifest (if specified) must match those inferred from the path.
  • Plugins that are not relocated are considered: group: 'common', visibility: 'shared' by default. As soon as we specify a custom group, the ESLINT rules will check violations against dependencies / dependants.

The ESLINT rules are pretty simple:

  • Plugins can only depend on:
    • Plugins in the same group
    • OR plugins with 'shared' visibility
  • Plugins in 'observability', 'security', 'search' groups are mandatorily 'private'.

@gsoldevila gsoldevila added Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc release_note:feature Makes this part of the condensed release notes backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) labels Oct 3, 2024
@gsoldevila gsoldevila requested a review from a team October 3, 2024 10:38
@kibana-ci
Copy link
Collaborator

kibana-ci commented Oct 7, 2024

💔 Build Failed

Failed CI Steps

History

  • 💔 Build #239936 failed 874b5fd64b3a910007412ea6daa1691ac4938b9c
  • 💔 Build #239483 failed 68e20f4e03d63d8607a1e047f239a2f93072fb69
  • 💔 Build #239137 failed 68e20f4e03d63d8607a1e047f239a2f93072fb69
  • 💔 Build #239054 failed e58b22ac5a78c26244309507327a9a837ac9b888

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-core (Team:Core)

@gsoldevila gsoldevila changed the title Add ESLINT constraints to prevent inter-group dependencies Add ESLINT constraints to detect inter-group dependencies Oct 11, 2024
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Unknown metric groups

API count

id before after diff
@kbn/manifest - 1 +1

History

  • 💔 Build #241439 failed 39a9f3e7d56bbf68c2b6bdc9b1bdac7c2460dd69
  • 💔 Build #241197 failed 199786b294b1334e84478c82754eefe91db96ce6
  • 💚 Build #240814 succeeded 667aa3b1bb776eb2975e941828c047211229a2ec
  • 💚 Build #240131 succeeded 107e604735015bec29b69f98203543e509174376

Copy link
Contributor

@Ikuni17 Ikuni17 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mind adding some tests?

packages/kbn-eslint-config/.eslintrc.js Outdated Show resolved Hide resolved
packages/kbn-manifest/README.md Outdated Show resolved Hide resolved
packages/kbn-manifest/README.md Outdated Show resolved Hide resolved
Copy link
Contributor

@jloleysens jloleysens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks great @gsoldevila , I tested locally focussing mainly on the end DX and the changes LGTM! I tested by setting this in cases kibana.jsonc and importing from elsewhere:

diff --git a/x-pack/plugins/cases/kibana.jsonc b/x-pack/plugins/cases/kibana.jsonc
index 300b1ee4c2c..0b47b80f625 100644
--- a/x-pack/plugins/cases/kibana.jsonc
+++ b/x-pack/plugins/cases/kibana.jsonc
@@ -3,6 +3,8 @@
   "id": "@kbn/cases-plugin",
   "owner": "@elastic/response-ops",
   "description": "The Case management system in Kibana",
+  "group": "observability",
+  "visibility": "public",
   "plugin": {
     "id": "cases",
     "server": true,

And after restarting extensions I got:

Screenshot 2024-10-16 at 13 36 16

What do you think about introducing the new group: ModuleGroup and visibility: ModuleVisibility value to the packages/kbn-kibana-manifest-schema/src/kibana_json_v2_schema.ts so that VS code can autocomplete it?

sourcePath: relativePath,
suggestion: formatSuggestions([
`Please review the dependencies in your module's manifest (kibana.jsonc).`,
`Relocate this module to a different group, and/or make sure it has the right 'visibility'.`,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reading this warning: if you're importing from something that is private I'm not sure moving "this" module will solve the import restriction? Unless we move it to the private module?

Copy link
Contributor Author

@gsoldevila gsoldevila Oct 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I was thinking moving this module to the same group as the one it depends on, as one possible option, but perhaps there's better wording for that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not quite sure I understand how to test this one. Mind providing an example?

Copy link
Contributor Author

@gsoldevila gsoldevila Oct 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically, if you plugin manifest has an illegal dependency, your export function plugin() as well as your setup() and start() hooks will complain.

@gsoldevila
Copy link
Contributor Author

What do you think about introducing the new group: ModuleGroup and visibility: ModuleVisibility value to the packages/kbn-kibana-manifest-schema/src/kibana_json_v2_schema.ts so that VS code can autocomplete it?

That sounds like a very good idea, was not knowledgeable about this part!

@gsoldevila gsoldevila force-pushed the kbn-team-1066-eslint-restrictions branch from 4870c55 to 79c2ef1 Compare October 17, 2024 10:34
@gsoldevila gsoldevila enabled auto-merge (squash) October 22, 2024 08:26
@gsoldevila gsoldevila merged commit 2a085e1 into elastic:main Oct 22, 2024
37 checks passed
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/11459301334

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
@kbn/kibana-manifest-schema 107 115 +8
Unknown metric groups

API count

id before after diff
@kbn/kibana-manifest-schema 108 116 +8
@kbn/manifest - 1 +1
total +9

History

@kibanamachine
Copy link
Contributor

💔 All backports failed

Status Branch Result
8.x Backport failed because of merge conflicts

Manual backport

To create the backport manually run:

node scripts/backport --pr 194810

Questions ?

Please refer to the Backport tool documentation

@kibanamachine kibanamachine added the backport missing Added to PRs automatically when the are determined to be missing a backport. label Oct 23, 2024
@kibanamachine
Copy link
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 194810 locally

@kibanamachine
Copy link
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 194810 locally

gsoldevila added a commit to gsoldevila/kibana that referenced this pull request Oct 24, 2024
…4810)

## Summary

Addresses elastic/kibana-team#1175

As part of the **Sustainable Kibana Architecture** initiative, this PR
sets the foundation to start classifying plugins in isolated groups,
matching our current solutions / project types:

* It adds support for the following fields in the packages' manifests
(kibana.jsonc):
* `group?: 'search' | 'security' | 'observability' | 'platform' |
'common'`
  * `visibility?: 'private' | 'shared'`

* It proposes a folder structure to automatically infer groups:
```javascript
  'src/platform/plugins/shared': {
    group: 'platform',
    visibility: 'shared',
  },
  'src/platform/plugins/internal': {
    group: 'platform',
    visibility: 'private',
  },
  'x-pack/platform/plugins/shared': {
    group: 'platform',
    visibility: 'shared',
  },
  'x-pack/platform/plugins/internal': {
    group: 'platform',
    visibility: 'private',
  },
  'x-pack/solutions/observability/plugins': {
    group: 'observability',
    visibility: 'private',
  },
  'x-pack/solutions/security/plugins': {
    group: 'security',
    visibility: 'private',
  },
  'x-pack/solutions/search/plugins': {
    group: 'search',
    visibility: 'private',
  },
```

* If a plugin is moved to one of the specific locations above, the group
and visibility in the manifest (if specified) must match those inferred
from the path.
* Plugins that are not relocated are considered: `group: 'common',
visibility: 'shared'` by default. As soon as we specify a custom
`group`, the ESLINT rules will check violations against dependencies /
dependants.

The ESLINT rules are pretty simple:
* Plugins can only depend on:
  * Plugins in the same group
  * OR plugins with `'shared'` visibility
* Plugins in `'observability', 'security', 'search'` groups are
mandatorily `'private'`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit 2a085e1)

# Conflicts:
#	.github/CODEOWNERS
#	packages/kbn-eslint-config/.eslintrc.js
@gsoldevila
Copy link
Contributor Author

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

gsoldevila added a commit that referenced this pull request Oct 24, 2024
) (#197670)

# Backport

This will backport the following commits from `main` to `8.x`:
- [Add ESLINT constraints to detect inter-group dependencies
(#194810)](#194810)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Gerard
Soldevila","email":"gerard.soldevila@elastic.co"},"sourceCommit":{"committedDate":"2024-10-22T11:34:19Z","message":"Add
ESLINT constraints to detect inter-group dependencies (#194810)\n\n##
Summary\r\n\r\nAddresses
https://github.com/elastic/kibana-team/issues/1175\r\n\r\nAs part of the
**Sustainable Kibana Architecture** initiative, this PR\r\nsets the
foundation to start classifying plugins in isolated groups,\r\nmatching
our current solutions / project types:\r\n\r\n* It adds support for the
following fields in the packages' manifests\r\n(kibana.jsonc):\r\n*
`group?: 'search' | 'security' | 'observability' | 'platform'
|\r\n'common'`\r\n * `visibility?: 'private' | 'shared'`\r\n\r\n* It
proposes a folder structure to automatically infer
groups:\r\n```javascript\r\n 'src/platform/plugins/shared': {\r\n group:
'platform',\r\n visibility: 'shared',\r\n },\r\n
'src/platform/plugins/internal': {\r\n group: 'platform',\r\n
visibility: 'private',\r\n },\r\n 'x-pack/platform/plugins/shared':
{\r\n group: 'platform',\r\n visibility: 'shared',\r\n },\r\n
'x-pack/platform/plugins/internal': {\r\n group: 'platform',\r\n
visibility: 'private',\r\n },\r\n
'x-pack/solutions/observability/plugins': {\r\n group:
'observability',\r\n visibility: 'private',\r\n },\r\n
'x-pack/solutions/security/plugins': {\r\n group: 'security',\r\n
visibility: 'private',\r\n },\r\n 'x-pack/solutions/search/plugins':
{\r\n group: 'search',\r\n visibility: 'private',\r\n },\r\n```\r\n\r\n*
If a plugin is moved to one of the specific locations above, the
group\r\nand visibility in the manifest (if specified) must match those
inferred\r\nfrom the path.\r\n* Plugins that are not relocated are
considered: `group: 'common',\r\nvisibility: 'shared'` by default. As
soon as we specify a custom\r\n`group`, the ESLINT rules will check
violations against dependencies /\r\ndependants.\r\n\r\nThe ESLINT rules
are pretty simple:\r\n* Plugins can only depend on:\r\n * Plugins in the
same group\r\n * OR plugins with `'shared'` visibility\r\n* Plugins in
`'observability', 'security', 'search'` groups are\r\nmandatorily
`'private'`.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2a085e103afe8c7bdfb626d0dc683fc8be0e6c05","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","backport
missing","v9.0.0","release_note:feature","backport:prev-minor"],"number":194810,"url":"https://github.com/elastic/kibana/pull/194810","mergeCommit":{"message":"Add
ESLINT constraints to detect inter-group dependencies (#194810)\n\n##
Summary\r\n\r\nAddresses
https://github.com/elastic/kibana-team/issues/1175\r\n\r\nAs part of the
**Sustainable Kibana Architecture** initiative, this PR\r\nsets the
foundation to start classifying plugins in isolated groups,\r\nmatching
our current solutions / project types:\r\n\r\n* It adds support for the
following fields in the packages' manifests\r\n(kibana.jsonc):\r\n*
`group?: 'search' | 'security' | 'observability' | 'platform'
|\r\n'common'`\r\n * `visibility?: 'private' | 'shared'`\r\n\r\n* It
proposes a folder structure to automatically infer
groups:\r\n```javascript\r\n 'src/platform/plugins/shared': {\r\n group:
'platform',\r\n visibility: 'shared',\r\n },\r\n
'src/platform/plugins/internal': {\r\n group: 'platform',\r\n
visibility: 'private',\r\n },\r\n 'x-pack/platform/plugins/shared':
{\r\n group: 'platform',\r\n visibility: 'shared',\r\n },\r\n
'x-pack/platform/plugins/internal': {\r\n group: 'platform',\r\n
visibility: 'private',\r\n },\r\n
'x-pack/solutions/observability/plugins': {\r\n group:
'observability',\r\n visibility: 'private',\r\n },\r\n
'x-pack/solutions/security/plugins': {\r\n group: 'security',\r\n
visibility: 'private',\r\n },\r\n 'x-pack/solutions/search/plugins':
{\r\n group: 'search',\r\n visibility: 'private',\r\n },\r\n```\r\n\r\n*
If a plugin is moved to one of the specific locations above, the
group\r\nand visibility in the manifest (if specified) must match those
inferred\r\nfrom the path.\r\n* Plugins that are not relocated are
considered: `group: 'common',\r\nvisibility: 'shared'` by default. As
soon as we specify a custom\r\n`group`, the ESLINT rules will check
violations against dependencies /\r\ndependants.\r\n\r\nThe ESLINT rules
are pretty simple:\r\n* Plugins can only depend on:\r\n * Plugins in the
same group\r\n * OR plugins with `'shared'` visibility\r\n* Plugins in
`'observability', 'security', 'search'` groups are\r\nmandatorily
`'private'`.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2a085e103afe8c7bdfb626d0dc683fc8be0e6c05"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/194810","number":194810,"mergeCommit":{"message":"Add
ESLINT constraints to detect inter-group dependencies (#194810)\n\n##
Summary\r\n\r\nAddresses
https://github.com/elastic/kibana-team/issues/1175\r\n\r\nAs part of the
**Sustainable Kibana Architecture** initiative, this PR\r\nsets the
foundation to start classifying plugins in isolated groups,\r\nmatching
our current solutions / project types:\r\n\r\n* It adds support for the
following fields in the packages' manifests\r\n(kibana.jsonc):\r\n*
`group?: 'search' | 'security' | 'observability' | 'platform'
|\r\n'common'`\r\n * `visibility?: 'private' | 'shared'`\r\n\r\n* It
proposes a folder structure to automatically infer
groups:\r\n```javascript\r\n 'src/platform/plugins/shared': {\r\n group:
'platform',\r\n visibility: 'shared',\r\n },\r\n
'src/platform/plugins/internal': {\r\n group: 'platform',\r\n
visibility: 'private',\r\n },\r\n 'x-pack/platform/plugins/shared':
{\r\n group: 'platform',\r\n visibility: 'shared',\r\n },\r\n
'x-pack/platform/plugins/internal': {\r\n group: 'platform',\r\n
visibility: 'private',\r\n },\r\n
'x-pack/solutions/observability/plugins': {\r\n group:
'observability',\r\n visibility: 'private',\r\n },\r\n
'x-pack/solutions/security/plugins': {\r\n group: 'security',\r\n
visibility: 'private',\r\n },\r\n 'x-pack/solutions/search/plugins':
{\r\n group: 'search',\r\n visibility: 'private',\r\n },\r\n```\r\n\r\n*
If a plugin is moved to one of the specific locations above, the
group\r\nand visibility in the manifest (if specified) must match those
inferred\r\nfrom the path.\r\n* Plugins that are not relocated are
considered: `group: 'common',\r\nvisibility: 'shared'` by default. As
soon as we specify a custom\r\n`group`, the ESLINT rules will check
violations against dependencies /\r\ndependants.\r\n\r\nThe ESLINT rules
are pretty simple:\r\n* Plugins can only depend on:\r\n * Plugins in the
same group\r\n * OR plugins with `'shared'` visibility\r\n* Plugins in
`'observability', 'security', 'search'` groups are\r\nmandatorily
`'private'`.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"2a085e103afe8c7bdfb626d0dc683fc8be0e6c05"}}]}]
BACKPORT-->
@kibanamachine kibanamachine added v8.17.0 and removed backport missing Added to PRs automatically when the are determined to be missing a backport. labels Oct 24, 2024
gsoldevila added a commit that referenced this pull request Oct 25, 2024
## Summary

Follow-up of #195367
As part of the Sustainable Kibana Architecture initiative, this PR
leverages the mechanisms and concepts introduced in
#194810, updating plugins that
were considered to be solution-specific in Luke's
[PoC](#179710).

This might trigger linting rule violations in CI, and help uncover
conflicts related to forbidden dependencies.
As soon as they are resolved, we can proceed to classify solutions'
plugins.
gsoldevila added a commit to gsoldevila/kibana that referenced this pull request Nov 7, 2024
…95375)

## Summary

Follow-up of elastic#195367
As part of the Sustainable Kibana Architecture initiative, this PR
leverages the mechanisms and concepts introduced in
elastic#194810, updating plugins that
were considered to be solution-specific in Luke's
[PoC](elastic#179710).

This might trigger linting rule violations in CI, and help uncover
conflicts related to forbidden dependencies.
As soon as they are resolved, we can proceed to classify solutions'
plugins.

(cherry picked from commit a5517d9)

# Conflicts:
#	src/plugins/maps_ems/kibana.jsonc
#	x-pack/plugins/file_upload/kibana.jsonc
#	x-pack/plugins/maps/kibana.jsonc
gsoldevila added a commit to gsoldevila/kibana that referenced this pull request Nov 7, 2024
…95375)

## Summary

Follow-up of elastic#195367
As part of the Sustainable Kibana Architecture initiative, this PR
leverages the mechanisms and concepts introduced in
elastic#194810, updating plugins that
were considered to be solution-specific in Luke's
[PoC](elastic#179710).

This might trigger linting rule violations in CI, and help uncover
conflicts related to forbidden dependencies.
As soon as they are resolved, we can proceed to classify solutions'
plugins.

(cherry picked from commit a5517d9)

# Conflicts:
#	src/plugins/maps_ems/kibana.jsonc
#	x-pack/plugins/file_upload/kibana.jsonc
#	x-pack/plugins/maps/kibana.jsonc
gsoldevila added a commit that referenced this pull request Nov 8, 2024
…5375) (#199268)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Sustainable Kibana Architecture] Update plugins (wave #1)
(#195375)](#195375)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Gerard
Soldevila","email":"gerard.soldevila@elastic.co"},"sourceCommit":{"committedDate":"2024-10-25T14:05:27Z","message":"[Sustainable
Kibana Architecture] Update plugins (wave #1) (#195375)\n\n##
Summary\r\n\r\nFollow-up of
https://github.com/elastic/kibana/pull/195367\r\nAs part of the
Sustainable Kibana Architecture initiative, this PR\r\nleverages the
mechanisms and concepts introduced
in\r\nhttps://github.com//pull/194810, updating plugins
that\r\nwere considered to be solution-specific in
Luke's\r\n[PoC](https://github.com/elastic/kibana/pull/179710).\r\n\r\nThis
might trigger linting rule violations in CI, and help
uncover\r\nconflicts related to forbidden dependencies.\r\nAs soon as
they are resolved, we can proceed to classify
solutions'\r\nplugins.","sha":"a5517d9d2cf38369fc46ea9622ce36c768436aad","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","Feature:Embedding","Feature:ExpressionLanguage","release_note:skip","Feature:Drilldowns","Team:Fleet","v9.0.0","backport:prev-minor","Team:Obs
AI
Assistant","ci:project-deploy-observability","Team:obs-ux-infra_services","Team:obs-ux-management"],"number":195375,"url":"https://github.com/elastic/kibana/pull/195375","mergeCommit":{"message":"[Sustainable
Kibana Architecture] Update plugins (wave #1) (#195375)\n\n##
Summary\r\n\r\nFollow-up of
https://github.com/elastic/kibana/pull/195367\r\nAs part of the
Sustainable Kibana Architecture initiative, this PR\r\nleverages the
mechanisms and concepts introduced
in\r\nhttps://github.com//pull/194810, updating plugins
that\r\nwere considered to be solution-specific in
Luke's\r\n[PoC](https://github.com/elastic/kibana/pull/179710).\r\n\r\nThis
might trigger linting rule violations in CI, and help
uncover\r\nconflicts related to forbidden dependencies.\r\nAs soon as
they are resolved, we can proceed to classify
solutions'\r\nplugins.","sha":"a5517d9d2cf38369fc46ea9622ce36c768436aad"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195375","number":195375,"mergeCommit":{"message":"[Sustainable
Kibana Architecture] Update plugins (wave #1) (#195375)\n\n##
Summary\r\n\r\nFollow-up of
https://github.com/elastic/kibana/pull/195367\r\nAs part of the
Sustainable Kibana Architecture initiative, this PR\r\nleverages the
mechanisms and concepts introduced
in\r\nhttps://github.com//pull/194810, updating plugins
that\r\nwere considered to be solution-specific in
Luke's\r\n[PoC](https://github.com/elastic/kibana/pull/179710).\r\n\r\nThis
might trigger linting rule violations in CI, and help
uncover\r\nconflicts related to forbidden dependencies.\r\nAs soon as
they are resolved, we can proceed to classify
solutions'\r\nplugins.","sha":"a5517d9d2cf38369fc46ea9622ce36c768436aad"}}]}]
BACKPORT-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) release_note:feature Makes this part of the condensed release notes Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc v8.17.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants