Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
<sonar.organization>gridsuite</sonar.organization>
<sonar.projectKey>org.gridsuite:network-modification-server</sonar.projectKey>
<!-- TODO network-modification.version remove when included in gridsuite-dependencies -->
<network-modification.version>0.81.0</network-modification.version>
<network-modification.version>0.82.0-SNAPSHOT</network-modification.version> <!-- TODO UPDATE TO CORRECT VERSION AFTER NETWORK MODIFICATION IS UPDATED -->
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

What is the latest released (non-SNAPSHOT) version of Maven artifact org.gridsuite:gridsuite-network-modification, and is 0.82.0 available as a stable release?

💡 Result:

As of May 18, 2026, the latest released (non-SNAPSHOT) version of the Maven artifact org.gridsuite:gridsuite-network-modification is 0.78.0 [1]. Regarding version 0.82.0, there is no evidence that this version is available as a stable release. The official repository indicates that the latest release is v0.72.0 [2][3], and while some external indexing services reference version 0.78.0 [1], version 0.82.0 has not been identified as a released artifact.

Citations:


Remove SNAPSHOT dependency from main branch and use a released version.

Using 0.82.0-SNAPSHOT makes builds non-reproducible and can break unexpectedly when upstream republishes artifacts. The latest released version of org.gridsuite:gridsuite-network-modification is 0.78.0. Either upgrade to 0.78.0, wait for 0.82.0 to be released, or use a temporary branch-only strategy before merging.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pom.xml` at line 56, Update the Maven property network-modification.version
to remove the SNAPSHOT and point to a released artifact: change the value from
0.82.0-SNAPSHOT to a released version (e.g., 0.78.0) so builds are reproducible;
ensure any references to org.gridsuite:gridsuite-network-modification in the
pom(s) use that released version and run a quick mvn -DskipTests verify to
confirm dependency resolution succeeds before merging.

</properties>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,10 @@ public BatteryModificationInfos toModificationInfos() {
.stepUpTransformerX(toAttributeModification(getStepUpTransformerX()))
.reactiveCapabilityCurve(toAttributeModification(getReactiveCapabilityCurve()))
.reactiveCapabilityCurvePoints(DTOUtils.toReactiveCapabilityCurvePointsModificationInfos(getReactiveCapabilityCurvePoints()))
.pMeasurementValue(toAttributeModification(getPMeasurementValue()))
.pMeasurementValidity(toAttributeModification(getPMeasurementValidity()))
.qMeasurementValue(toAttributeModification(getQMeasurementValue()))
.qMeasurementValidity(toAttributeModification(getQMeasurementValidity()))
// properties
.properties(CollectionUtils.isEmpty(getProperties()) ? null :
getProperties().stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import com.powsybl.iidm.network.ReactiveLimitsKind;
import com.powsybl.iidm.network.extensions.ActivePowerControl;
import com.powsybl.iidm.network.extensions.BatteryShortCircuit;
import com.powsybl.iidm.network.extensions.Measurement;
import com.powsybl.iidm.network.extensions.Measurements;
import org.gridsuite.modification.dto.*;
import org.gridsuite.modification.server.dto.NetworkModificationsResult;
import org.gridsuite.modification.server.utils.NetworkCreation;
Expand Down Expand Up @@ -40,6 +42,10 @@
class BatteryModificationTest extends AbstractInjectionModificationTest {
private static final String PROPERTY_NAME = "property-name";
private static final String PROPERTY_VALUE = "property-value";
private static final Double MEASUREMENT_P_VALUE = 10.0;
private static final Boolean MEASUREMENT_P_VALID = false;
private static final Double MEASUREMENT_Q_VALUE = 0.5;
private static final Boolean MEASUREMENT_Q_VALID = true;

@Override
protected Network createNetwork(UUID networkUuid) {
Expand Down Expand Up @@ -68,6 +74,10 @@ protected ModificationInfos buildModification() {
.stepUpTransformerX(new AttributeModification<>(0.2, OperationType.SET))
.participate(new AttributeModification<>(true, OperationType.SET))
.reactiveCapabilityCurve(new AttributeModification<>(true, OperationType.SET))
.pMeasurementValue(new AttributeModification<>(MEASUREMENT_P_VALUE, OperationType.SET))
.pMeasurementValidity(new AttributeModification<>(MEASUREMENT_P_VALID, OperationType.SET))
.qMeasurementValue(new AttributeModification<>(MEASUREMENT_Q_VALUE, OperationType.SET))
.qMeasurementValidity(new AttributeModification<>(MEASUREMENT_Q_VALID, OperationType.SET))
.properties(List.of(FreePropertyInfos.builder().name(PROPERTY_NAME).value(PROPERTY_VALUE).build()))
.build();
}
Expand Down Expand Up @@ -116,6 +126,7 @@ protected void assertAfterNetworkModificationCreation() {
assertNotNull(batteryShortCircuit);
assertEquals(0.1, batteryShortCircuit.getDirectTransX());
assertEquals(0.2, batteryShortCircuit.getStepUpTransformerX());
assertMeasurements(modifiedBattery);
}

@Override
Expand Down Expand Up @@ -415,4 +426,15 @@ void testBatteryShortCircuitAttributesModification() throws Exception {
assertThat(createdModification).recursivelyEquals(batteryModificationInfos);
testNetworkModificationsCount(getGroupId(), 2);
}

private void assertMeasurements(Battery battery) {
Measurements<?> measurements = (Measurements<?>) battery.getExtension(Measurements.class);
assertNotNull(measurements);
Collection<Measurement> activePowerMeasurements = measurements.getMeasurements(Measurement.Type.ACTIVE_POWER).stream().toList();
Collection<Measurement> reactivePowerMeasurements = measurements.getMeasurements(Measurement.Type.REACTIVE_POWER).stream().toList();
assertThat(activePowerMeasurements).isNotEmpty();
assertThat(reactivePowerMeasurements).isNotEmpty();
assertThat(activePowerMeasurements).allMatch(m -> m.getValue() == MEASUREMENT_P_VALUE && m.isValid() == MEASUREMENT_P_VALID);
assertThat(reactivePowerMeasurements).allMatch(m -> m.getValue() == MEASUREMENT_Q_VALUE && m.isValid() == MEASUREMENT_Q_VALID);
}
}
Loading