Skip to content

main does not compile: spec asserts on a renamed owner-avatar field #7632

Description

@aglinxinyuan

What happened?

main does not compile. ComputingUnitManagingService / Test / compileIncremental fails with two errors:

computing-unit-managing-service/src/test/scala/org/apache/texera/service/resource/ComputingUnitManagingResourceSpec.scala:179:10:
  value ownerGoogleAvatar is not a member of
  org.apache.texera.service.resource.ComputingUnitManagingResource.DashboardWorkflowComputingUnit
computing-unit-managing-service/src/test/scala/.../ComputingUnitManagingResourceSpec.scala:285:13:
  value ownerGoogleAvatar is not a member of ...

Because the amber jobs build the whole test tree, any PR whose amber jobs run after this landed fails on it, regardless of what the PR itself touches — #7631 is an example, where the only change is four tests in an unrelated module's spec.

To be precise about the blast radius rather than overstate it: PRs whose amber jobs ran before the breakage are still showing green (their runs predate it and would fail if re-run), and PRs labelled frontend-only skip the amber stack entirely. So this is not "every open PR is red right now" — it is "every amber run from here on is red until this is fixed".

Two PRs raced. #7563 renamed the field on DashboardWorkflowComputingUnit to ownerAvatar. #7580 added spec assertions written against the old name ownerGoogleAvatar. Each was green against its own base, and neither was rebased onto the other before merging, so the combination is what breaks.

The production case class on main today reads:

case class DashboardWorkflowComputingUnit(
    computingUnit: WorkflowComputingUnit,
    status: String,
    metrics: WorkflowComputingUnitMetrics,
    isOwner: Boolean,
    accessPrivilege: EnumType,
    ownerAvatar: String,
    ownerName: String
)

How to reproduce?

On a clean checkout of main:

sbt "ComputingUnitManagingService/Test/compile"

Fails with the two errors above. I verified this by stashing the fix and re-running: unpatched main exits 1 with exactly those two errors, and the patched tree compiles clean.

Version/Branch

1.3.0-incubating-SNAPSHOT (main)

Expected behavior

main compiles, and the amber jobs pass on PRs that do not touch this module.

The fix is a two-line rename of the accessor calls in the spec; the field's value is unchanged, and all 31 of that spec's tests pass afterwards, so the assertions were right about the value all along.

Worth noting for the future: this class of breakage is invisible to per-PR CI when two PRs touch different files. A required up-to-date-with-base check, or simply rebasing before merge, would have caught it.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions