.github/workflows/release.yml
... ...
@@ -159,6 +159,7 @@ jobs:
159 159
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2.2.1
160 160
with:
161 161
tag_name: ${{ env.SIMPLE_VERSION_INFO }}
162
+ target_commitish: ${{ github.ref_name }}
162 163
name: ${{ env.SIMPLE_VERSION_INFO }}
163 164
draft: false
164 165
prerelease: false
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BoatClassMasterdata.java
... ...
@@ -128,7 +128,7 @@ public enum BoatClassMasterdata {
128 128
RS_FEVA ("RS Feva", true, 3.64, 1.42, BoatHullType.MONOHULL, true, "RSFeva"),
129 129
RS_TERA ("RS Tera", true, 2.87, 1.23, BoatHullType.MONOHULL, false, "RSTera"),
130 130
RS_VAREO ("RS Vareo", true, 4.25, 1.57, BoatHullType.MONOHULL, true, "RS_VAREO", "RSVareo", "RS Vareo"),
131
- RS_VENTURE ("RS Venture", true, 4.9, 2.0, BoatHullType.MONOHULL, true, "RSVenture", "RS Venture Connect"),
131
+ RS_VENTURE ("RS Venture", true, 4.9, 2.0, BoatHullType.MONOHULL, true, "RSVenture", "RS Venture Connect", "RS Venture Connect SCS"),
132 132
SALONA_46 ("Salona 46", true, 14.14, 4.2, BoatHullType.MONOHULL, true, "Salona-46"),
133 133
SCAN_KAP_99 ("Scan-kap 99", true, 9.86, 2.61, BoatHullType.MONOHULL, true, "Scan Kap 99"),
134 134
SK_22 ("SK 22", true, 12, 2, BoatHullType.MONOHULL, true, "22er Schärenkreuzer", "22", "SK22", "22 sq.m."),
java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractLeaderboardWithCache.java
... ...
@@ -542,10 +542,6 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
542 542
});
543 543
futuresForCompetitorAndColumnName.put(new Pair<>(competitor, raceColumn.getName()), new Pair<>(row, future));
544 544
}
545
- if (addOverallDetails) {
546
- //this reuses several prior calculated fields, so must be evaluated after them
547
- row.totalScoredRaces = this.getTotalRaces(competitor, row, timePoint);
548
- }
549 545
result.rows.put(competitorDTO, row);
550 546
String displayName = this.getDisplayName(competitor);
551 547
if (displayName != null) {
... ...
@@ -565,6 +561,10 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
565 561
final String columnName = competitorAndRaceColumnNameAndRowAndFuture.getKey().getB();
566 562
final Future<LeaderboardEntryDTO> future = competitorAndRaceColumnNameAndRowAndFuture.getValue().getB();
567 563
rowForCompetitor.fieldsByRaceColumnName.put(columnName, future.get());
564
+ if (addOverallDetails) {
565
+ //this reuses several prior calculated fields, so must be evaluated after them
566
+ rowForCompetitor.totalScoredRaces = this.getTotalRaces(competitorAndRaceColumnNameAndRowAndFuture.getKey().getA(), rowForCompetitor, timePoint);
567
+ }
568 568
} catch (InterruptedException e) {
569 569
throw new RuntimeException(e);
570 570
} catch (ExecutionException e) {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
... ...
@@ -2972,7 +2972,9 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
2972 2972
Pair<Double, Double> result;
2973 2973
double defaultAngle = getRace().getBoatClass().getMinimumAngleBetweenDifferentTacksUpwind();
2974 2974
double threshold = 10;
2975
- result = usePolarsIfPossible(wind, defaultAngle, LegType.UPWIND, threshold);
2975
+ result = usePolarsIfPossible(wind != null && wind.getKnots()==0?new WindImpl(wind.getPosition(),
2976
+ wind.getTimePoint(), new KnotSpeedWithBearingImpl(10 /* default 10kts */, wind.getBearing())):wind,
2977
+ defaultAngle, LegType.UPWIND, threshold);
2976 2978
return result;
2977 2979
}
2978 2980
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html
... ...
@@ -8,6 +8,13 @@
8 8
<h5 class="articleSubheadline">December 2025</h5>
9 9
<ul class="bulletList">
10 10
<li>Added boat class Fareast 28R.</li>
11
+ <li>When no wind speed is measured at all, let the clustering into different tacks make
12
+ assumptions (e.g., 10kts true wind speed) for the wind direction estimation from the
13
+ courses over ground. This wind speed default assumption is then used to determine
14
+ average maneuver angles for the boat type in those wind speeds, which in turn helps
15
+ computing the minimum course difference required between the clusters for the different
16
+ tacks. All this helps to improve wind direction estimation results if no wind speed
17
+ is provided at all.</li>
11 18
</ul>
12 19
<h5 class="articleSubheadline">October 2025</h5>
13 20
<ul class="bulletList">