Pre-upgrade Check Version Specification Debate

From Joomla! Documentation

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Summary of what's been discussed.


Proposal #1) Original[edit]

The original requested way that it should work is illustrated in this example:

<compatibility>
  <version>1.5</version>
  <version>2.5</version>
  <version>3.0.1</version>
  <version>4</version>
<compatibility>

Is interpretted as:

  • Joomla 1.5: compatible
  • Joomla 1.6: not compatible
  • Joomla 1.7: not compatible
  • Joomla 2.5: compatible
  • Joomla 3.0: compatible for 3.0.1 and up in the 3.0 version
  • Joomla 3.1: not compatible
  • Joomla 3.2: not compatible
  • Joomla 3.5: not compatible
  • Joomla 4:0: compatible
  • Joomla 4.1: compatible
  • Joomla 4.2: compatible
  • Joomla 4.5: compatible

Proposal #2) Composer[edit]

Others thought, we shouldn't use either of the above, but should use: Composer

Proposal #3) Remove version attribute and replace it with compatibility tag (in the below manner)[edit]

See: https://github.com/joomla/joomla-cms/issues/594

Proposal #4) Modification of Original (compare with #1) after adding an exclude attribute/parameter[edit]

After adding an exclude attribute/parameter, the proposal became:

<compatibility>
  <version>3.5</version>
  <version>4.2.2</version>
  <version>6</version>
  <version exclude_only="true">6.1.3</version>
  <version>7</version>
  <version exclude_only="true">7.0</version>
  <version include_only="true">8.1</version>
  <version exclude_only="true">9</version>
<compatibility>

is interpreted as:

  • Joomla 3.0: not compatible
  • Joomla 3.1: not compatible
  • Joomla 3.2: not compatible
  • Joomla 3.5: compatible
  • Joomla 4.0: not compatible
  • Joomla 4.1: not compatible
  • Joomla 4.2: compatible from 4.2.2 and up
  • Joomla 4.5: compatible
  • Joomla 5.0: not compatible
  • Joomla 5.1: not compatible
  • Joomla 5.2: not compatible
  • Joomla 5.5: not compatible
  • Joomla 6.0: compatible
  • Joomla 6.1: compatible for all (above and below) except 6.1.3
  • Joomla 6.2: compatible
  • Joomla 6.5: compatible
  • Joomla 7.0: not compatible
  • Joomla 7.1: compatible
  • Joomla 7.2: compatible
  • Joomla 7.5: compatible
  • Joomla 8.0: compatible
  • Joomla 8.1: not compatible
  • Joomla 8.2: not compatible
  • Joomla 8.5: not compatible
  • Joomla 9.0: not compatible
  • Joomla 9.1: not compatible
  • Joomla 9.2: not compatible
  • Joomla 9.5: not compatible
  • Joomla 10.0: not compatible
  • Joomla 10.1: not compatible
  • Joomla 10.2: not compatible
  • Joomla 10.5: not compatible

Notes[edit]

99%-100% of the code is written for the original implementation. The getcomposer approach is not written.


The original implementation did not ask for a x.y.z version to be able to be excluded. If a feature like that is needed, e.g. <not_version>3.0.7</not_version>, it can be implemented. It's been added as <version exclude="true"></version> thus far. It's simple a place holder until the syntax is decided.