Files
llm-wiki/raw/errors/onboarding-fixture-package-path-mismatch-2026-06-25.md
T

2.2 KiB

title, source_type, status, tags, created
title source_type status tags created
onboarding fixture package path mismatch error-note raw
error
ca-skeleton
gradle
test-fixture
package-layout
2026-06-25

onboarding fixture package path mismatch

Parent

Symptom

./gradlew check failed at :app-bootstrap:compileSampleOffTestJava after renaming the onboarding dry-run fixture from Ticket* to FeatureAggregate*.

Compiler errors said packages such as dev.caskeleton.onboarding.domain.feature and dev.caskeleton.onboarding.adapter.persistence.entity did not exist, even though focused :app-bootstrap:test had previously passed.

Root Cause

Some fixture files lived under:

src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/allowed/onboarding/**

while declaring:

package dev.caskeleton.onboarding...

The logical package was intentionally chosen to avoid ArchUnit false positives from bootstrap in package names, but leaving the files under the bootstrap/architecture/allowed path created IDE/source-set confusion and exposed stale or incomplete compile output under sampleOffTest.

Fix

Move the onboarding positive fixture to a path that matches its package:

src/app-bootstrap/src/test/java/dev/caskeleton/onboarding/**

Keep the package declarations as:

dev.caskeleton.onboarding.*

Verification

  • ./gradlew :app-bootstrap:compileTestJava :app-bootstrap:compileSampleOffTestJava --rerun-tasksBUILD SUCCESSFUL
  • ./gradlew :app-bootstrap:test --tests '*DomainFeatureOnboardingContractTest' --tests '*ArchitectureViolationFixtureTest' :app-bootstrap:sampleOffTest --tests '*DomainFeatureOnboardingContractTest' --tests '*ArchitectureViolationFixtureTest'BUILD SUCCESSFUL
  • ./gradlew checkBUILD SUCCESSFUL

Prevention

For architecture positive fixtures that intentionally use a synthetic package, make the source path match the synthetic package. Avoid putting synthetic production-like fixtures under dev/caskeleton/bootstrap/architecture/allowed/** unless the package also starts with dev.caskeleton.bootstrap.architecture.allowed.