Commit graph

16 commits

Author SHA1 Message Date
Spencer
afb09ccf8a
Transpile packages on demand, validate all TS projects (#146212)
## Dearest Reviewers 👋 

I've been working on this branch with @mistic and @tylersmalley and
we're really confident in these changes. Additionally, this changes code
in nearly every package in the repo so we don't plan to wait for reviews
to get in before merging this. If you'd like to have a concern
addressed, please feel free to leave a review, but assuming that nobody
raises a blocker in the next 24 hours we plan to merge this EOD pacific
tomorrow, 12/22.

We'll be paying close attention to any issues this causes after merging
and work on getting those fixed ASAP. 🚀

---

The operations team is not confident that we'll have the time to achieve
what we originally set out to accomplish by moving to Bazel with the
time and resources we have available. We have also bought ourselves some
headroom with improvements to babel-register, optimizer caching, and
typescript project structure.

In order to make sure we deliver packages as quickly as possible (many
teams really want them), with a usable and familiar developer
experience, this PR removes Bazel for building packages in favor of
using the same JIT transpilation we use for plugins.

Additionally, packages now use `kbn_references` (again, just copying the
dx from plugins to packages).

Because of the complex relationships between packages/plugins and in
order to prepare ourselves for automatic dependency detection tools we
plan to use in the future, this PR also introduces a "TS Project Linter"
which will validate that every tsconfig.json file meets a few
requirements:

1. the chain of base config files extended by each config includes
`tsconfig.base.json` and not `tsconfig.json`
1. the `include` config is used, and not `files`
2. the `exclude` config includes `target/**/*`
3. the `outDir` compiler option is specified as `target/types`
1. none of these compiler options are specified: `declaration`,
`declarationMap`, `emitDeclarationOnly`, `skipLibCheck`, `target`,
`paths`

4. all references to other packages/plugins use their pkg id, ie:
	
	```js
    // valid
    {
      "kbn_references": ["@kbn/core"]
    }
    // not valid
    {
      "kbn_references": [{ "path": "../../../src/core/tsconfig.json" }]
    }
    ```

5. only packages/plugins which are imported somewhere in the ts code are
listed in `kbn_references`

This linter is not only validating all of the tsconfig.json files, but
it also will fix these config files to deal with just about any
violation that can be produced. Just run `node scripts/ts_project_linter
--fix` locally to apply these fixes, or let CI take care of
automatically fixing things and pushing the changes to your PR.

> **Example:** [`64e93e5`
(#146212)](64e93e5806)
When I merged main into my PR it included a change which removed the
`@kbn/core-injected-metadata-browser` package. After resolving the
conflicts I missed a few tsconfig files which included references to the
now removed package. The TS Project Linter identified that these
references were removed from the code and pushed a change to the PR to
remove them from the tsconfig.json files.

## No bazel? Does that mean no packages??
Nope! We're still doing packages but we're pretty sure now that we won't
be using Bazel to accomplish the 'distributed caching' and 'change-based
tasks' portions of the packages project.

This PR actually makes packages much easier to work with and will be
followed up with the bundling benefits described by the original
packages RFC. Then we'll work on documentation and advocacy for using
packages for any and all new code.

We're pretty confident that implementing distributed caching and
change-based tasks will be necessary in the future, but because of
recent improvements in the repo we think we can live without them for
**at least** a year.

## Wait, there are still BUILD.bazel files in the repo
Yes, there are still three webpack bundles which are built by Bazel: the
`@kbn/ui-shared-deps-npm` DLL, `@kbn/ui-shared-deps-src` externals, and
the `@kbn/monaco` workers. These three webpack bundles are still created
during bootstrap and remotely cached using bazel. The next phase of this
project is to figure out how to get the package bundling features
described in the RFC with the current optimizer, and we expect these
bundles to go away then. Until then any package that is used in those
three bundles still needs to have a BUILD.bazel file so that they can be
referenced by the remaining webpack builds.

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2022-12-22 19:00:29 -06:00
Søren Louv-Jansen
9be0c883ed
[APM] Cypress: Enable data streams and refactor runner (#139322) 2022-08-24 21:51:34 +02:00
Søren Louv-Jansen
da908c70fe
[APM] Add -grep-files option to api test runner (#136937) 2022-07-26 14:22:45 +02:00
Giorgos Bamparopoulos
0443b217a4
Fix API test script (#133308)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2022-06-01 18:40:15 +01:00
Søren Louv-Jansen
c1b77b93b6
[APM] Remove mentions of apm_user (#132790) 2022-05-25 12:07:00 +02:00
spalger
3730dd0779 fix all violations 2022-04-16 01:37:30 -05:00
Cauê Marcondes
1bdae99180
[APM] fix error count e2e flaky test (#129755)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2022-04-11 08:19:43 -07:00
Cauê Marcondes
c5af4414e5
[APM] fixing rule anomaly API test (#129527)
* fixing api test

* removing unused code

* removing unused code

* fix

* fix
2022-04-07 07:30:20 +02:00
Cauê Marcondes
4a76b11431
[APM] Transaction Duration Anomaly rule fires alerts for other detector types (#127973)
* adding detector filter

* removing console

* addressing pr comments

* pr changes

* fixing

* reverting

* fixing alerts rules and adding synthtrace sample

* renaming file

* using unit to check dates

* removing console

* removing synthtrace scenario

* api test

* creating api test

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2022-04-01 12:19:59 +02:00
Cauê Marcondes
1e33587b68
[APM] fix cypress (#128411)
* Fix synthtrace, some broken tests

* fixing comparison test

* fixing error count e2e

* fixing error details test

* Fix APM deep links

* Add default environment to /apm/services request in home.spec.ts

* fixing service overview filter test

* Fix accessibility test in transactions overview page

* testing CI

* removing time arg

* removing unused import

* Fix e2e tests for infrastructure feature flag

* fixing and skipping tests

* fixing test

* skipping flaky test

Co-authored-by: Dario Gieselaar <dario.gieselaar@elastic.co>
Co-authored-by: gbamparop <georgios.bamparopoulos@elastic.co>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2022-03-29 12:16:32 -07:00
Giorgos Bamparopoulos
3704642366
Add inspect flag to api test script for debugging (#128275)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2022-03-28 11:27:40 +01:00
Søren Louv-Jansen
434f6e6a88
[APM] Remove index_pattern.json and add custom field formatters (#119915)
* [APM] Remove index_pattern.json and add custom field formatters

* Fix tests

* Fix tests

* Fix tutorial
2021-11-30 19:47:26 +01:00
Søren Louv-Jansen
2e35260012
[APM] E2E script improvements (#116972) 2021-11-04 14:05:54 +00:00
Nathan L Smith
81264f73e9
Re-enable APM E2E tests and allow server to shut down cleanly on failure (#115450)
* Re-enable APM E2E tests and allow server to shut down cleanly on failure

Calling `process.exit` in the test script made it so the FTR runner would not properly shut down the server, and cause other tests to fail because Kibana was left running on a port. Remove that and just throw
instead.

No changes were made to the tests, as I was unable to reproduce any failures locally. I'll try in CI and see if we can get anything to fail.

Fixes #115280.
2021-10-25 14:05:15 -05:00
Søren Louv-Jansen
61e533f253
[APM] Clean up readme (#110973)
* [APM] Clean up readme

* Update linting.md

* Update testing.md

* Update testing.md

* Update testing.md

* Update plugin-list.asciidoc

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-09-05 07:14:06 +02:00
Cauê Marcondes
2fe56f9793
[APM] tests restructure (#110703)
* refactoring test

* improving test structure

* improvements

* improving readmes

* readme

* test

* fixing ts issue

* addressing pr comments

* fixing readme files

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-09-01 16:42:33 -04:00