{"slug": "upgrading-otakushelf-to-jhipster-9-1-0", "title": "Upgrading OtakuShelf to JHipster 9.1.0", "summary": "Sam upgraded OtakuShelf from JHipster 9.0.0 to 9.1.0 using the JHipster MCP server's upgrade_advisor and preview_upgrade tools, which assessed risk and generated a diff of changes without modifying the live project. The preview revealed 14 modified files—mostly dependency bumps and regenerated boilerplate—with no changes to Sam's custom Franchise view, enabling a confident, friction-free upgrade. After committing the current state, running the official upgrade, and passing both `./mvnw verify` and `npm test`, OtakuShelf now runs on JHipster 9.1.0.", "body_md": "JHipster 9.1.0 just dropped. For years, that sentence put a specific knot in Sam's stomach — version bumps meant a git-merge adventure, surprise conflicts, and the nagging fear of a file you'd customized getting quietly overwritten. OtakuShelf is on 9.0.0 and Sam actually likes it the way it is. So the real question isn't \"how do I upgrade,\" it's \"*should* I, and what will it cost me?\" The agent can answer both before a single file changes.\n\nSam starts by scoping it:\n\nHow risky is upgrading\n\n`/Users/sam/projects/otakushelf`\n\nto JHipster 9.1.0?\n\nThe `upgrade_advisor`\n\ntool reads OtakuShelf's `.yo-rc.json`\n\nand entity configs and reports back the shape of the jump:\n\nOne thing Sam appreciates: the advisor doesn't *invent* a list of breaking changes. A minor release shouldn't have many, but for the authoritative word it points Sam at the release notes rather than bluffing. It gives the facts and the scope; the specifics live where they actually live. For a minor, low-risk bump, the verdict is \"go for it\" — but Sam still wants to see the damage first.\n\nShow me what upgrading OtakuShelf to 9.1.0 would change.\n\nThis is the one Sam wishes had existed years ago. `preview_upgrade`\n\nregenerates OtakuShelf's own model in an isolated temp copy **using generator 9.1.0** — fetched on the fly via `npx generator-jhipster@9.1.0`\n\n, so Sam doesn't even have to install it globally first — and diffs the result against the current project:\n\n```\nUpgrade preview → generator-jhipster@9.1.0:\n  +1 added  -0 removed  ~14 modified\nAdded (1): ...\nModified (14): build dependency bumps, a few Vue components, Liquibase config, ...\n```\n\nOtakuShelf itself is **never touched** — it's a diff against a throwaway regeneration. And there's an honest caveat the tool states plainly: that `modified`\n\nlist mixes two things — changes the new generator makes *and* files Sam has customized. Telling them apart is the real work of any JHipster upgrade. The difference now is that Sam sees the whole list **up front**, on a calm afternoon, instead of discovering it mid-merge at 11pm.\n\nFourteen modified files, mostly dependency bumps and regenerated boilerplate, nothing touching Sam's hand-edited Franchise view. This is a Tuesday, not an adventure.\n\nNotice what the MCP did *not* do: it didn't run the upgrade. The official `jhipster upgrade`\n\nis a git-based merge, and this server stays deliberately out of your git — so it previews instead of merging. With the diff in hand, Sam drives the actual change through a normal workflow: commit the current state, run the upgrade (the agent can kick off `jhipster upgrade`\n\nthrough the escape hatch, or Sam runs it by hand), and resolve the handful of spots the preview already flagged. Because Sam committed first and knew the blast radius in advance, the merge is a quick, confident review rather than a leap of faith.\n\nA `./mvnw verify`\n\nand an `npm test`\n\nlater (the MCP told Sam those commands back in part 1, remember), OtakuShelf is happily running on 9.1.0.\n\nFour sittings ago, OtakuShelf was an empty folder and a vague idea, and Sam was skeptical about letting an AI near a generator. Now there's a paginated, DTO-backed catalog of manga and anime — scaffolded, grown, polished, and version-bumped — and at no point did the agent's involvement mean *less* control. The pattern that emerged was simple and stuck:\n\nThe MCP didn't replace Sam's JHipster judgment. It deleted the friction around it — the JDL typing, the CLI prompts, the upgrade dread — and left the decisions where they belong.\n\nThat's the shelf built. Time to actually add some manga to it. 📚\n\n*Want the precise arguments and edge cases behind any of this? The story motivates; the docs specify — start with the tools reference. And the server itself: jhipster-mcp on npm.*", "url": "https://wpnews.pro/news/upgrading-otakushelf-to-jhipster-9-1-0", "canonical_source": "https://dev.to/avdev4j/44-upgrading-otakushelf-to-jhipster-910-242", "published_at": "2026-05-27 21:43:08+00:00", "updated_at": "2026-05-27 22:10:46.135877+00:00", "lang": "en", "topics": ["ai-tools"], "entities": ["JHipster", "OtakuShelf", "Sam"], "alternates": {"html": "https://wpnews.pro/news/upgrading-otakushelf-to-jhipster-9-1-0", "markdown": "https://wpnews.pro/news/upgrading-otakushelf-to-jhipster-9-1-0.md", "text": "https://wpnews.pro/news/upgrading-otakushelf-to-jhipster-9-1-0.txt", "jsonld": "https://wpnews.pro/news/upgrading-otakushelf-to-jhipster-9-1-0.jsonld"}}