Commit graph

3 commits

Author SHA1 Message Date
Gerard Soldevila
58c8aff91c
[8.x] Sustainable Kibana Architecture: Categorise straightforward packages (#199630) (#201340)
# Backport

This will backport the following commits from `main` to `8.x`:
- [Sustainable Kibana Architecture: Categorise `straightforward`
packages (#199630)](https://github.com/elastic/kibana/pull/199630)

<!--- 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-11-22T09:33:25Z","message":"Sustainable
Kibana Architecture: Categorise `straightforward` packages
(#199630)\n\n## Summary\r\n\r\nThis PR is part of the Kibana Sustainable
Architecture effort.\r\n\r\nThe goal is to start categorising Kibana
packages into _generic\r\nplatform_ (`group: \"platform\"`) vs
_solution-specific_.\r\n\r\n```\r\ngroup?: 'search' | 'security' |
'observability' | 'platform'\r\nvisibility?: 'private' |
'shared'\r\n```\r\nUncategorised modules are considered to be `group:
'common', visibility:\r\n'shared'` by default.\r\n\r\nWe want to prevent
code from solution A to depend on code from solution\r\nB.\r\nThus, the
rules are pretty simple:\r\n\r\n* Modules can only depend on:\r\n *
Modules in the same group\r\n * OR modules with 'shared' visibility\r\n*
Modules in `'observability', 'security', 'search'` groups
are\r\nmandatorily `visibility: \"private\"`.\r\n\r\nLong term, the goal
is to re-organise packages into dedicated
folders,\r\ne.g.:\r\n\r\n```\r\nx-pack/platform/plugins/private\r\nx-pack/observability/packages\r\n```\r\n\r\nFor
this first wave, we have categorised packages that
seem\r\n\"straightforward\":\r\n* Any packages that have:\r\n * at least
one dependant module\r\n * all dependants belong to the same group\r\n*
Categorise all Core packages:\r\n * `@kbn/core-...-internal` =>
_platform/private_\r\n * everything else => _platform/shared_\r\n*
Categorise as _platform/shared_ those packages that:\r\n * Have at least
one dependant in the _platform_ group.\r\n * Don't have any `devOnly:
true` dependants.\r\n\r\n### What we ask from you, as CODEOWNERS of the
_package manifests_, is\r\nthat you confirm that the categorisation is
correct:\r\n\r\n* `group: \"platform\", visibility: \"private\"` if it's
a package that\r\nshould only be used from platform code, not from any
solution code. It\r\nwill be loaded systematically in all serverless
flavors, but solution\r\nplugins and packages won't be able to `import`
from it.\r\n* `group: \"platform\", visibility: \"shared\"` if it's a
package that can\r\nbe consumed by both platform and solutions code. It
will be loaded\r\nsystematically in all serverless flavors, and anybody
can import / use\r\ncode from it.\r\n* `group: \"observability\" |
\"security\" | \"search\", visibility:\r\n\"private\"` if it's a package
that is intented to be used exclusively\r\nfrom a given solution. It
won't be accessible nor loaded from other\r\nsolutions nor platform
code.\r\n\r\nPlease refer
to\r\n[#kibana-sustainable-architecture](https://elastic.slack.com/archives/C07TCKTA22E)\r\nfor
any related questions.\r\n\r\n---------\r\n\r\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"b24fdf5d3f6b7454a4edcedb8141b82f571e1d74","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","release_note:skip","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-infra_services"],"number":199630,"url":"https://github.com/elastic/kibana/pull/199630","mergeCommit":{"message":"Sustainable
Kibana Architecture: Categorise `straightforward` packages
(#199630)\n\n## Summary\r\n\r\nThis PR is part of the Kibana Sustainable
Architecture effort.\r\n\r\nThe goal is to start categorising Kibana
packages into _generic\r\nplatform_ (`group: \"platform\"`) vs
_solution-specific_.\r\n\r\n```\r\ngroup?: 'search' | 'security' |
'observability' | 'platform'\r\nvisibility?: 'private' |
'shared'\r\n```\r\nUncategorised modules are considered to be `group:
'common', visibility:\r\n'shared'` by default.\r\n\r\nWe want to prevent
code from solution A to depend on code from solution\r\nB.\r\nThus, the
rules are pretty simple:\r\n\r\n* Modules can only depend on:\r\n *
Modules in the same group\r\n * OR modules with 'shared' visibility\r\n*
Modules in `'observability', 'security', 'search'` groups
are\r\nmandatorily `visibility: \"private\"`.\r\n\r\nLong term, the goal
is to re-organise packages into dedicated
folders,\r\ne.g.:\r\n\r\n```\r\nx-pack/platform/plugins/private\r\nx-pack/observability/packages\r\n```\r\n\r\nFor
this first wave, we have categorised packages that
seem\r\n\"straightforward\":\r\n* Any packages that have:\r\n * at least
one dependant module\r\n * all dependants belong to the same group\r\n*
Categorise all Core packages:\r\n * `@kbn/core-...-internal` =>
_platform/private_\r\n * everything else => _platform/shared_\r\n*
Categorise as _platform/shared_ those packages that:\r\n * Have at least
one dependant in the _platform_ group.\r\n * Don't have any `devOnly:
true` dependants.\r\n\r\n### What we ask from you, as CODEOWNERS of the
_package manifests_, is\r\nthat you confirm that the categorisation is
correct:\r\n\r\n* `group: \"platform\", visibility: \"private\"` if it's
a package that\r\nshould only be used from platform code, not from any
solution code. It\r\nwill be loaded systematically in all serverless
flavors, but solution\r\nplugins and packages won't be able to `import`
from it.\r\n* `group: \"platform\", visibility: \"shared\"` if it's a
package that can\r\nbe consumed by both platform and solutions code. It
will be loaded\r\nsystematically in all serverless flavors, and anybody
can import / use\r\ncode from it.\r\n* `group: \"observability\" |
\"security\" | \"search\", visibility:\r\n\"private\"` if it's a package
that is intented to be used exclusively\r\nfrom a given solution. It
won't be accessible nor loaded from other\r\nsolutions nor platform
code.\r\n\r\nPlease refer
to\r\n[#kibana-sustainable-architecture](https://elastic.slack.com/archives/C07TCKTA22E)\r\nfor
any related questions.\r\n\r\n---------\r\n\r\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"b24fdf5d3f6b7454a4edcedb8141b82f571e1d74"}},"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/199630","number":199630,"mergeCommit":{"message":"Sustainable
Kibana Architecture: Categorise `straightforward` packages
(#199630)\n\n## Summary\r\n\r\nThis PR is part of the Kibana Sustainable
Architecture effort.\r\n\r\nThe goal is to start categorising Kibana
packages into _generic\r\nplatform_ (`group: \"platform\"`) vs
_solution-specific_.\r\n\r\n```\r\ngroup?: 'search' | 'security' |
'observability' | 'platform'\r\nvisibility?: 'private' |
'shared'\r\n```\r\nUncategorised modules are considered to be `group:
'common', visibility:\r\n'shared'` by default.\r\n\r\nWe want to prevent
code from solution A to depend on code from solution\r\nB.\r\nThus, the
rules are pretty simple:\r\n\r\n* Modules can only depend on:\r\n *
Modules in the same group\r\n * OR modules with 'shared' visibility\r\n*
Modules in `'observability', 'security', 'search'` groups
are\r\nmandatorily `visibility: \"private\"`.\r\n\r\nLong term, the goal
is to re-organise packages into dedicated
folders,\r\ne.g.:\r\n\r\n```\r\nx-pack/platform/plugins/private\r\nx-pack/observability/packages\r\n```\r\n\r\nFor
this first wave, we have categorised packages that
seem\r\n\"straightforward\":\r\n* Any packages that have:\r\n * at least
one dependant module\r\n * all dependants belong to the same group\r\n*
Categorise all Core packages:\r\n * `@kbn/core-...-internal` =>
_platform/private_\r\n * everything else => _platform/shared_\r\n*
Categorise as _platform/shared_ those packages that:\r\n * Have at least
one dependant in the _platform_ group.\r\n * Don't have any `devOnly:
true` dependants.\r\n\r\n### What we ask from you, as CODEOWNERS of the
_package manifests_, is\r\nthat you confirm that the categorisation is
correct:\r\n\r\n* `group: \"platform\", visibility: \"private\"` if it's
a package that\r\nshould only be used from platform code, not from any
solution code. It\r\nwill be loaded systematically in all serverless
flavors, but solution\r\nplugins and packages won't be able to `import`
from it.\r\n* `group: \"platform\", visibility: \"shared\"` if it's a
package that can\r\nbe consumed by both platform and solutions code. It
will be loaded\r\nsystematically in all serverless flavors, and anybody
can import / use\r\ncode from it.\r\n* `group: \"observability\" |
\"security\" | \"search\", visibility:\r\n\"private\"` if it's a package
that is intented to be used exclusively\r\nfrom a given solution. It
won't be accessible nor loaded from other\r\nsolutions nor platform
code.\r\n\r\nPlease refer
to\r\n[#kibana-sustainable-architecture](https://elastic.slack.com/archives/C07TCKTA22E)\r\nfor
any related questions.\r\n\r\n---------\r\n\r\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"b24fdf5d3f6b7454a4edcedb8141b82f571e1d74"}}]}]
BACKPORT-->
2024-11-22 09:47:23 -06:00
Luke Elmers
b6287708f6
Adds AGPL 3.0 license (#192025)
Updates files outside of x-pack to be triple-licensed under Elastic
License 2.0, AGPL 3.0, or SSPL 1.0.
2024-09-06 19:02:41 -06:00
Tiago Costa
1cbf83f73c
chore(NA): remove src folder requirement from packages (part 2) (#138476)
* refact(NA): apply root_input_dir=src to each already created pkg

* refact(NA): update package generator

* fix(NA): correctly use rootDir

* fix(NA): use root input dir on latest introduced pkgs for jsts_transpiler macro

* chore(NA): merge with main

* chore(NA): first attempt to complete removal of src folder on a small group of pkgs

* Revert "chore(NA): first attempt to complete removal of src folder on a small group of pkgs"

This reverts commit b6f34b7530.

* chore(NA): remove src folder requirement from xpack pkgs

* chore(NA): remove src folder from analytics pkgs

* chore(NA): remove src folder from home pkgs

* chore(NA): remove src folder from shared_ux pkgs

* fix(NA): remove missing src folder inputs on sharedux pkg

* chore(NA): remove src folder from kbn-a* pkgs

* chore(NA): remove src folder from kbn-b* pkgs

* chore(NA): remove src folder from kbn-c* pkgs

* chore(NA): correct exclude pattern for each changed pkg

* chore(NA): remove src folder from kbn-y* pkgs

* chore(NA): remove src folder from kbn-e* pkgs

* chore(NA): remove src folder from kbn-f* and kbn-g* pkgs

* chore(NA): remove src folder from kbn-f* and kbn-g* pkgs

* chore(NA): remove src folder from kbn-h** pkgs

* [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'

* Revert "chore(NA): remove src folder from kbn-h** pkgs"

This reverts commit dcdf72bcc1.

* fix(NA): grammar location

* test(NA): fix tests for kbn/config-schema

* test(NA): fix tests for kbn/config-schema

* chore(NA): multiple errors fixed

* chore(NA): remove kuery grammar fix

* fix(NA): @kbn/ace imports

* fix(NA): grammar location

* fix(NA): add missing files to tsconfigs

* [CI] Auto-commit changed files from 'node scripts/build_plugin_list_docs'

* chore(NA): complete tsconfigs

* Revert "chore(NA): complete tsconfigs"

This reverts commit f48c616864.

* chore(NA): remove src folder from kbn-core* pkgs

* chore(NA): remove src folder from kbn-u* pkgs

* chore(NA): remove src folder from kbn-ui-shared-deps* pkgs

* chore(NA): fix problems on core pkgs

* chore(NA): fix problems on core pkgs

* [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'

* fix(NA): shared_built_assets correct location'

* test(NA): update @kbn/optimizer integration snapshots

* chore(NA): remove src folder from kbn-t* p1 pkgs

* chore(NA): remove src folder from kbn-t* p2 pkgs

* chore(NA): update rootDir on utility types pkg

* chore(NA): include missing files on @kbn/test

* chore(NA): include missing files on @kbn/test

* fix(NA): new jest preset paths on @kbn/test

* chore(NA): fix eslint

* fix(NA): new jest preset paths on @kbn/test

* chore(NA): remove exclusion for mocks folde on @kbn/test

* fix(NA): several imports from target_node

* fix(NA): @kbn/test mocha and jest types clash

* chore(NA): remove src folder from kbn-storybook pkg

* chore(NA): remove src folder from kbn-stdio-dev-helpers pkg

* chore(NA): remove src folder from kbn-std pkg

* chore(NA): remove src folder from kbn-sort-pkg-json pkg

* chore(NA): remove src folder from kbn-some-dev-log and kbn-shared-ux-utility pkgs

* chore(NA): remove src folder from kbn-ux-storybook pkg

* chore(NA): remove src folder from kbn-shared-ux-services pkg

* chore(NA): remove src folder from kbn-shared-ux-components pkg

* chore(NA): remove src folder from kbn-shared-svg pkg

* chore(NA): remove src folder from kbn-server-http-tools pkg

* chore(NA): remove src folder from kbn-securitysolution-* pkgs

* chore(NA): remove src folder from kbn-r-* pkgs

* chore(NA): remove src folder from kbn-p* pkgs

* chore(NA): remove src folder from kbn-o* pkgs

* chore(NA): remove src folder from kbn-m* pkgs

* chore(NA): remove src folder from kbn-j,k,l* pkgs

* chore(NA): remove src folder from kbn-j,k,l* pkgs

* chore(NA): remove src folder from kbn-io-ts-utils* pkgs

* chore(NA): remove src folder from kbn-* pkgs except a few

* chore(NA): update @kbn/generate

* fix(NA): wrong exclusion on kbn-storybook

* chore(NA): remove src folder from kbn-monaco pkg

* chore(NA): remove src folder from kbn-interpreter pkg

* fix(NA): wrong exclusion on kbn-storybook

* chore(NA): update every require for target_*/src

* chore(NA): remover src folder from @kbn/handlebars

* fix(NA): license for @kbn/handlebars

* chore(NA): copy templates as part of the jsts_transpiler macro for @kbn/storybook

* chore(NA): update handlebars

* fix(NA): @kbn/plugin-generator import paths

* fix(NA): bundle sizes

* fix(NA): web bundle for @kbn/i18n-react

* Revert "fix(NA): bundle sizes"

This reverts commit 8aefe84fbc.

* Revert "Revert "fix(NA): bundle sizes""

This reverts commit e9d87d72a4.

* fix(NA): @kbn/docs-utils index.ts path expectation

* chore(NA): merge and solve conflicts with main

* fix(NA): relative import to index

* chore(NA): merge and solve conflicts with main

* [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

* chore(NA): apply eslint fix

* [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2022-08-30 15:57:35 +01:00