Skip to content

Bump VirtusLab/scala-cli-setup from 1.14.0 to 1.15.0#5376

Merged
softwaremill-ci merged 1 commit into
masterfrom
dependabot/github_actions/VirtusLab/scala-cli-setup-1.15.0
Jul 7, 2026
Merged

Bump VirtusLab/scala-cli-setup from 1.14.0 to 1.15.0#5376
softwaremill-ci merged 1 commit into
masterfrom
dependabot/github_actions/VirtusLab/scala-cli-setup-1.15.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 6, 2026

Copy link
Copy Markdown
Contributor

Bumps VirtusLab/scala-cli-setup from 1.14.0 to 1.15.0.

Release notes

Sourced from VirtusLab/scala-cli-setup's releases.

v1.15.0

What's Changed

Full Changelog: VirtusLab/scala-cli-setup@v1...v1.15.0

Commits
  • 42e5f90 Update dist (#1178)
  • 6875f33 Bump coursier to 2.1.25-M26 (was 2.1.25-M25) (#1177)
  • e76d1ae chore(deps-dev): Bump @​vercel/ncc from 0.44.0 to 0.44.1 (#1172)
  • 983ba95 chore(deps-dev): Bump typescript-eslint from 8.62.0 to 8.62.1 (#1173)
  • 5f6af6b chore(deps-dev): Bump prettier from 3.9.1 to 3.9.4 (#1174)
  • b1eac3b Update dist (#1176)
  • f25cbbc Update scala-cli version to 1.15.0 (#1175)
  • 0d26433 Merge pull request #1169 from VirtusLab/dependabot/npm_and_yarn/eslint-10.6.0
  • 926e3c4 Merge pull request #1168 from VirtusLab/dependabot/npm_and_yarn/prettier-3.9.1
  • 09e4468 chore(deps-dev): Bump eslint from 10.5.0 to 10.6.0
  • Additional commits viewable in compare view

@adamw

adamw commented Jul 7, 2026

Copy link
Copy Markdown
Member

@dependabot rebase

Bumps [VirtusLab/scala-cli-setup](https://github.com/virtuslab/scala-cli-setup) from 1.14.0 to 1.15.0.
- [Release notes](https://github.com/virtuslab/scala-cli-setup/releases)
- [Commits](VirtusLab/scala-cli-setup@d320e01...42e5f90)

---
updated-dependencies:
- dependency-name: VirtusLab/scala-cli-setup
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/github_actions/VirtusLab/scala-cli-setup-1.15.0 branch from 3418da2 to 1c10b7d Compare July 7, 2026 11:31
adamw added a commit that referenced this pull request Jul 7, 2026
## Problem

The test `properly update metrics when a request times out` (in
`NettyFutureRequestTimeoutTests`, and its sync counterpart in
`NettySyncRequestTimeoutTests`) is flaky on CI, failing intermittently
with `1 was not equal to 0` at the `activeRequests.get() shouldBe 0`
assertion. It failed on three dependency-update PRs in the week of
2026-07-06 alone (runs for #5379, #5376 and #5373).

The root cause is a race in the test, not in production code: the
metrics are only decremented when the endpoint's logic completes, which
for the Future-based server happens ~1 second *after* the 503 timeout
response is received (the `Future` running the logic is not
interruptible). The test used a fixed `Thread.sleep(1100)`, leaving only
a ~100 ms margin before asserting — not enough on a loaded CI machine.
The sync test had an even tighter fixed `Thread.sleep(100)`.

## Fix

Replace the fixed sleeps with `eventually { ... }` and a widened
patience config (15 s timeout / 150 ms interval) — the same idiom
already used for the same reason in `ServerMetricsTest`. This asserts
eventual consistency instead of racing the asynchronous metrics update.
No production code is changed.

## Verification

Ran locally:
- `sbt "nettyServer/testOnly
sttp.tapir.server.netty.NettyFutureServerTest -- -z \"properly update
metrics\""` — passed
- `sbt "nettyServerSync3/testOnly
sttp.tapir.server.netty.sync.NettySyncServerTest -- -z \"properly update
metrics\""` — passed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@softwaremill-ci softwaremill-ci merged commit 3d11a5e into master Jul 7, 2026
32 checks passed
@softwaremill-ci softwaremill-ci deleted the dependabot/github_actions/VirtusLab/scala-cli-setup-1.15.0 branch July 7, 2026 12:51
adamw added a commit that referenced this pull request Jul 7, 2026
)

## Problem

CI test runs intermittently hang: the build goes silent for ~9 minutes
until the 15-minute `nick-fields/retry` timeout kills sbt, and the
second attempt then frequently times out the same way, failing the job
after ~30 minutes. This was observed on dependency PRs #5373, #5362 and
#5376 during the week of 2026-06-27..2026-07-07. The suspected trigger
is the Vert.x 5 upgrade — a follow-up PR will address the Vert.x-side
cause; this PR makes the test infrastructure resilient and adds
diagnostics.

Two failure modes:

* **(A)** a single test hangs mid-suite (often the vertx cats/zio suites
— WebSocket/streaming waits with no timeout). Tests are not forked and
run one suite at a time, so one hung test stalls the entire run.
* **(B)** all tests pass, but `TestSuite.afterAll` blocks forever in an
unbounded `release.unsafeRunSync()` (e.g. a wedged `Vertx.close`), so
sbt never finishes.

## Changes

* **`DefaultCreateServerTest`**: each test's `IO` gets
`.timeout(3.minutes)` before `.unsafeToFuture()` — a hung test is
cancelled (running the server-close finalizer) instead of hanging the
suite.
* **`TestSuite` (JVM)**:
* every registered test is wrapped in a 4-minute safety-net timeout
(`IO.fromFuture(...).timeout(4.minutes)`), catching `Test`s constructed
outside `DefaultCreateServerTest`;
* suite resource acquisition (`tests.allocated`) is bounded to 2
minutes;
* `afterAll` bounds `release` and `shutdownDispatcher` to 1 minute each,
so a wedged backend close fails loudly instead of hanging the non-forked
sbt JVM forever.
* **`CatsVertxServerTest`**: the suite-level `vertx.close` wait is
bounded to 30 seconds; on timeout/failure it logs and continues.
* **CI workflow (JVM Test step only)**: a background watchdog checks
`output.log`'s mtime every 30 seconds; if the build has been silent for
>240 seconds it appends `jcmd <pid> Thread.print` dumps of all JVMs to
`thread-dumps.log`, which is uploaded as an artifact
(`if-no-files-found: ignore`). The sbt exit code and the existing `tee
output.log` + leak-grep behaviour are preserved.

## Verification

* `sbt "serverTests/Test/compile" "tests/Test/compile"` — compiles.
* `sbt "vertxServerCats2_12/testOnly
sttp.tapir.server.vertx.cats.CatsVertxServerTest"` — all 285 tests pass
through the new timeout wrappers and the bounded vertx close.
* `sbt "nettyServer/testOnly
sttp.tapir.server.netty.NettyFutureServerTest"` — 278/279 pass (incl.
the 5s graceful-shutdown and request-timeout metrics tests), confirming
the timeout wrappers don't regress longer-running tests. The single
failure (`bind(..) failed: Address already in use` in the leak test,
which uses the default port 8080) is environmental — running the same
suite on unmodified master on the same machine fails identically.
* `python3 -c "import yaml;
yaml.safe_load(open('.github/workflows/ci.yml'))"` — workflow YAML
valid.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants