
Remember the old days when upgrading your code to the latest Nuxeo release used to take days, if not weeks :D?
If you have done one of these upgrades before, you know the work: You bump versions. You chase the javax to jakarta rename across the codebase. You figure out which APIs were removed, moved, or renamed. Then you keep fixing build errors until everything finally compiles. It is not always hard work, but it is scattered work. It touches a lot of files, and a few small traps can easily cost you an afternoon. :)
Those days should be mostly behind us now.
We packaged what we learned doing a real Nuxeo 2023 to 2025 migration into a small Claude Code skill that you can run against your own project.
Here is the repo: https://github.com/maretha-io/nuxeo-lts-2025-upgrade
And here are the official Nuxeo upgrade notes from LTS 2023 to LTS 2025: https://doc.nuxeo.com/nxdoc/upgrade-from-lts-2023-to-lts-2025/
A Claude Code skill is just a set of instructions Claude Code follows.
This one lives in a plain GitHub repo. No install. No marketplace. You clone it, open Claude Code inside it, run one command, and point it at your Nuxeo project.
The important part is that it does the upgrade in your project, not inside the skill repo.
git clone https://github.com/maretha-io/nuxeo-lts-2025-upgrade
cd nuxeo-lts-2025-upgrade
claude
Then, in Claude Code:
/nuxeo-2025-upgrade
It asks for the absolute path to your project and then starts the upgrade work.
You will need JDK 21 and access to the Nuxeo 2025 artifacts on the machine. The LTS releases are subscription-only, so Nuxeo 2025 will not build without access to the right artifacts.
The skill handles the repetitive parts of the upgrade:
A few of these are very easy to lose hours on:
These are already encoded, so Claude can fix them instead of discovering them the hard way.
This is the part that is easy to get wrong.
The Nuxeo Web UI upgrade is mostly transparent. Nuxeo Web UI 2025 is still Polymer 3. The legacy Polymer({}) and <dom-module> elements are intentional. Do not convert them to Lit just because they look old.
For Studio UI projects, the skill verifies 2025-readiness instead of rewriting hundreds of elements. It checks the target platform, dependency versions, and the actual Web UI changes between branches.
Knowing what not to touch is part of the upgrade.
This targets server-side Java/Maven projects and Studio Web UI verification.
It will not migrate your Studio model, doctypes, or workflows. That work is done in Studio.
The exact patch version and your Studio GAV are environment-specific, so the skill asks for those instead of guessing.
Treat the output as a first pass that you review, not a black box.
Once you get to this point, start testing and fixing bugs :) .
One important deployment gotcha: Nuxeo 2025's search backend is now modular.
The distribution no longer bundles a search client by default, so check the official upgrade notes and the search setup documentation for the packages your setup needs.
If you are on OpenSearch 1.x, make sure you explicitly add:
nuxeo-search-client-opensearch1
nuxeo-audit-opensearch1
Otherwise search and audit can come up unconfigured, which is not the surprise you want after the upgrade.
Clone the repo, run it against a branch of your project, and review the changes. If you hit a weird edge case, send it our way at https://maretha.io/ . Every one of those makes the next upgrade easier.
Keep reading
“How do we migrate Nuxeo from a SQL database to MongoDB?” This question comes up a lot and while it’s a complex topic that depends very much on the project, I think it’s very useful to lay out a few things to consider and steps on how to approach this migration.
Read articleWhy upgrade to LTS2021? While there are numerous benefits to upgrading to the latest version (performance improvements, bug fixing, new features, etc), according to https://www.nuxeo.com/legal/supported-versions/ the support for LTS 2019 (or 10.10) is ending on 04/04/2023. And this date is right around the corner!
Read articleI have been in the Enterprise Content Management (ECM) business for over two decades. I have talked to customers small and large (and I mean very large) and in many different industries over the years. I have competed against many ECM vendors while at IBM and then Nuxeo. So yes, I have heard a lot and seen a lot. And I plan to offer my views on a lot of topics, like this one, but also about the apparent demise of ECM, the fallacies of sales methodologies, and what really makes a good leader. But today I want to focus on customers considering moving away from Alfresco.
Read articleTell us what you're struggling with, and we'll tell you how we can help you.
Talk to us