summaryrefslogtreecommitdiff
path: root/buildSrc
AgeCommit message (Collapse)Author
2022-06-23build: Update simulator dependenciesFabian Mastenbroek
This change updates the simulator dependencies to the latest available version where possible.
2022-05-16build: Update simulator dependenciesFabian Mastenbroek
This change updates the simulator dependencies to the latest available version where possible.
2022-05-06refactor(harness): Remove OpenDC Harness modulesFabian Mastenbroek
This change removes the OpenDC Harness modules from the main repository. We have made the decision to take a different direction regarding the specification and execution of experiments. The design of the current harness does not integrate well with the specification of experiments in the web interface. The new version focuses on proper integration with the web interface, as well as via the command line interface.
2022-04-23build: Enable testing for all library modulesFabian Mastenbroek
This change updates the Gradle build configuration to ensure that all library modules (that will be published) use testing and are included in coverage reports. This should ensure the public modules remain well tested.
2022-04-22build(web/api): Move Quarkus build configuration into buildSrcFabian Mastenbroek
This change moves most of the Quarkus build configuration into buildSrc so it can possibly be re-used for other modules.
2022-04-22build: Include Quarkus tests in aggregated JaCoCo test reportFabian Mastenbroek
This change fixes an issue where the results of the Quarkus tests where not included in the aggregated JaCoCo test report, due to it not using the official Gradle JaCoCo plugin. This change defines a new configuration that exposes the execution data generated by Quarkus to the aggregation plugin.
2022-04-21build: Use JaCoCo 0.8.8Fabian Mastenbroek
This change updates the build script to use JaCoCo 0.8.8 for code coverage instrumentation. This version adds support for Java 18 classes.
2022-04-05feat(web/ui): Add extension for serving OpenDC web UIFabian Mastenbroek
This change adds a new Quarkus extension that is able to serve the OpenDC web interface via the Quarkus deployment of OpenDC.
2022-04-05build(web/ui): Support building WebJar for OpenDC web UIFabian Mastenbroek
This change updates the build process to build a static WebJar out of the OpenDC web UI module. This allows us to embed the UI inside the development distribution of OpenDC for other users to readily deploy it.
2022-04-05build(web/ui): Add Gradle integration with Next.js projectFabian Mastenbroek
This change adds support for building the OpenDC web interface project that uses Next.js using Gradle. This enables a single build pipeline using Gradle.
2022-04-05build: Update to Kotlin 1.6.20Fabian Mastenbroek
2022-04-04ci: Fix JaCoCo report aggregationFabian Mastenbroek
This change updates the build script to fix the aggregation step for the JaCoCo coverage reports that are submitted to Codecov. Previously, not all modules were properly included in the report.
2022-04-04feat(web/api): Initial API implementation in KotlinFabian Mastenbroek
This change adds the initial implementation of the new API server in Kotlin, replacing the old API written in Python. The implementation uses Quarkus, RESTEasy, and Hibernate to implement the new API endpoints. The reason for replacing the old API server is unifying the build and deployment toolchains, reducing the number of technologies necessary to work with OpenDC. Furthermore, we envision bundling the entire OpenDC project into a single distributions, allowing users to launch their own deployment trivially.
2022-04-04feat(web/proto): Design unified communication protocolFabian Mastenbroek
This change adds a unified communication protocol in form of the module opendc-web-proto which contains the classes that form the communication protocol of OpenDC's API v2. By having the protocol in a separate module, we can utilize the classes in both server and client.
2022-04-04build: Move build dependencies into version catalogFabian Mastenbroek
This change moves build dependencies used by Gradle into the version catalog to ensure a single location for all dependency versions.
2022-01-11build: Update to Kotlin 1.6.10Fabian Mastenbroek
This change updates the build script to use Kotlin 1.6.10 for building OpenDC.
2021-11-24build: Update to Kotlin 1.6Fabian Mastenbroek
This change updates the build process to use Kotlin 1.6.0.
2021-11-02build: Update build dependenciesFabian Mastenbroek
2021-10-25build(jmh): Fix duplicate classpath entriesFabian Mastenbroek
This change fixes an issue with the JMH plugin where entries would be included twice on the classpath or entries that did not belong on the classpath were also included.
2021-10-03build: Migrate from kotlinx-benchmark to jmh-gradleFabian Mastenbroek
This change updates the project to use jmh-gradle for benchmarking as opposed to kotlinx-benchmark. Both plugins use JMH under the hood, but jmh-gradle offers more options for profiling and seems to be beter maintained.
2021-09-28build: Increase Java requirement to version 11Fabian Mastenbroek
This change updates the Gradle configuration to target Java 11 (instead of Java 8) as the lowest denominator when building OpenDC. Since the project has not yet been adopted by (many) other applications, we should not restrict the project to such an old Java version.
2021-09-02build: Update to Gradle 7.2Fabian Mastenbroek
This change updates the Gradle version of the supplied Gradle wrapper to version 7.2. * Update Gradle to version 7.2 * Address incompatibilities with version catalog * Remove opendc-format module.
2021-08-31build: Update to Kotlin 1.5.30Fabian Mastenbroek
2021-07-29build: Update Kotlin dependenciesFabian Mastenbroek
This change updates the Kotlin dependencies used by OpenDC to their latest version.
2021-06-24build: Upgrade to Kotlin 1.5.20Fabian Mastenbroek
This change updates the Kotlin version used in the Gradle build to version 1.5.20. For more details, see https://kotlinlang.org/docs/releases.html#release-details.
2021-06-24simulator: Re-implement performance interference modelFabian Mastenbroek
This change updates reimplements the performance interference model to work on top of the universal resource model in `opendc-simulator-resources`. This enables us to model interference and performance variability of other resources such as disk or network in the future.
2021-06-17build: Update dependenciesFabian Mastenbroek
This change updates the project dependencies to follow the latest available version where possible.
2021-06-15build: Upgrade to Gradle 7.1Fabian Mastenbroek
This change upgrades the Gradle build system to version 7.1.
2021-06-01build: Update to Kotlin 1.5.10Fabian Mastenbroek
This change updates the build process to use Kotlin 1.5.10 for building OpenDC. This new update should address some of the incompatibilities between Gradle and Kotlin 1.5.
2021-05-18build: Update Jacoco to version 0.8.7Fabian Mastenbroek
This change updates the Gradle build configuration to use Jacoco 0.8.7, which is necessary for Kotlin 1.5.0 to work nicely with Jacoco.
2021-05-18build: Update to Kotlin 1.5.0Fabian Mastenbroek
2021-05-10build: Publish Java Platform on Maven CentralFabian Mastenbroek
This change updates the build configuration to also publish the Java Platform on Maven Central. This is necessary since the other modules depend on the platform.
2021-05-07build: Access version catalog from buildSrcFabian Mastenbroek
This change adds a workaround to the build configuration so that we can access the version catalog from pre-compiled scripts in buildSrc. In this way, we can use the version catalog everywhere. This workaround is necessary until https://github.com/gradle/gradle/issues/15383 is fixed.
2021-05-07build: Use Gradle version catalogFabian Mastenbroek
This change adds support for the Gradle version catalog feature in our build configuration. This allows us to have a single file, gradle/libs.versions.toml, which contains all the dependency versions used in this project.
2021-05-06build: Prevent publishing application modulesFabian Mastenbroek
This change updates the Gradle build configuration so that the application modules (as opposed the libraries) are not published onto Maven Central.
2021-05-06build: Use type-safe project accessorsFabian Mastenbroek
This change updates the build scripts to use type-safe project accessors when specifying build dependencies between modules.
2021-05-06build: Add support for publishing to Maven CentralFabian Mastenbroek
This change adds support for publishing OpenDC to Maven Central. This allows other people to develop with OpenDC without needing to build the entire project themselves.
2021-05-05exp: Include experiments in main distributionFabian Mastenbroek
This change updates the Gradle configuration to include experiments in the main distribution of OpenDC. Users can directly execute the experiments from the command-line without having to recompile the entire code-base.
2021-05-05exp: Add support for experiment configurationFabian Mastenbroek
This change adds support for configuring the experiments via configuration files using the TypeSafe config library. In the future, we will also integrate support for configuration into the harness.
2021-05-05harness: Split harness into separate modulesFabian Mastenbroek
This change splits the OpenDC Experiment Harness into separate modules. This prevents users from pulling in unnecessary dependencies when depending on the harness API.
2021-05-03build: Migrate to Dokka 1.4.32Fabian Mastenbroek
This change migrates Dokka, the documentation generation tool for Kotlin, to version 1.4.32. This is a significant upgrade over the previous version which should support multiple modules as well as multiple output formats.
2021-05-03build: Add support for distribution packagingFabian Mastenbroek
This change configures the Distribution plugin for the root project and aggregates the artifacts of the other projects to generate a single distribution file containing all libraries and binaries.
2021-04-25build: Migrate to flat project structureFabian Mastenbroek
This change updates the project structure to become flattened. Previously, the simulator, frontend and API each lived into their own directory. With this change, all modules of the project live in the top-level directory of the repository. This should improve discoverability of modules of the project.