Skip to content

chore: change group id of jmh fork#3

Merged
not-matthias merged 1 commit intocod-2309-walltime-benchmarks-with-flamegraphsfrom
cod-2400-change-group-id-of-jmh-fork
Mar 26, 2026
Merged

chore: change group id of jmh fork#3
not-matthias merged 1 commit intocod-2309-walltime-benchmarks-with-flamegraphsfrom
cod-2400-change-group-id-of-jmh-fork

Conversation

@not-matthias
Copy link
Copy Markdown
Member

@not-matthias not-matthias commented Mar 25, 2026

No description provided.

@linear
Copy link
Copy Markdown

linear bot commented Mar 25, 2026

COD-2400 Change group ID of JMH fork

What?

We're currently reusing the org.openjdk.jmh group ID, which allows users to simply change the version and select ours:

plugins {
    java
    id("me.champeau.jmh") version "0.7.2"
}

jmh {
    jmhVersion.set("1.37.0-codspeed.1")
}

However, if we want to publish our fork on MavenCentral, this won't work as they require a unique group id. This means we'll have to rename org.openjdk.jmh to io.codspeed.jmh which will require further changes in the Users code/configuration.

For gradle, they'll have to substitute the package:

configurations.all {
    resolutionStrategy.dependencySubstitution {
        substitute(module("org.openjdk.jmh:jmh-core"))
            .using(module("io.codspeed.jmh:jmh-core:1.37.0-codspeed.1"))
        substitute(module("org.openjdk.jmh:jmh-generator-annprocess"))
            .using(module("io.codspeed.jmh:jmh-generator-annprocess:1.37.0-codspeed.1"))
    }
}

In Maven, we'd just have to replace the package name:

<dependency>
    <groupId>io.codspeed.jmh</groupId>  <!-- just change this -->
    <artifactId>jmh-core</artifactId>
    <version>1.37.0-codspeed.1</version>
</dependency>

How?

  • Change group id to io.codspeed.jmh
  • Remove -codspeed.1 version suffix
  • Update docs (installation for maven/gradle)

@not-matthias not-matthias changed the base branch from main to cod-2309-walltime-benchmarks-with-flamegraphs March 25, 2026 15:12
@not-matthias not-matthias force-pushed the cod-2400-change-group-id-of-jmh-fork branch 2 times, most recently from 8122563 to ec4fb25 Compare March 25, 2026 15:22
@not-matthias not-matthias requested a review from Copilot March 25, 2026 15:24
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repository’s forked JMH build/publish coordinates by moving it from org.openjdk.jmh to io.codspeed.jmh, and aligns the examples/composite-build wiring accordingly.

Changes:

  • Change the JMH fork Maven/Gradle coordinates to groupId=io.codspeed.jmh and version=0.1.0.
  • Add Gradle composite-build dependency substitution so requests for org.openjdk.jmh:* resolve to the included jmh-fork projects.
  • Update Maven and Gradle examples plus contributor docs to reflect the new coordinates/versioning.

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
settings.gradle.kts Adds composite-build substitutions to map org.openjdk.jmh modules to the included jmh-fork projects.
jmh-fork/pom.xml Updates parent POM groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-samples/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-generator-reflection/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-generator-bytecode/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-generator-asm/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-generator-annprocess/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-core/pom.xml Updates parent groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-core-it/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-core-ct/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-core-benchmarks/pom.xml Updates parent/dependency groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-archetypes/pom.xml Updates parent groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-archetypes/jmh-scala-benchmark-archetype/src/main/resources/archetype-resources/pom.xml Updates archetype resource dependencies groupId to io.codspeed.jmh.
jmh-fork/jmh-archetypes/jmh-scala-benchmark-archetype/pom.xml Updates parent groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-archetypes/jmh-kotlin-benchmark-archetype/src/main/resources/archetype-resources/pom.xml Updates archetype resource dependencies groupId to io.codspeed.jmh.
jmh-fork/jmh-archetypes/jmh-kotlin-benchmark-archetype/pom.xml Updates parent groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-archetypes/jmh-java-benchmark-archetype/src/main/resources/archetype-resources/pom.xml Updates archetype resource dependencies groupId to io.codspeed.jmh.
jmh-fork/jmh-archetypes/jmh-java-benchmark-archetype/pom.xml Updates parent groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/jmh-archetypes/jmh-groovy-benchmark-archetype/src/main/resources/archetype-resources/pom.xml Updates archetype resource dependencies groupId to io.codspeed.jmh.
jmh-fork/jmh-archetypes/jmh-groovy-benchmark-archetype/pom.xml Updates parent groupId/version to io.codspeed.jmh:0.1.0.
jmh-fork/build.gradle.kts Updates Gradle-published coordinates to io.codspeed.jmh:0.1.0.
examples/example-maven/pom.xml Updates example dependencies and property to io.codspeed.jmh:0.1.0.
examples/example-gradle/build.gradle.kts Updates the configured JMH version to 0.1.0.
CONTRIBUTING.md Updates version-bump guidance to the new groupId/versioning scheme.
AGENTS.md Updates publishing/versioning guidance to the new groupId/versioning scheme.
Comments suppressed due to low confidence (2)

