Involved Module
Description
Currently, we have two sources of change: TestSpark's headless mode implementation and Gradle/IDEA APIs that change when IntelliJ IDEA is updated (e.g., the transition from Gradle API 1.x to 2.x). Preservation of TestSpark's commit along is not sufficient to have reproducibility of headless mode runs.
In order to achieve headless mode run reproducibility, we need to freeze both TestSpark and IntelliJ IDEA versions.
Solution:
Implement dockerization functionality that freezes versions of both IntelliJ IDEA and TestSpark (that are shown to be compatible with each other in terms of headless mode correct functionality) and installs them on demand when a Docker container is bootstrapped.
Notes
This is a potentially big work, so it is a subject for an internship or a student's semester project.
Definition of Done
Involved Module
Description
Currently, we have two sources of change: TestSpark's headless mode implementation and Gradle/IDEA APIs that change when IntelliJ IDEA is updated (e.g., the transition from Gradle API 1.x to 2.x). Preservation of TestSpark's commit along is not sufficient to have reproducibility of headless mode runs.
In order to achieve headless mode run reproducibility, we need to freeze both TestSpark and IntelliJ IDEA versions.
Solution:
Implement dockerization functionality that freezes versions of both IntelliJ IDEA and TestSpark (that are shown to be compatible with each other in terms of headless mode correct functionality) and installs them on demand when a Docker container is bootstrapped.
Notes
This is a potentially big work, so it is a subject for an internship or a student's semester project.
Definition of Done