Skip to content

CI broken on NetLogo 7.0.4: Scala 3.7 compiler crash compiling TestLanguage suites #45

Description

@JNK234

Summary

The release/llm-1.0.0-library-submission line (commit 23c3672, "prepare v1.0.0") bumped netLogoVersion in build.sbt from 7.0.0-2486d1e to 7.0.4. Against NetLogo 7.0.4, sbt test no longer compiles: the Scala 3.7.0 compiler crashes while typechecking the test suites that extend the NetLogo test harness.

main is unaffected because it still targets 7.0.0-2486d1e.

Reproduction

Check out 23c3672 (or any branch with netLogoVersion := "7.0.4") and run sbt test:

[error] ## Exception when compiling 3 sources to .../test-classes
[error] java.lang.AssertionError: assertion failed: class TestLanguage has non-class parent:
        TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class nlogo)),object util),AnyFunSuiteEx)
        at dotty.tools.dotc.core.SymDenotations$ClassDenotation.traverse$1(SymDenotations.scala:2015)
        ...
        while typechecking src/test/OllamaIntegrationTests.scala

Verified on GitHub CI (Java 17 / Ubuntu) and locally (Liberica JDK 17, Homebrew JDK 24). The crash is in the compiler itself (a dotty assertFailed), not user code — it fires on any test class deriving from TestLanguage (which extends org.nlogo.util.AnyFunSuiteEx from netlogo-7.0.4-tests.jar).

Cause

netlogo-7.0.4-tests.jar's AnyFunSuiteEx is compiled in a way that the Scala 3.7.0 typer rejects as a "non-class parent" when a downstream module compiles a subclass. The 7.0.0-2486d1e tests jar does not trigger this.

Impact

  • Any branch/release targeting NetLogo 7.0.4 cannot run its test suite in CI. This blocks the v1.0.0 packaging line from having green CI.
  • Reliability-fixes PR Reliability fixes: history rollback, async race, 429 retry #44 works around it by rebasing onto main (7.0.0), so those fixes are unblocked — but the version-retarget itself remains broken.

What needs to happen

Someone with NetLogo-internals context should determine the correct fix. Candidate directions:

  1. Publish/point at a netlogo-7.0.4-tests.jar built against a Scala 3 version compatible with the extension's scalaVersion (3.7.0), or bump the extension's scalaVersion to whatever the 7.0.4 tests jar was built with.
  2. Confirm the intended NetLogo target for v1.0.0 (7.0.4 was chosen to drop a transitive Matomo jar) and whether a different patch release avoids the tests-jar incompatibility.
  3. If the tests jar can't be made compatible short-term, decide whether the v1.0.0 line should keep 7.0.0-2486d1e for the test scope while shipping against 7.0.4.

This is a build/infra issue, independent of extension logic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions