Release v0.9.21: the watcher's reach into origin is visible
Also fixes the log-capture test added with step 19: the test JVM logs at WARN, so the INFO line reporting the recovered fetch never reached the appender. The helper now lowers the level explicitly. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e4e4cd1899
commit
0229081570
+1
-1
@@ -12,7 +12,7 @@ group = "de.hoennig"
|
|||||||
// bump at least the patch version for every deployment — and only then, not per commit —
|
// bump at least the patch version for every deployment — and only then, not per commit —
|
||||||
// so the UI footer (BuildProperties), --version and the release notes identify what is
|
// so the UI footer (BuildProperties), --version and the release notes identify what is
|
||||||
// actually running; a deployment bundles whatever was committed since the last one
|
// actually running; a deployment bundles whatever was committed since the last one
|
||||||
version = "0.9.20"
|
version = "0.9.21"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain {
|
toolchain {
|
||||||
|
|||||||
@@ -7,6 +7,20 @@
|
|||||||
<div th:replace="~{fragments :: nav(${view})}"></div>
|
<div th:replace="~{fragments :: nav(${view})}"></div>
|
||||||
<div class="panel release-notes">
|
<div class="panel release-notes">
|
||||||
|
|
||||||
|
<h2>v0.9.21 <span class="muted">— 2026-08-30</span></h2>
|
||||||
|
<ul>
|
||||||
|
<li>An origin the watcher cannot reach is now visible in the web UI: a banner above the
|
||||||
|
table says that the list below is not updating, since when, and why. Until now the
|
||||||
|
page kept showing its last known state, calm and plausible, while GitTally had not
|
||||||
|
been able to fetch for an hour — the failure lived in the log alone. The banner is
|
||||||
|
deliberately separate from the live indicator: that one says whether your browser
|
||||||
|
reaches the server, this one whether the server reaches origin.</li>
|
||||||
|
<li>A lasting fetch failure is logged when its message changes instead of on every poll
|
||||||
|
cycle, and the recovery is logged once. One wrong token used to write several hundred
|
||||||
|
identical warnings an hour. An invalid <code>atTimes</code> slot is likewise reported
|
||||||
|
once per slot.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h2>v0.9.20 <span class="muted">— 2026-08-29</span></h2>
|
<h2>v0.9.20 <span class="muted">— 2026-08-29</span></h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>A build definition is now split in two: a <code>trigger</code> block says when the
|
<li>A build definition is now split in two: a <code>trigger</code> block says when the
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package de.hoennig.gittally.watcher
|
package de.hoennig.gittally.watcher
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.Level
|
||||||
import ch.qos.logback.classic.Logger
|
import ch.qos.logback.classic.Logger
|
||||||
import ch.qos.logback.classic.spi.ILoggingEvent
|
import ch.qos.logback.classic.spi.ILoggingEvent
|
||||||
import ch.qos.logback.core.read.ListAppender
|
import ch.qos.logback.core.read.ListAppender
|
||||||
@@ -773,11 +774,16 @@ class WatcherTest : FunSpec() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Collects this spec's [Watcher] log messages; the returned lambda reads them at any point. */
|
/**
|
||||||
|
* Collects this spec's [Watcher] log messages; the returned lambda reads them at any point.
|
||||||
|
* The level is lowered explicitly — the test JVM logs at WARN, which would drop the very
|
||||||
|
* INFO line that says the fetch recovered.
|
||||||
|
*/
|
||||||
private fun captureWatcherLog(): () -> List<String> {
|
private fun captureWatcherLog(): () -> List<String> {
|
||||||
val logger = LoggerFactory.getLogger(Watcher::class.java) as Logger
|
val logger = LoggerFactory.getLogger(Watcher::class.java) as Logger
|
||||||
val appender = ListAppender<ILoggingEvent>()
|
val appender = ListAppender<ILoggingEvent>()
|
||||||
appender.start()
|
appender.start()
|
||||||
|
logger.level = Level.INFO
|
||||||
logger.addAppender(appender)
|
logger.addAppender(appender)
|
||||||
return { appender.list.map { it.formattedMessage } }
|
return { appender.list.map { it.formattedMessage } }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user