Migration from 5.2.15 to 6.1.2

We have a Debian 12 server with Plone 5.2.15 and Python 3.8. Dozens of add-ons have been developed to meet the institution's specific needs. Due to the need to maintain products developed in 5.2.15, the initial idea was to migrate to version 6.1.2 with classic Plone. Is this the best approach?

The first add-on tested in version 6.1.2 uses resource registration. A search at Search - Plone Training 2025 documentation did not return an example of a registering resources in version 6. Following Gemini's suggestions, the following configuration was created:

In the browser folder configure.zcml file (the same as in the previous version).

...
<!-- Publish static files -->
<plone:static
name="ufscar.chart"
type="plone"
directory="static"
/>
...

In the browser/static/js folder, the chart.min.js file (the same downloaded version of the source used in 5.2.15).

In the profiles/default/registry folder, the registry.xml file (adapted following Gemini's suggestions):

<?xml version="1.0" encoding="utf-8"?>
<registry>
<records prefix="plone.bundles/ufscar-chart"
interface="plone.base.interfaces.resources.IBundleRegistry">
<value key="csscompilation"></value>
<value key="depends">plone</value>
<value key="enabled">True</value>
<value key="expression"></value>
<value key="jscompilation">++plone++/ufscar.chart/js/chart.min.js</value>
<value key="load_async">False</value>
<value key="load_defer">False</value>
</records>
</registry>

The add-on is installed, but the browser console displays an error: 404, None of the "sha384" hashes in the 'integrity' attribute match the contents of the subresource in "http://localhost:6120/plone/++webresource++da11eae6-32ca-50e3-89f1-03b96373d61b/++plone++/ufscar.chart/js/chart.min.js". The calculated hash is "pe/GwSpGET9HUEayQ7DsoHTA+PxXvgKMIhTtfvoj2DDjRBAkG7zIa7b2f28b+jhr".

Gemini suggested compiling the bundle, but the button no longer appears when accessing @@resourceregistry-controlpanel.

No idea if it matters, but could you try:

interface='Products.CMFPlone.interfaces.IBundleRegistry'>

I think:

  1. You should manually, in address bar of your browser, make sure you can reach /++plone+++ufscar.chart/chart.min.js`
  2. (likely culprit) you should correct typo in jscompilation path to match the path above (you have an extra slash after ++ that should not be there)
  3. You do not need csscompilation or expression included for this resource; they can be omitted for your purposes.
  4. You likely want to add <value key="compile">False</value>

Indeed, an extra slash after ++ was the culprit
Thank you very much

Trainings are supplemental to the main documentation. You should read and follow these guides for a comprehensive upgrade path.