NetLogo / NetLogo/Netlogo-LLM-Extension

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

Open
#45 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1
Forks
0
Avg merge
3d 1h
Merged PRs (30d)
4

Description

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 #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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with build.sbt at commit 23c3672, check the netLogoVersion change, and reproduce the failure with sbt test. Compare the Scala 3.7.0 setup with netlogo-7.0.4-tests.jar, then determine the intended NetLogo target and verify that test compilation and CI are green with the selected version combination.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
build-system, ci-cd
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.