ワンクリックで
relocations
Generate Maven artifact relocations for renamed Quarkus extensions, including BOM entries and OpenRewrite recipes
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Generate Maven artifact relocations for renamed Quarkus extensions, including BOM entries and OpenRewrite recipes
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when the user wants a quick summary of today's work from journal entries
Generate a Quarkus migration guide entry for a Hibernate version upgrade, in asciidoc format ready for the Quarkus wiki
Use when bumping Hibernate ORM, Reactive, Search, and Tools versions in a Quarkus feature branch — either from a dependabot PR URL or explicit version numbers
Add a repository worktree to an existing feature directory
Clone all repos into main/, set up remotes, build all projects into ~/.m2
Long-running script that resets main/ to upstream and rebuilds Quarkus hourly
| name | relocations |
| description | Generate Maven artifact relocations for renamed Quarkus extensions, including BOM entries and OpenRewrite recipes |
| user_invocable | true |
Usage: /relocations <feature-number> <quarkus-version> (e.g., /relocations 39 3.31)
Generates Maven artifact relocations when Quarkus extensions are renamed. Produces relocation POMs, BOM entries, migration guide tables, and OpenRewrite recipes for quarkus-updates.
~/git/hibernate/<number>/ must exist.<number>/quarkus/ (the branch where the rename was done) OR the rename must already be merged to upstream/main.<number>/relocations/ must exist for the relocation work. If it does not exist, tell the user to create one:
cd ~/git/hibernate/main/quarkus
git worktree add -b relocations ~/git/hibernate/<number>/relocations upstream/main
Then set up .mvn/maven.config with -Dmaven.repo.local pointing to <number>/.m2.Auto-detect renamed artifacts. Compare the feature's quarkus worktree (or upstream/main if the rename is merged) against the relocations worktree to find artifact ID changes in extension pom.xml files:
# Find old artifact IDs that no longer exist and new ones that replaced them
# Look at bom/application/pom.xml diffs, extension pom.xml changes, etc.
Present the detected old-to-new mappings to the user and ask for confirmation before proceeding. The user may add, remove, or correct mappings.
Add entries to generaterelocations.java. Edit <number>/relocations/relocations/generaterelocations.java to add the new relocations to the RELOCATIONS static map. Follow the existing pattern:
Function<String, Relocation> myRelocation = a -> Relocation.ofArtifactId(a,
a.replace("old-name-part", "new-name-part"), "<quarkus-version>");
RELOCATIONS.put("quarkus-old-name", myRelocation);
RELOCATIONS.put("quarkus-old-name-deployment", myRelocation);
Use the appropriate factory method:
Relocation.ofArtifactId(old, new, version) -- only artifactId changedRelocation.ofGroupId(old, newGroup, version) -- only groupId changedRelocation.of(old, newGroup, newArtifact, version) -- both changedImportant: The version passed here is the upcoming Quarkus release where the rename ships. This version controls the migration guide URL in the generated relocation POMs (e.g., Migration-Guide-3.37). It must match the version used for the quarkus-updates recipe file in step 5. Ask the user which version to use if unclear.
Run the generator:
cd ~/git/hibernate/<number>/relocations/relocations
jbang generaterelocations.java
This produces:
relocations/relocations/pom.xml with new module entriesAdd relocations to the BOM. Edit <number>/relocations/bom/application/pom.xml. Find the <!-- Relocations --> section near the end and add new entries before <!-- End of Relocations, please put new extensions above this list -->:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-old-name</artifactId>
<version>${project.version}</version>
</dependency>
Add one entry per relocated artifact (both runtime and deployment).
Create OpenRewrite recipe in quarkus-updates (if worktree exists). If <number>/quarkus-updates/ exists:
Important: The recipe file version must match the upcoming Quarkus release where the rename will ship, NOT the version used in generaterelocations.java. The version in the generator is for the relocation POM metadata; the quarkus-updates version is for the migration tooling. Ask the user which upcoming Quarkus version to target if unclear.
Create a new file (do not append to existing version files for old releases):
<number>/quarkus-updates/recipes/src/main/resources/quarkus-updates/core/<upcoming-version>.alpha1.yaml
Use a comment header and a unique recipe name with the version number (dots removed):
#####
# Relocations for <description>
#####
---
type: specs.openrewrite.org/v1beta/recipe
name: io.quarkus.updates.core.quarkus<version-no-dots>.MyRelocations
recipeList:
...
If the quarkus-updates worktree does not exist, print the recipe YAML and tell the user to add it manually.
Package and class renames: If the rename also changed Java package names or class names of API types consumed by end users, add additional OpenRewrite recipes to the same file:
org.openrewrite.java.ChangePackage:
- org.openrewrite.java.ChangePackage:
oldPackageName: io.quarkus.old.package
newPackageName: io.quarkus.new.package
recursive: true
org.openrewrite.java.ChangeType:
- org.openrewrite.java.ChangeType:
oldFullyQualifiedTypeName: io.quarkus.old.package.OldClassName
newFullyQualifiedTypeName: io.quarkus.new.package.NewClassName
Only include these for types that are considered public API and consumed by end users, not internal/deployment classes. Ask the user whether any packages or class names were renamed.
Update the migration guide wiki. The generator prints two asciidoc tables — one for publicly consumed modules, one for extension developers. These must be added to the Quarkus migration guide wiki page at https://github.com/quarkusio/quarkus/wiki/Migration-Guide-<quarkus-version>. Print both tables and remind the user to paste them into the wiki under an appropriate section heading.
Summarize. Print: