Administration

Upgrade readiness check

dolixmaj · version 1.0.2

Before upgrading Dolibarr, you know what will block, what will break and what to do first. The module changes nothing.

Price
Free
Dolibarr
16.0 minimum
Version
1.0.2
Licence
GPL v3+
Languages
French, English, German

Free.

Ordering, payment, invoicing and download are handled by the DoliStore.

Download on the DoliStore — free
Report for a test instance on 18.0.9 aiming for 24.0: “Pas encore prêt : 1 action(s) avant de monter” (Not ready yet: 1 action(s) before upgrading). The fictitious module DemoFutur breaks from 20.0, so you can go up to 19.0.4 without changing anything. Below: the security line, the path step by step and the plan in order.
Report for a test instance on 18.0.9 aiming for 24.0: “Pas encore prêt : 1 action(s) avant de monter” (Not ready yet: 1 action(s) before upgrading). The fictitious module DemoFutur breaks from 20.0, so you can go up to 19.0.4 without changing anything. Below: the security line, the path step by step and the plan in order. Screenshot of the French-language interface.
01

What the module does

  • You choose the target version, from the next major version up to 24.0, and the PHP version planned after the upgrade. The check changes nothing: not the database, not the files, not the modules.
  • The code of every external module is read file by file, without being run, and compared with every version on the path: removed functions, classes, methods, files, columns, hooks and events; overridden methods that became incompatible; functions and syntax refused by the planned PHP. Each finding gives the file, the line, the version where it breaks and, when known, the replacement.
  • For each module, a coverage rate: the share of calls actually verified. Encrypted code (ionCube, SourceGuardian, Zend Guard) is reported as impossible to verify.
  • The other checks: files and database at different versions, latest maintenance release of your branch, PHP at every step and when to switch, PHP extensions and memory_limit, mixed encodings and MyISAM tables, enabled core modules that disappear, modified, missing or extra core files, overridden translations, ODT templates, extrafield formulas refused from 23, recent backup, unalterable log key for 24, install lock, conf.php permissions.
  • The report starts with a one-line answer, the highest version you can reach without changing anything, the path step by step and the plan in order. It also tells you whether the installed and target versions still receive security fixes, what to back up, and which step rewrites the most data.
  • Each finding has a level — no problem, to check, blocking or cannot be verified — with what to do and the source of the rule.
  • Report downloadable as HTML or Markdown. The “anonymise” option hides the domain, the paths, the company name and the user's login. For each module at fault, a “Report for the publisher” to send to them: files, lines, known fix, nothing about your company or your server.
  • No password or key is ever displayed or exported: for conf.php, the module only says whether a key is present.
  • Only one possible connection: the “Integrity of core files” box is ticked by default only when the official signature of your version is already in install/, and the comparison then needs no network. Otherwise it stays unticked: ticking it allows the signature to be downloaded from dolibarr.org. With the box unticked, the module connects to nothing.
  • Interface in French, English and German. Works on MySQL/MariaDB and PostgreSQL.
02

Who it is for

You keep putting off the Dolibarr upgrade because you do not know what will break: an external module, the PHP version, a customisation.

A Dolibarr upgrade does not happen in one go: the wizard goes through the major versions one at a time, from 18 to 19, then to 20, and each one can break something. An external module calling a removed function, a PHP version too old for the next version or too recent for the current one, a table in a different encoding from the others, a core file edited by hand that will be overwritten.

The official wiki asks you to make sure your modules are compatible, without saying how. So the upgrade gets postponed, and the gap grows with every version.

The upgrade itself is described step by step in two tested guides: Upgrading Dolibarr without breaking anything and Upgrading Dolibarr from the command line.

Who it is for: Administrators of a Dolibarr 16 to 23 instance preparing an upgrade, especially with external modules or modified core files. Service providers who want an overview before stepping in.

03

What the module does not do

This section appears on all 12 module pages, without exception.

  • The module does not perform the upgrade. It runs no script, repairs nothing, disables no module: repair commands are given, never run.
  • The target versions are the major versions known to its data, up to 24.0. A version released after 25 September 2026 is not known: a new version of the module is needed. On a 24, no target version is offered.
  • The analysis reads the code without running it. Dynamic calls and encrypted code cannot be verified: the coverage rate shows this, module by module. Only a test on a copy proves that a module works.
  • Limited duration: 60 seconds in total for the code analysis, 30 seconds at most per module. Files over 2 MB and the vendor, node_modules and includes folders of modules are not analysed. What was not read is reported.
  • For backups, the module looks for a recent file in documents/admin/backup. It does not check that it can be restored, and does not see a backup made elsewhere, at your host for example.
  • It does not foresee bugs in the target version, how the migration scripts will handle your data, or business effects: PDF layout, VAT, external integrations.
  • If Dolibarr no longer starts, the module cannot open either.
  • Administrators only: no permission makes it available to another user.
04

How it works

You choose the target version, from the next major version up to 24.0, and the PHP version planned after the upgrade. You click Run the check. The module reads your installation without changing anything and gives you a report.

The code of your external modules

This is the main part of the module. The code of every external module is read file by file, without being run, and compared with the changes of every version on the path, not only the target version:

  • removed core functions, classes, methods, properties, constants and files;
  • overridden methods that became incompatible with Dolibarr’s;
  • calls with fewer arguments than Dolibarr now requires;
  • removed columns and tables in the module’s SQL queries;
  • hooks and trigger events that are no longer called;
  • functions, constants and syntax refused by the planned PHP.

Each finding gives the file, the line, the version where it breaks, a degree of certainty and, when known, the replacement. Each module gets a coverage rate: the share of calls actually verified. Encrypted code (ionCube, SourceGuardian, Zend Guard) is reported as impossible to verify.

The nine other families of checks

Family What is checked
Path files and database at different versions, latest maintenance release of your branch, number of steps
PHP PHP at every step, when to switch, extensions checked by the installer, memory_limit, max_execution_time
Database server version, mixed encodings, MyISAM tables, size
Core modules enabled modules that disappear: WebServicesClient (21), ExternalSite and OpenIDConnect (23), Deplacement and Paybox (24)
Integrity modified, missing or extra core files, compared with the official signature of your version
Customisations overridden translations, ODT templates, non-standard menu or theme, experimental modules, extrafield formulas refused from 23
Backup database backup less than 24 hours old in documents/admin/backup, exec() available, disk space
Keys presence of the instance identifier and the encryption key, format of the unalterable log key for 24
Wizard install lock, conf.php permissions, .git folder, documents folder inside the web folder

The report

It starts with a one-line answer — ready, almost ready or not ready yet — then the highest version you can reach without changing anything, the path step by step and the plan in order. It also tells you whether the installed and target versions still receive security fixes, what to back up and which step rewrites the most data.

Each finding has a level — no problem, to check, blocking or cannot be verified — with what to do and the source of the rule.

The report can be downloaded as HTML or Markdown. The anonymise option hides the domain, the paths, the company name and the user’s login. For each module at fault, the Report for the publisher button produces a file to send to them: files, lines, known fix, nothing about your company or your server.

What the report cannot guarantee

The report says so itself, at the bottom of the page: it reduces known risks, it does not guarantee that the upgrade will succeed. It does not prove that an external module will work — only a test on a copy can —, does not foresee bugs in the target version or how the migration scripts will handle your data, and does not check that a backup can be restored.

The code analysis is time-limited: 60 seconds in total, 30 seconds at most per module. Files over 2 MB and the vendor, node_modules and includes folders of modules are not read, and the report says so. Target versions stop at 24.0: the module’s reference data is up to date as of 25 September 2026.

The tool is under HomeAdmin ToolsUpgrade readiness check. The screenshots below were taken with the French interface.

The report for a test instance on 18.0.9 aiming for 24.0: “Pas encore prêt : 1 action(s) avant de monter” (Not ready yet: 1 action(s) before upgrading). The fictitious module DemoFutur breaks from 20.0, so you can go up to 19.0.4 without changing anything. Below: the security line — 18.0 no longer receives fixes —, the path from 18.0 to 24.0 and the plan: get a compatible version from the publisher, then move to 18.0.10 and go up one step at a time.

The starting screen: the target version, 24.0 (24.0.1), the PHP planned after the upgrade, and the “Intégrité des fichiers du cœur” box (Integrity of core files).

The “Vos modules” block (Your modules). For DemoFutur, a class removed in 20.0 and a function removed in 23.0, with the file, the line and the replacement, “code analysé à 100 % (2 appels vérifiés sur 2)” (code analysed at 100 %, 2 calls verified out of 2) and the “Rapport pour l’éditeur” button (Report for the publisher). DemoCasse, disabled and incompatible, should be deleted.

The starting screen, on 18.0.9: target version 24.0 (24.0.1), PHP after the upgrade, and the “Intégrité des fichiers du cœur” box (Integrity of core files).
The starting screen, on 18.0.9: target version 24.0 (24.0.1), PHP after the upgrade, and the “Intégrité des fichiers du cœur” box (Integrity of core files). Screenshot of the French-language interface.
The “Vos modules” block (Your modules): for the fictitious module DemoFutur, a class removed in 20.0 and a function removed in 23.0, with the file, the line and the replacement, the share of code analysed and the “Rapport pour l'éditeur” button (Report for the publisher). DemoCasse, disabled and incompatible, should be deleted.
The “Vos modules” block (Your modules): for the fictitious module DemoFutur, a class removed in 20.0 and a function removed in 23.0, with the file, the line and the replacement, the share of code analysed and the “Rapport pour l'éditeur” button (Report for the publisher). DemoCasse, disabled and incompatible, should be deleted. Screenshot of the French-language interface.
06

Security and safeguards

  • Administrators only. The menu and every page check that the user is a Dolibarr administrator; any other user gets “Access denied”. The module has no dedicated permission.
  • Read-only. The check writes nothing, neither to the database nor to disk. During testing, a full fingerprint of the database and the files was taken before and after a check: it was identical.
  • Anti-CSRF token on every action: check, downloads, report for the publisher.
  • No secret displayed or exported. For conf.php, the module only says whether a key is present, never its value.
  • No command run. Repairs, such as harmonising the encoding of tables, are given, never executed.
  • Only one possible connection. The “Integrity of core files” box is ticked by default only when the official signature of your version is already in install/: the comparison then needs no network. Otherwise it stays unticked, and ticking it is what allows the signature to be downloaded from dolibarr.org. With the box unticked, the module connects to nothing.
07

What you get

What the module writes to your installation
Database tables createdNo table. The module creates no table, no setting and no file: the report is computed on each request and downloads are generated on the fly.
PermissionsNo dedicated permission. The menu and every page are restricted to Dolibarr administrators: a non-administrator user does not see the menu and gets an access denied if they open the page.
Uninstalling
  • Disable the module in SetupModules/Applications. The menu disappears.
  • The module created no table and no setting: there is nothing to clean up in the database.
  • Reports already downloaded stay on your computer. No report is kept on the server.
  • The dolixmaj folder, in readable source, under the GPL v3 or later licence: the tool page, an “About” page with no setting, the check and code-analysis classes, and the Dolibarr 16.0 to 24.0.2 reference data (data/).
  • The translations present in langs/: French (fr_FR), English (en_US) and German (de_DE).
  • A README.md and a ChangeLog.md.
  • Dolibarr 16.0 minimum, PHP 7.0 minimum, MySQL/MariaDB and PostgreSQL. Installed and run on 16.0.5, 17.0.4, 18.0.9, 18.0.10, 19.0.4, 20.0.4, 21.0.4, 22.0.5, 23.0.4, 24.0.0, 24.0.1 and 24.0.2.
  • No table is created, no setting is stored. Only enabling the module records, as for any module, its status and its menu.
  • Nothing is kept on the server: the report is computed on each request, downloads are generated on the fly.
  • Downloaded reports stay on your computer. Anonymised, they contain neither the domain, nor the paths, nor the company name, nor the user’s login.
  • When the module is disabled, the menu disappears. There is nothing to clean up in the database.
08

Compatibility

The module descriptor only declares a minimum version. No upper bound is written in the code: the versions below are those on which the module has actually been run.

Compatibility of the Upgrade readiness check module
Dolibarr versionsDolibarr 16.0 minimum. Installed and run on 16.0.5, 17.0.4, 18.0.9, 18.0.10, 19.0.4, 20.0.4, 21.0.4, 22.0.5, 23.0.4, 24.0.0, 24.0.1 and 24.0.2.
Minimum PHP7.0
Dolibarr modules to enableNone
LicenceGPL v3 or later, full source code
LanguagesFrench, English, German
MenuHome menuAdmin Tools“Upgrade readiness check”.
09

