See docs/prs/2026-10-15-PR#163-package-de-javagil.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #163 Reviewed-by: mi <1+mi@noreply.git.javagil.de> Co-authored-by: claude-code <claude-code@javagil.de>
4.6 KiB
PR#163: The code moves from de.hoennig.werkator to de.javagil.werkator
Version: patch
WARNING: This document describes only the change applied in this PR. It may already be outdated once the next PR is merged. Historic PR-documentation is not maintained along with new PRs — treat it as a snapshot, not as current documentation.
Related Links
Problem
The shared workflow (werkregie PR#86) says that names follow javagil.de.
On the JVM, packages, Maven groups and Gradle plugin IDs start with de.javagil.<repo>.
Werkator's code lives in de.hoennig.werkator, and its Maven group is de.hoennig.
The workflow also says that a PR which moves many files starts only when no other PR of the repository is open, and does only the move.
Non-Goals
- No change of behaviour, of an API, of a route or of a configuration key.
- The Docker label
org.hoennig.werkatorstays. It is no package, the rule does not name labels, and a new label would leave the containers of a running Docker host (vm4006) out of the clean-up of stale containers. - Historic PR documents and plan steps keep their old paths: they are snapshots and are not maintained.
- No refactoring along the way.
Specification
Feature: the code lives under de.javagil.werkator
Scenario#163.01: Every class and every test lives under de.javagil.werkator!
So that the package follows the naming rule of the shared workflow.
- Given the sources under
src/main/kotlinandsrc/test/kotlin - When the build compiles and tests them
- Then every package starts with
de.javagil.werkator- and the Maven group is
de.javagil - and no source file names
de.hoennig.werkatorany more
- and the Maven group is
Verified by
- The build (
./gradlew build): it compiles every class and runs every spec at its new place; ktlint refuses a package that does not match its directory.
Scenario#163.02: The nightly mutation build measures the moved classes!
So that the Mutation-CRAP gate keeps judging every method after the move.
- Given the PIT configuration in
build.gradle.kts - When the nightly build
mutationruns on main after the merge - Then
targetClassesandtargetTestsselectde.javagil.werkator.*- and the five specs left out of PIT are left out by their new names
Verified by
- The first nightly run on main after the merge (manual check).
Solution
git mvofsrc/main/kotlin/de/hoennig/werkatorandsrc/test/kotlin/de/hoennig/werkatortode/javagil/werkator, thende.hoennig.werkatorreplaced byde.javagil.werkatorin every source, so git sees renames.build.gradle.kts:group = "de.javagil", and the PITtargetClasses,targetTestsand excluded specs by their new names.application-server.yml: the logging level forde.javagil.werkator.AGENTS.md, the architecture and writing-tests skills,docs/llms.mdand the source links of RFC 0002 and RFC 0004 name the new package.docs/agentic-workflow.mdis the current master copy of werkregie, including the naming rule and the rule for a PR that moves many files.- Version 1.43.3, with an internal entry in the release notes.
Where a class name is visible outside the code was checked before the move:
| Place | Finding |
|---|---|
| Start, systemd unit, runtime bundle | java -jar; Spring Boot writes the start class into the jar itself |
| Stored JSON (results, metrics, state) | no type names, no @JsonTypeInfo |
Plugin IDs, META-INF, kotest settings |
none of Werkator's own |
| Logging levels | only application-server.yml; no host file on mih09 names the old package |
Open Questions
- TODO.mutation: PIT's
.pitest/history.binin main's worktree on mih09 knows the classes only by their old names. The first nightly run after the merge therefore measures every class anew, without the incremental history. A full local run took 1 h 14 min with 4 threads; on mih09 with 2 threads it may come close to the build timeout of 3 h. Watch that run; if it times out, start it once more, as the history of the first run is then partly written. - TODO.vm4006: whether a host file on vm4006 sets a logging level for
de.hoennig.werkatorwas not checked; it is only a level, the instance runs without it.