From ee856c8e99164edadfe340daa0217f668bedf910 Mon Sep 17 00:00:00 2001 From: Wouter Born Date: Fri, 9 Oct 2026 15:55:11 +0200 Subject: [PATCH 1/3] Update core repository references after rename Point CI checkout and deployment workflows to openremote/core and switch the checkout branch from master to main. Update repository links and issue references in documentation, code, and tests. Related to openremote/openremote#3151 --- .github/workflows/ci_cd.yml | 8 ++++---- DESIGN.md | 2 +- .../ems/manager/distroenergy/DistroEnergyHandler.java | 4 ++-- .../entsoe/agent/protocol/EntsoeProtocolTest.groovy | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci_cd.yml b/.github/workflows/ci_cd.yml index 4bb1c31..b24f929 100644 --- a/.github/workflows/ci_cd.yml +++ b/.github/workflows/ci_cd.yml @@ -50,9 +50,9 @@ jobs: - name: Checkout main repo uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - repository: openremote/openremote + repository: openremote/core path: openremote - ref: master + ref: main sparse-checkout: profile sparse-checkout-cone-mode: false @@ -178,9 +178,9 @@ jobs: if: ${{ steps.is_publish_event.outputs.value == 'true' }} run: | if [ "$IS_RELEASE" == true ]; then - gh workflow run deploy.yml -R openremote/openremote -f ENVIRONMENT="demo" -f MANAGER_TAG="latest" -f CLEAN_INSTALL="true" + gh workflow run deploy.yml -R openremote/core -f ENVIRONMENT="demo" -f MANAGER_TAG="latest" -f CLEAN_INSTALL="true" else - gh workflow run deploy.yml -R openremote/openremote -f ENVIRONMENT="staging" -f MANAGER_TAG="develop" -f CLEAN_INSTALL="true" + gh workflow run deploy.yml -R openremote/core -f ENVIRONMENT="staging" -f MANAGER_TAG="develop" -f CLEAN_INSTALL="true" fi env: GH_TOKEN: ${{ steps.deployment-token.outputs.token }} diff --git a/DESIGN.md b/DESIGN.md index bc45b44..78b7dcd 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1,7 +1,7 @@ ## Introduction The OpenRemote platform is designed for versatility, supporting diverse domains such as energy management, smart cities, and fleet management. -As the platform scales, it is no longer practical or efficient for the Core repository ([openremote/openremote](https://github.com/openremote/openremote/)) to natively support every specific protocol, UI widget or business logic requirement. +As the platform scales, it is no longer practical or efficient for the Core repository ([openremote/core](https://github.com/openremote/core/)) to natively support every specific protocol, UI widget or business logic requirement. ## Purpose diff --git a/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java b/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java index c74aefb..132bb63 100644 --- a/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java +++ b/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java @@ -363,7 +363,7 @@ static double toVolume(double powerNetKw) { * *

Under a JVM zone that observes DST the storage frame is not monotonic, so on the fall-back * day the two instants of the repeated hour collapse onto a single stored row and both read it. - * That is a consequence of the naive primary key upstream (openremote/openremote#3292). The + * That is a consequence of the naive primary key upstream (openremote/core#3292). The * collapse can only duplicate a read, never erase one, so it cannot turn a day with a forecast * into a skip, and while it lasts the repeated hour is never a gap at all: both passes read the * one surviving row, so the hour carries as many distinct values as it has ISPs. Once predicted @@ -471,7 +471,7 @@ static List buildSubmissionData( + " of " + submissionData.size() + " positions reusing a value from the repeated DST hour, which collapses onto one" - + " predicted datapoint row (openremote/openremote#3292)"); + + " predicted datapoint row (openremote/core#3292)"); } if (dstFilled > 0) { diff --git a/entsoe/src/test/groovy/org/openremote/extension/entsoe/agent/protocol/EntsoeProtocolTest.groovy b/entsoe/src/test/groovy/org/openremote/extension/entsoe/agent/protocol/EntsoeProtocolTest.groovy index 3bc4b7b..d5cbe24 100644 --- a/entsoe/src/test/groovy/org/openremote/extension/entsoe/agent/protocol/EntsoeProtocolTest.groovy +++ b/entsoe/src/test/groovy/org/openremote/extension/entsoe/agent/protocol/EntsoeProtocolTest.groovy @@ -49,7 +49,7 @@ import static org.openremote.model.Constants.MASTER_REALM import static org.openremote.model.value.MetaItemType.AGENT_LINK import static org.openremote.model.value.ValueType.NUMBER -@Issue("https://github.com/openremote/openremote/issues/2599") +@Issue("https://github.com/openremote/core/issues/2599") class EntsoeProtocolTest extends Specification implements ManagerContainerTrait { private static final String DATASET_START = "2026-02-16T23:00:00.000Z" private static final String BEFORE_DATASET_START = "2026-02-16T22:00:00.000Z" From 443c44ab9b7c0680005ebbdd45a672cdfeb7704e Mon Sep 17 00:00:00 2001 From: Wouter Born Date: Tue, 13 Oct 2026 11:44:10 +0200 Subject: [PATCH 2/3] Apply Spotless --- .../ems/manager/distroenergy/DistroEnergyHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java b/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java index 132bb63..9f144d8 100644 --- a/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java +++ b/ems/src/main/java/org/openremote/extension/ems/manager/distroenergy/DistroEnergyHandler.java @@ -363,10 +363,10 @@ static double toVolume(double powerNetKw) { * *

Under a JVM zone that observes DST the storage frame is not monotonic, so on the fall-back * day the two instants of the repeated hour collapse onto a single stored row and both read it. - * That is a consequence of the naive primary key upstream (openremote/core#3292). The - * collapse can only duplicate a read, never erase one, so it cannot turn a day with a forecast - * into a skip, and while it lasts the repeated hour is never a gap at all: both passes read the - * one surviving row, so the hour carries as many distinct values as it has ISPs. Once predicted + * That is a consequence of the naive primary key upstream (openremote/core#3292). The collapse + * can only duplicate a read, never erase one, so it cannot turn a day with a forecast into a + * skip, and while it lasts the repeated hour is never a gap at all: both passes read the one + * surviving row, so the hour carries as many distinct values as it has ISPs. Once predicted * datapoints are stored in UTC every instant maps to a row of its own, a producer that writes the * hour once leaves the other pass empty, and that pass is filled flat as above. The day submitted * on the fall-back date therefore changes when #3292 lands; no other day is affected. From 92dac7e796322338bf573d40415e03023f776711 Mon Sep 17 00:00:00 2001 From: Wouter Born Date: Tue, 13 Oct 2026 12:12:02 +0200 Subject: [PATCH 3/3] Use core dir instead of openremote dir --- .github/workflows/ci_cd.yml | 4 ++-- project.gradle | 10 ++++------ spotless.gradle | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci_cd.yml b/.github/workflows/ci_cd.yml index b24f929..83c5751 100644 --- a/.github/workflows/ci_cd.yml +++ b/.github/workflows/ci_cd.yml @@ -51,7 +51,7 @@ jobs: uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: repository: openremote/core - path: openremote + path: core ref: main sparse-checkout: profile sparse-checkout-cone-mode: false @@ -87,7 +87,7 @@ jobs: mkdir -pm 777 tmp # Start the dev-testing stack - docker compose -f openremote/profile/dev-testing.yml up -d --no-build + docker compose -f core/profile/dev-testing.yml up -d --no-build ./gradlew test diff --git a/project.gradle b/project.gradle index 9693e32..78dba9c 100644 --- a/project.gradle +++ b/project.gradle @@ -169,12 +169,10 @@ plugins.withType(JavaPlugin).whenPluginAdded { pluginManager.apply(libs.plugins.testLogger.get().pluginId) test { - workingDir = findProject(":openremote") != null ? project(":openremote").projectDir : rootProject.projectDir - if (findProject(":openremote") == null) { - // Extension-only repos don't ship the manager UI tree expected by ManagerWebService. - // Point tests at a minimal placeholder docroot so container startup still succeeds. - environment "OR_APP_DOCROOT", rootProject.file("test-support/manager-app").absolutePath - } + workingDir = rootProject.projectDir + // Extension-only repos don't ship the manager UI tree expected by ManagerWebService. + // Point tests at a minimal placeholder docroot so container startup still succeeds. + environment "OR_APP_DOCROOT", rootProject.file("test-support/manager-app").absolutePath useJUnitPlatform() testLogging { // set options for log level LIFECYCLE diff --git a/spotless.gradle b/spotless.gradle index d20c3f6..0658da0 100644 --- a/spotless.gradle +++ b/spotless.gradle @@ -41,7 +41,7 @@ def prettierIgnorePatterns = readIgnorePatterns(rootProject.file('tools/spotless def targetWithIgnores = { Collection includes, Collection excludes = [] -> rootProject.fileTree(rootProject.projectDir) { includes.each { include it } - (prettierIgnorePatterns + excludes + ['openremote/**']).each { exclude it } + (prettierIgnorePatterns + excludes + ['core/**']).each { exclude it } } } String blockCommentLicenseDelimiter = '(?![ \\t]*/\\*(?:[ \\t]+|\\R[ \\t]*\\*[ \\t]+)Copyright\\b)(?![ \\t]*\\*)[ \\t]*\\S'