Installation

  1. Get the module, free of charge, from the DoliStore and download the zip file.
  2. In Dolibarr: HomeSetupModules/Applications“Deploy/install external app/module” tab, then upload the zip. Otherwise, unzip the dolixmaj folder into htdocs/custom/.
  3. Enable “Upgrade readiness check” in the list of modules. No table is created.
  4. Open HomeAdmin Tools“Upgrade readiness check”. The menu is only shown to administrators.
  5. Choose the target version and the planned PHP, tick or untick the integrity check, then click “Run the check”.

The details — permissions on the custom folder, shared hosting, upgrades, uninstalling — are on the page Installation and upgrades.

10

Frequently asked questions

Which Dolibarr versions does this module work on?

The descriptor requires Dolibarr 16.0 minimum and PHP 7.0 minimum. The module has been installed and run on 16.0.5, 17.0.4, 18.0.9, 18.0.10, 19.0.4, 20.0.4, 21.0.4, 22.0.5, 23.0.4 and 24.0.0. The target versions it offers go up to 24.0: its reference data is up to date as of 25 September 2026. On a 24, it therefore has no more recent version to offer yet.

Can the check change my database?

No. The module creates no table and writes nothing, neither to the database nor to disk. During testing, a full fingerprint of the database and the files was taken before and after a check: it was identical. Only enabling the module records, as for any module, its status and its menu.

Does the report guarantee that the upgrade will succeed?

No. It reduces known risks. It cannot prove that an external module will work, nor foresee bugs in the target version or how the migration scripts will handle your data. Make a full backup and, if possible, test on a copy first.

How reliable is the analysis of module code?

On 26 September 2026 it was compared with 45 open-source modules actually upgraded from their original version up to 24: the 10 fatal errors seen during those upgrades had all been announced. The test bench only opened pages, without entering data: this result only holds for what it observed. For each module, the report shows the share of the code it was able to verify.

What if I uninstall?

The menu disappears. The module created no table and no setting, so there is nothing to delete. Downloaded reports stay on your computer.

Is the module really free?

Yes: €0 on the DoliStore, under the GPL v3 or later licence. When something blocks, the on-screen report shows a line pointing to Dolix's paid “Secure upgrade” service, and the report footer shows “Need help with this upgrade? Dolix — dolix.fr”. Neither appears in anonymised exports.

Who handles support, and how do updates work?

Support is provided by the person who wrote the module, at support@dolix.fr. The download is on the DoliStore, where new versions are published. The Dolibarr versions the module knows are in its built-in data: to target a version released after 24.0, a new version of the module will be needed.

11

Version history

Taken from the module’s ChangeLog.md file: a single source.

1.0.214 October 2026

Dolibarr 24.0.2 known: on 24.0.0 or 24.0.1, the module names 24.0.2 as the latest maintenance release, and the unalterable log key check advises targeting 24.0.2. Core 24.0 API re-read from the 24.0.2 tag code. A maintenance release published after the module's data (for example a future 24.0.3) is clearly reported, without pretending to know it. Reference data as of 14 October 2026.

1.0.112 October 2026

Fix: the “Integrity of core files” box is now ticked by default only when the official signature of your version is already on the server (comparison without network). Otherwise it stays unticked, and ticking it is what allows the download from dolibarr.org: no network call without your consent.

1.0.027 September 2026

First version: read-only check of a Dolibarr 16.0 to 24.0 instance against a target version. Ten families of checks, including reading the code of external modules. On-screen report, downloadable as HTML and Markdown, can be anonymised: one-line answer, highest version reachable without changing anything, path, action plan. Security status of the installed and target versions, downtime preparation, report to send to the publisher of a module. French, English, German. Dolibarr reference data up to date as of 25 September 2026, versions 16.0 to 24.0.1.

12

Support for this module

Write to support@dolix.fr. The person who wrote the module is the one who replies.

Reply within two working days. This is not an on-call service.

To include in your message

  • The exact Dolibarr version.
  • The module concerned and its version — here dolixmaj 1.0.2.
  • What you did, and what you expected.
  • The error message copied exactly, or a screenshot.
  • How Dolibarr is installed, if you know.

This module is available free of charge on the DoliStore.

Ordering, payment, invoicing and download are handled by the DoliStore.

Download on the DoliStore — free
Also

The other modules