Move Jackson 3 JMH benchmarks into a separate unpublished project - #1017
Merged
xerial merged 1 commit intoAug 13, 2026
Merged
Conversation
JmhPlugin adds jmh-core, jmh-generator-bytecode and jmh-generator-reflection to libraryDependencies without a configuration, so enabling it on msgpack-jackson3 published them as compile dependencies of jackson-dataformat-msgpack, inherited by every consumer along with jopt-simple, commons-math3 and ASM. The released org.msgpack:jackson-dataformat-msgpack POM has no such entries. Move src/jmh into msgpack-jackson3-benchmark, which depends on msgpack-jackson3 and is not published. This is also how sbt-jmh recommends laying out benchmarks, since the code generator needs a project of its own.
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes a packaging problem I introduced in #987.
JmhPluginaddsjmh-core,jmh-generator-bytecodeandjmh-generator-reflectiontolibraryDependencieswithout a configuration. Since #987 enabled it onmsgpack-jackson3, which is published, those three become compile dependencies oforg.msgpack.jackson3:jackson-dataformat-msgpackand are inherited by every consumer along withjopt-simple,commons-math3andasm:The released
org.msgpack:jackson-dataformat-msgpack:0.9.11POM has no such entries.Fix
Move
msgpack-jackson3/src/jmhinto a newmsgpack-jackson3-benchmarkproject withpublish / skip := truethat depends onmsgpack-jackson3, and dropJmhPluginfrom the published module. This is the layoutsbt-jmh's README asks for, since the generator needs a project of its own and the benchmark subproject should not be published.Verification
msgpack-jackson3/makePom:msgpack-coreandjackson-databindare the only compile-scope dependencies left, alongside the usual test-scoped entriesmsgpack-jackson3/libraryDependencies: no JMH at allmsgpack-jackson3-benchmark/Jmh/compile: generator processes 11 classes, compiles 29 generated sourcestest:msgpack-core193,msgpack-jackson77,msgpack-jackson3123jcheckStyle,scalafmtCheckAll,scalafmtSbtCheck: cleanThe benchmark project is aggregated into the root next to
msgpack-jackson3. Note thatsrc/jmhis not compiled bytestin either layout, so CI does not verify the benchmarks build.