summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-07api: Bump flask-cors from 3.0.8 to 3.0.9dependabot[bot]
Bumps [flask-cors](https://github.com/corydolphin/flask-cors) from 3.0.8 to 3.0.9. - [Release notes](https://github.com/corydolphin/flask-cors/releases) - [Changelog](https://github.com/corydolphin/flask-cors/blob/master/CHANGELOG.md) - [Commits](https://github.com/corydolphin/flask-cors/compare/3.0.8...3.0.9) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-06ci: Use docker/build-push-action@v2Fabian Mastenbroek
This change updates the publish workflow to use docker/build-push-action@v2. The previous version is deprecated and does not support some of the parameters that we need.
2021-05-06ci: Create draft release on tag pushFabian Mastenbroek
This change updates the release workflow to create a draft release when a new tag is pushed. This allows us to write a release description as well as organize the publication of the components on Maven Central, etc.
2021-05-06build: Increase metaspace budgetFabian Mastenbroek
This change increases the max metaspace size that Gradle/Dokka is allowed to use. We unfortunately need this workaround for Dokka to properly build the documentation during the release workflow.
2021-05-06ci: Reference correct secret for GPG passphraseFabian Mastenbroek
2021-05-06chore: Prepare for OpenDC 2.0 release (v2)Fabian Mastenbroek
This pull request performs several preparations for the official release of OpenDC 2.0. With this pull request, we focus on the deployment of OpenDC to DockerHub and Maven Central. * Add workflow for creating releases on Github and publishing to Maven Central * Add workflow for publishing images on DockerHub * Add support for runtime variables in frontend Docker image * Add support for building Dokka documentation
2021-05-06ci: Add workflow step for publishing release to Maven CentralFabian Mastenbroek
This change adds a workflow step that publishes the release to Maven Central using Gradle.
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-05ci: Add workflow for publishing Docker imagesFabian Mastenbroek
This change adds a new Github Actions workflow that publishes the Docker images on publication of a new Github release.
2021-05-05build: Use web runner from main distribution in Docker imageFabian Mastenbroek
This change updates the main Docker image to copy the main distribution into the Docker image and use the web runner from there.
2021-05-05build: Support runtime variables in frontend Docker imageFabian Mastenbroek
This change adds support for dynamically specifying various variables for the frontend Docker image through environmental variables. Previously, these were embedded directly into the source code, which requires rebuilding the entire image to change these variables.
2021-05-05build: Update Docker ignores to prevent unnecessary buildsFabian Mastenbroek
This changes updates the .dockerignore files in the repository in order to prevent building when not necessary.
2021-05-05ci: Remove unused Gitlab and Travis CI configurationsFabian Mastenbroek
2021-05-05ci: Add workflow for releasesFabian Mastenbroek
This change adds a new Github Actions workflow that is triggered when a new tag is pushed. This workflow will automatically build the project and create a new Github release.
2021-05-05harness: Improve OpenDC Experiment Harness (v1) Fabian Mastenbroek
This pull request contains several improvements to the OpenDC Experiment Harness, which aims to improve user-experience of users when re-running experiments in the repository. * Split the harness into separate modules * Add support for adding additional classpath entries when running experiments via the console * Initial support for configuration of experiments using HOCON.
2021-05-05harness: Add ability to specify custom configuration from CLIFabian Mastenbroek
This change updates the command line interface of the OpenDC Experiment Harness to include an option for specifying a custom configuration file.
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: Extend Harness CLI with classpath optionsFabian Mastenbroek
This change adds support for appending libraries to the classpath when searching for experiments to run using the OpenDC Harness command line interface.
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-04exp: Fix power draw reportingFabian Mastenbroek
This pull request fixes an issue with the power draw reporting in experiments. Previously, when the power draw of a machine did not change in subsequent metric collection cycles, the power draw would be reported as zero. * Update power draw as soon as the machine is started. * Use OpenTelemetry view to aggregate based on the power draw's last reported value.
2021-05-04exp: Fix aggregation of power drawFabian Mastenbroek
This change fixes the aggregation of the power draw metric. Previously, if the power draw did not change between collection cycles, the power draw would be reported as zero. This change uses OpenTelemetry Views to collect the latest value of the power draw each cycle.
2021-05-04simulator: Update power draw on machine drawFabian Mastenbroek
This change fixes an issue where the power draw of a machine is initially zero and does not update until the CPU usage is higher than zero, while the idle power is the machine is not actually zero.
2021-05-03simulator: Add support for central resource scheduling (#126)Fabian Mastenbroek
This pull request adds support for central resource scheduling. This enables possible optimizations in the future where we can efficiently schedule resource updates. * Introduce `SimResourceScheduler` which centralizes the logic for scheduling resource interrupts. * Fix benchmarks * Add generic approach for reporting resource events * Simplify scheduling logic of resource aggregator. **Breaking API Changes** * Classes in `opendc-simulator-resources` now take `SimResourceScheduler` as opposed to a `CoroutineContext` and `Clock`.
2021-05-03simulator: Introduce SimResourceSchedulerFabian Mastenbroek
This change introduces the SimResourceScheduler interface, which is a generic interface for scheduling the coordination and synchronization between resource providers and resource consumers. This interface replaces the need for users to manually specify the clock and coroutine context per resource provider.
2021-05-03simulator: Fix compute benchmarksFabian Mastenbroek
This change fixes an issue with the compute benchmarks where the workload was being re-used across iterations.
2021-05-03simulator: Add generic approach for reporting resource eventsFabian Mastenbroek
This change introduces a generic approach for reporting resource events to resource consumers. This way we reduce the boilerplate of the SimResourceConsumer interface.
2021-05-03simulator: Simplify scheduling logic of resource aggregatorFabian Mastenbroek
This change simplifies the scheduling logic of the resource aggregator. Previously, after each scheduling cycle, each aggregated input was interrupted. With the new approach, the scheduler can decide which ones of the inputs to send a new command to.
2021-05-03Prepare for OpenDC 2.0 release (v1)Fabian Mastenbroek
This pull request performs several preparations for the official release of OpenDC 2.0. This pull request mostly focuses on documentation changes. ## Details 1. Restructure project documentation 2. Migrate to Dokka 1.4.32 3. Merge CI builds into single workflow
2021-05-03docs: Add document on OpenDC publicationsFabian Mastenbroek
2021-05-03docs: Add document for toolchain setupFabian Mastenbroek
2021-05-03ci: Merge CI builds into single workflowFabian Mastenbroek
This change merges the three CI builds for the simulator, frontend and API into a single workflow that builds the components in separate, independent jobs.
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-05-03docs: Revamp project documentationFabian Mastenbroek
This change updates the project documentation by moving most of the documentation to the docs directory.
2021-05-02api: Bump rsa from 4.6 to 4.7 (#124)dependabot[bot]
Bumps [rsa](https://github.com/sybrenstuvel/python-rsa) from 4.6 to 4.7. - [Release notes](https://github.com/sybrenstuvel/python-rsa/releases) - [Changelog](https://github.com/sybrenstuvel/python-rsa/blob/main/CHANGELOG.md) - [Commits](https://github.com/sybrenstuvel/python-rsa/compare/version-4.6...version-4.7) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-25build: Flatten 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.
2021-04-25ci: Update Codecov pathsFabian Mastenbroek
This change updates the references to the API and Simulator modules of the projects for Codecov.
2021-04-25docs: Actualize READMEFabian Mastenbroek
This change updates several points in the README that were outdated or incorrect.
2021-04-25docs: Mention software license in READMEFabian Mastenbroek
This change adds a description of the software license under which OpenDC is distributed to the README.md file.
2021-04-25build: Adjust docker-compose configuration to flat structureFabian Mastenbroek
This change adjusts the docker-compose configuration to support the re-organized project structure.
2021-04-25ci: Fix references to frontend and API modulesFabian Mastenbroek
This change fixes the references to the frontend and API modules that were invalidated due to the restructuring of project in the previous commit.
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.
2021-04-23simulator: Add the MSE power model (#121)Hongyu
This change adds a power model for optimizing the mean squared error to the available power models in OpenDC.
2021-04-21simulator: Introduce SimulationCoroutineDispatcher (#120)Fabian Mastenbroek
This change introduces the SimulationCoroutineDispatcher implementation which replaces the TestCoroutineDispatcher for running single-threaded simulations.
2021-04-21simulator: Migrate to SimulationCoroutineDispatcherFabian Mastenbroek
This change migrates the remainder of the codebase to the SimulationCoroutineDispatcher implementation.