summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-21build(web/api): Update to Quarkus 2.8.1.FinalFabian Mastenbroek
This change updates the web API to use Quarkus 2.8.1.Final. This release fixes an issue we had with local extensions failing to build due to some build directories missing.
2022-04-21build: Update to Kotlin 1.6.21Fabian Mastenbroek
This change updates the Kotlin version used by the build process of our project to version 1.6.21.
2022-04-21build(web/ui): Migrate from Yarn to NPMFabian Mastenbroek
This change updates the Node package manager used by the OpenDC web UI build from Yarn to NPM, which is included by default in the Node distributions that are used by node-gradle.
2022-04-21build(web/ui): Remove use of lint-stagedFabian Mastenbroek
This change removes the use of lint-staged from the project. These steps should be managed by the Gradle build logic, while we keep the Next.js build logic as minimal as possible.
2022-04-19ci: Bump mikepenz/action-junit-report from 3.0.1 to 3.0.2 (#73)dependabot[bot]
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](https://github.com/mikepenz/action-junit-report/compare/v3.0.1...v3.0.2) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11ci: Bump codecov/codecov-action from 2 to 3 (#72)dependabot[bot]
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2 to 3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2...v3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11ci: Bump actions/upload-artifact from 2 to 3 (#71)dependabot[bot]
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11ci: Bump actions/setup-java from 2 to 3 (#70)dependabot[bot]
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 2 to 3. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-06merge: Integrate UI into Quarkus web application (#69)Fabian Mastenbroek
This pull request adds a Quarkus extension that integrates with the existing Quarkus web application to provide access to the OpenDC web UI. The benefit of this approach is that in this way, OpenDC can be distributed as a single JVM application to the user, which can host its own web UI directly. Furthermore, this pull request also adds support for unauthenticated access to the API when accessing in dev mode, so that users do not have to setup Auth0 in order to use OpenDC locally. ## Implementation Notes :hammer_and_pick: * Do not use next/image * Migrate to next-global-css * Update PatternFly to latest version * Add Gradle integration with Next.js project * Build web UI via Gradle * Support building WebJar for OpenDC web UI * Add extension for serving OpenDC web UI * Include web UI in development mode * Add workaround for Quarkus Gradle build issues * Add support for unauthenticated user access ## External Dependencies :four_leaf_clover: * [node-gradle](https://github.com/node-gradle/gradle-node-plugin)
2022-04-06build(web/ui): Update ESLint dependenciesFabian Mastenbroek
This change updates the ESLint dependencies to operate correctly in Windows environments.
2022-04-06feat(web/ui): Add support for unauthenticated user accessFabian Mastenbroek
This change updates the web UI and API to support unauthenticated user access. Such functionality is helpful when there is just a single user that wants to try OpenDC.
2022-04-05fix(web/ui): Add workaround for Quarkus Gradle build issuesFabian Mastenbroek
This chnage add a workaround for the issues that appear when building the Quarkus application due to it accessing the build files of the other local modules.
2022-04-05feat(web/api): Include web UI in development modeFabian Mastenbroek
This change adds support for serving the web UI of OpenDC while in the development mode of the API server.
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-05ci(web/ui): Build web UI via GradleFabian Mastenbroek
This change updates the GitHub Actions pipeline to build the web UI via Gradle instead of using Node.js directly.
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(web/ui): Update PatternFly to latest versionFabian Mastenbroek
2022-04-05build(web/ui): Migrate to next-global-cssFabian Mastenbroek
This change updates the web interface to use next-global-css instead of next-transpile-modules. This approach is more efficient since it does not require transpilation of the dependencies.
2022-04-05fix(web/ui): Do not use next/imageFabian Mastenbroek
This change removes the use of next/image from the project. Although it is recommended by the Next.js project to use this component, it is not compatible currently with static export.
2022-04-05merge: Update build and runtime dependencies (#68)Fabian Mastenbroek
This pull request updates the build and runtime dependencies used by OpenDC to their latest version compatible with the project. ## Implementation Notes :hammer_and_pick: * Update to Gradle 7.4.2 * Update to Kotlin 1.6.20 * Update runtime dependency versions ## External Dependencies :four_leaf_clover: * Kotlin * Gradle * OpenTelemetry * kotlin-coroutines
2022-04-05build: Update dependency versionsFabian Mastenbroek
2022-04-05build: Update to Kotlin 1.6.20Fabian Mastenbroek
2022-04-05build: Update to Gradle 7.4.2Fabian Mastenbroek
2022-04-04merge: Migrate to Quarkus-based web APIFabian Mastenbroek
This pull request changes the web API to a Quarkus-based version. Currently, the OpenDC web API is written in Python (using Flask). Although Python is a powerful language to develop web services, having another language next to Kotlin/Java and JavaScript introduces some challenges. For instance, the web API and UI lack integration with our Gradle-based build pipeline and require additional steps from the developer to start working with. Furthermore, deploying OpenDC requires having Python installed in addition to the JVM. By converting the web API into a Quarkus application, we can enjoy further integration with our Gradle-based build pipeline and simplify the development/deployment process of OpenDC, by requiring only the JVM and Node to work with OpenDC. ## Implementation Notes :hammer_and_pick: * Move build dependencies into version catalog * Design unified communication protocol * Add Quarkus API implementation * Add new web client implementation * Update runner to use new web client * Fix compatibility with React.js UI * Remove Python build steps from CI pipeline * Update Docker deployment for new web API * Remove obsolete database configuration ## External Dependencies :four_leaf_clover: * Quarkus ## Breaking API Changes :warning: * The new web API only supports SQL-based databases for storing user-data, as opposed to MongoDB currently. We intend to use H2 for development and Postgres for production.
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-04ci: Remove Codecov flagsFabian Mastenbroek
This change removes the API and simulator flags from the Codecov configuration, since we have unified the simulator and web API.
2022-04-04docs: Update global architecture of OpenDCFabian Mastenbroek
This change updates the document outlining the architecture of OpenDC, which does not use a Python-based web API anymore.
2022-04-04refactor(web): Remove obsolete database configurationFabian Mastenbroek
This change removes the obsolete Mongo database configuration that was stored in the repository, now that the new web API migrates to Postgres.
2022-04-04refactor(web): Update Docker deployment for new web APIFabian Mastenbroek
This change updates the Docker deployment configuration for the new web API implemented in Kotlin. The new API migrates to Postgres. Furthermore, with this change, we move the Dockerfiles to their corresponding module.
2022-04-04ci(web): Remove Python build steps from CI pipelineFabian Mastenbroek
This change removes the Python build steps from the CI pipeline. Previously, these steps were used to build the OpenDC API server that was written in Python. With the migration to a Kotlin-based API, we can unify the build steps in our pipeline.
2022-04-04refactor(web/ui): Fix compatibility with new APIFabian Mastenbroek
This change updates the web interface in React to be compatible with the new API written in Kotlin. Several changes have been made in the new API to ensure consistency.
2022-04-04refactor(web/runner): Update runner to use new web clientFabian Mastenbroek
This change updates the web runner implementation to use the new API client introduced in the previous commit.
2022-04-04feat(web/client): Add separate web client implementationFabian Mastenbroek
This change implements a simple client for the OpenDC REST API into a separate module. This allows other users to use this module as well.
2022-04-04fix(web/api): Support dynamic JSON type selection for DBFabian Mastenbroek
This change adds support for dynamically selecting the appropriate JSON type for the current database. For Postgres, this will be the JSONB type, while for H2 this is either the BLOB or JSON type.
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-04-04build(web/ui): Bump minimist from 1.2.5 to 1.2.6 (#66)dependabot[bot]
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-21build: Bump mikepenz/action-junit-report from 2 to 3.0.1 (#65)dependabot[bot]
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 2 to 3.0.1. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](https://github.com/mikepenz/action-junit-report/compare/v2...v3.0.1) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-07ci: Bump actions/checkout from 2 to 3 (#64)dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-28ci: Bump actions/setup-node from 2 to 3 (#62)dependabot[bot]
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2 to 3. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-28ci: Bump actions/setup-python from 2 to 3 (#63)dependabot[bot]
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-19merge: Backport generic changes from Radice branchFabian Mastenbroek
This pull request backports changes from the Radice branch that are not related to Radice itself. ## Implementation Notes :hammer_and_pick: * Adjust CPU capacity to number of vCPUs * Fix reporting of CPU time * Flush results before accessing counters * Move logger field out of class * Remove delta parameter from flow callbacks ## Breaking API Changes :warning: * `delta` parameter from callbacks in `FlowSource` is removed.
2022-02-18refactor(simulator): Remove delta parameter from flow callbacksFabian Mastenbroek
This change removes the delta parameter from the callbacks of the flow framework. This parameter was used to indicate the duration in time between the last call and the current call. However, its usefulness was limited since the actual delta values needed by implementors of this method had to be bridged across different flow callbacks.
2022-02-18perf(simulator): Move logger field out of classFabian Mastenbroek
This change updates the FlowConsumerContextImpl by moving the logger outside of the class. This prevents each instance of this class from having to construct a logger instance.
2022-02-18fix(simulator): Flush results before accessing countersFabian Mastenbroek
This change updates the simulator implementation to flush the active progress when accessing the hypervisor counters. Previously, if the counters were accessed, while the mux or consumer was in progress, its counter values were not accurate.
2022-02-18fix(telemetry): Fix reporting of CPU timeFabian Mastenbroek
This change fixes an issue with the CPU time aggregation for VMs in the ComputeMetricAggregator, leading to incorrect values.
2022-02-18bug(trace): Adjust CPU capacity to number of vCPUsFabian Mastenbroek
This change fixes an issue where the number of vCPUs was not taken into account when converting from CPU Usage percentage to MHz.