Alexander.Likhachev
e302420197
[BTA tests] Use arbitrary named versions instead of just numbered ones
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
bc85375a1e
[BTA tests] Provide an optimized way for making exact log line assertions
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
95b832fa8b
[BTA tests] Add createFile overload for versioned source creation
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
f319ff2c3c
[BTA tests] Improve README.md
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
ea3d5371ef
[BTA tests] Add changeFile overload for versioned source modification
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
68cf1bdc57
[BTA tests] Use explicit output assertions instead of implicit ones
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
4facf5ffbc
[BTA tests] Move GlobalCompiledProjectsCache to a separate file
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
99e13318dc
[BTA tests] Allow passing strategy config once to Project instance
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
f634f9dacf
[BTA tests] Get BTA implementation version via the API
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
3f6b5ae86d
[BTA tests] Introduce BaseTest providing CompilationService instance
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
cf8e65b3c5
[BTA tests] Specify TestDataPath/TestMetadata test data navigation
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
b970b87667
[BTA tests] Split compatibility tests and business logic test suits
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
8051fa56f2
[BTA tests] Split test infra and actual tests
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
b5fbb3f925
[BTA tests] Introduce shortcut assertion expectFailWithError
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
16a07e82bc
[BTA tests] Add KDoc to clarify meaning of some symbols
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
60ccdf0e2c
[BTA tests] Add example tests
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
15a24319d5
[BTA tests] Add README.md
...
Also rename `default` to `snapshot` in the test suit names
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
2347f732db
[BTA tests] Rename the compatibility tests annotation
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
2a3cc758cf
[BTA tests] Add a way to customize IC options
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
74e5b4d844
[BTA tests] Make the module scenario DSL cache key explicit
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
3466153668
[BTA tests] Cache compiled modules in scenario DSL tests
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
566d9852a3
[BTA tests] Finish project compilation after a test
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
a234e4149b
[BTA tests] Add scenario DSL for writing typical IC tests
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
7141b4dcbb
[BTA tests] Add base assertions DSL
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
c952d74f7c
[BTA tests] Implement basic infrastructure for compilation tests
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
4afb393ff1
[Build, BTA] Add the build tools api tests module
...
The module is configured to run a bunch of test suites defined as API pairs. Currently those are `CURRENT API` – `CURRENT IMPL`, `CURRENT API` – `1.9.20 IMPL`, `1.9.20 API` – `CURRENT IMPL`
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
0196928af7
[BTA] Add debug logging about the used compilation strategy
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Alexander.Likhachev
dda6b92c13
[BTA] Fix incorrect default value for IncrementalJvmCompilationConfiguration.outputDirs
...
^KT-61860 In Progress
2024-03-09 01:36:22 +00:00
Nataliya.Valtman
5885514c3d
Add JSON output type for build reports
...
#KT-65792 Fixed
2024-02-27 08:32:36 +00:00
Nataliya.Valtman
090407b7e3
Add compiler IRMeasurement to build reports
...
#KT-65091: Fixed
2024-02-15 07:51:51 +00:00
Alexander.Likhachev
5d98758645
[BTA] Add KDoc for CompilationService.calculateClasspathSnapshot
2024-02-09 18:33:30 +00:00
Alexander.Likhachev
10cedd495d
[BTA] Add Kotlin version getter into CompilationService
...
^KT-62921 In Progress
2024-02-08 19:11:26 +00:00
Evgenii Mazhukin
de4953adf6
[IC] Baseline fix for common sources getting access to platform declarations
...
K2-only issue. In an incremental build, sourceSet boundary isn't
preserved in certain conditions:
SourceSet A depends on SourceSet B
A and B overload a function, for example:
A -> fun foo(p: Parent) // (1)
B -> fun foo(c: Child) // (2)
If some source file in A is calling foo(..), only (1) is supposed to be visible
for that call site.
However, if
a) it is an incremental build,
b) the declaration of (1) is not a part of the compilation set, and
c) call to foo(c: Child) is applicable,
then (2) would be called from the generated code. So, the build result is not
consistent between the full build and an incremental build.
As a workaround, we fallback to a non-incremental build, if any source from A
needs to be compiled.
To enable "risky" incremental builds, use Gradle property
kotlin.internal.incremental.enableUnsafeOptimizationsForMultiplatform=true
^KT-62686
^KT-63837 Fixed
Merge-request: KT-MR-13695
Merged-by: Evgenii Mazhukin <evgenii.mazhukin@jetbrains.com >
2024-01-08 20:03:08 +00:00
Evgenii Mazhukin
ee3119e9d2
[KGP] Introduce Incremental Compilation Feature Toggles
...
Makes it easier to introduce a Gradle property for configuring
IncrementalCompilerRunner.
^KT-64513 Fixed
^KT-63837 In Progress
Merge-request: KT-MR-13671
Merged-by: Evgenii Mazhukin <evgenii.mazhukin@jetbrains.com >
2023-12-27 13:43:54 +00:00
Alexander.Likhachev
95bc49054f
[BT] Release daemon compile session right after compilation is finished
...
^KT-55322 In Progress
2023-12-05 13:51:14 +00:00
Nataliya.Valtman
4294c7bab7
Add limitation for changed files list for JPS build report
...
#KT-63549
2023-12-04 18:19:15 +00:00
Nataliya.Valtman
6bbf5b83c8
Add compiler metrics to JPS build report
...
#KT-63549: Fixed
2023-11-22 11:30:08 +00:00
Alexander.Likhachev
3eaaed8e7f
[BT] Add debug logging for compilation iterations
2023-10-23 13:04:17 +00:00
Alexander.Likhachev
ad4f4cbd28
[BT] Clear jar caches after project compilation
2023-10-23 13:04:17 +00:00
Alexander.Likhachev
b460c06907
[BT] Add support for in-process incremental compilation
...
#KT-61865 Fixed
2023-10-23 13:04:17 +00:00
Alexander.Likhachev
6eaccc997f
[Build] Fix the typo junit jupyter -> jupiter
2023-09-06 22:47:34 +00:00
Alexander.Likhachev
6f96be0b76
[Build] Get rid of the testApiJUnit5 method
...
#KTI-1349 In Progress
2023-09-06 22:47:34 +00:00
Alexander.Likhachev
2570be129f
[Gradle, BT] Move script definitions scanning into the build tools API
...
#KT-61449 In Progress
2023-08-29 13:00:15 +00:00
Alexander.Likhachev
6cfa165ddb
[Gradle, Build] Publish an artifact with unpublished compiler modules for KGP
...
#KT-61449 In Progress
2023-08-29 13:00:15 +00:00
Alexander.Likhachev
3fb1f7bf42
[Gradle] Migrate from ChangesFiles to SourcesChanges
...
It allows getting rid of the dependency on `:compiler:incremental-compilation-impl`
#KT-61449 In Progress
2023-08-29 13:00:15 +00:00
Alexander.Likhachev
797ca34a34
[BT] Use bootstrap classloader as a fallback instead of system classloader
...
Using system classloader may lead to unwanted leakage of classes from the application classpath (like Gradle's ones).
#KT-61206 Fixed
2023-08-21 18:09:49 +00:00
Alexander.Likhachev
4705f13b39
[BT] Add a test for KT-61206
2023-08-21 18:09:49 +00:00
Hung Nguyen
894ba9ab80
[IC] Relocatable IC caches for projects with custom buildDir
...
IC caches often contain file paths. To make them relocatable, we need
to convert these file paths into relative paths, relative to a base
directory.
- If the file paths are source files, we can use the root project
directory as base.
- If the file paths are class files, we should use the classes
directory as base (before this commit, we used the root project
directory in both cases, that's why we hit KT-58547).
The key changes in this commit include:
- RelocatableFileToPathConverter: converts paths to relative paths
- IncrementalCompilationContext: contains 2 different path converters,
one for source files and one for class files
- SourceToOutputFilesMap: maps source files to class files using the
above path converters
- IncrementalCompilerRunner: creates the path converters based on file
locations
Test: RelocatableFileToPathConverterTest unit test
SourceToOutputFilesMapTest unit test
BuildCacheRelocationIT.testCustomBuildDirectory integration test
^KT-58547 Fixed
2023-08-16 13:40:19 +00:00
Nataliya.Valtman
2719dd188f
Added build metrics for Kotlin/Native tasks
...
#KT-58315 Fixed
Co-authored-by: Nataliya Valtman <Nataliya.Valtman@jetbrains.com >
Merge-request: KT-MR-11343
Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com >
2023-08-08 07:43:18 +00:00
Alexander.Likhachev
83c53b7ce3
[BT] Implement classpath snapshotting in the Build Tools API
...
#KT-57565 In Progress
2023-08-03 08:55:32 +00:00