AGENTS.md:80

  • AGENTS.md says to update the version reference in root build.gradle.kts, but the root build.gradle.kts currently has no JMH version reference. The version is set in jmh-fork/build.gradle.kts and in the example projects (e.g. examples/example-gradle/build.gradle.kts and examples/example-maven/pom.xml), so the docs should point to the right files.
Then update the version reference in root `build.gradle.kts`.

CONTRIBUTING.md:12

  • CONTRIBUTING.md says to update the version reference in build.gradle.kts, but there is no JMH version reference in the root build.gradle.kts. This should reference jmh-fork/build.gradle.kts (and the example build files that pin the JMH version) to avoid contributors updating the wrong place.

This updates all pom.xml files in the multi-module project. After bumping, also update the version reference in build.gradle.kts.

</details>



---

💡 <a href="/CodSpeedHQ/codspeed-jvm/new/main?filename=.github/instructions/*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Mar 25, 2026

Merging this PR will degrade performance by 26.8%

⚡ 33 improved benchmarks
❌ 11 regressed benchmarks
✅ 706 untouched benchmarks
⏩ 9 skipped benchmarks1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
generateCombinations[6]_semeru 11.4 µs 9 µs +26.41%
findHighestSetBit[0]_semeru 11 ns 8 ns +37.5%
coinChange[50]_semeru 1,043 ns 863 ns +20.86%
coinChange[200]_semeru 4.1 µs 3.5 µs +16.68%
coinChange[100]_semeru 2 µs 1.7 µs +17.55%
fibonacciMemo[10]_semeru 32 ns 28 ns +14.29%
subsetSum[10]_semeru 426 ns 495 ns -13.94%
shellSort[10000]_semeru 3.2 ms 2.7 ms +19.27%
shellSort[100]_semeru 11 µs 8.1 µs +36.55%
shellSort[1000]_semeru 189.5 µs 166.3 µs +13.95%
grayToBinary[65535]_microsoft 31 ns 26 ns +19.23%
grayToBinary[1024]_microsoft 26 ns 20 ns +30%
permutations[3]_microsoft 641 ns 556 ns +15.29%
grayToBinary[42]_microsoft 18 ns 16 ns +12.5%
grayToBinary[255]_microsoft 24 ns 17 ns +41.18%
backtrackHeavy[20]_microsoft 16.9 µs 14.7 µs +15.17%
backtrackHeavy[24]_microsoft 23.3 µs 20.1 µs +16.4%
multiPatternScan[24]_microsoft 5.9 ms 6.6 ms -10.71%
dualPivotQuickSort[10000]_microsoft 4.7 ms 5.9 ms -20.21%
fibonacciBottomUp[30]_oracle 2.5 µs 2.2 µs +15.56%
... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.


Comparing cod-2400-change-group-id-of-jmh-fork (c559c2b) with cod-2309-walltime-benchmarks-with-flamegraphs (eea523f)

Open in CodSpeed

Footnotes

  1. 9 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Prepares for MavenCentral publishing by using a unique group ID
(`io.codspeed.jmh` instead of `org.openjdk.jmh`) and dropping the
`-codspeed.N` version suffix.

Refs: COD-2400
@not-matthias not-matthias force-pushed the cod-2400-change-group-id-of-jmh-fork branch from ec4fb25 to c559c2b Compare March 25, 2026 15:34
Copy link
Copy Markdown

@GuillaumeLagrange GuillaumeLagrange left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, I have read everything very thoroughly

@not-matthias not-matthias merged commit c559c2b into cod-2309-walltime-benchmarks-with-flamegraphs Mar 26, 2026
15 of 16 checks passed
@not-matthias not-matthias deleted the cod-2400-change-group-id-of-jmh-fork branch March 27, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants