Actions

Difference between revisions of "Pre-upgrade Check Version Specification Debate"

From Joomla! Documentation

Line 2: Line 2:
  
  
===Original===
+
===Proposal #1) Original===
 
The original requested way that it should work is illustrated in this example:
 
The original requested way that it should work is illustrated in this example:
  
Line 49: Line 49:
  
 
The above was changed to the original specifications, but some people continued to argue whether "3.0.1" should mean "compatible for 3.0.1 through 3.0.x" or "only for 3.0.1".
 
The above was changed to the original specifications, but some people continued to argue whether "3.0.1" should mean "compatible for 3.0.1 through 3.0.x" or "only for 3.0.1".
===Composer===
+
===Proposal #2) Composer===
 
Others thought, we shouldn't use either of the above, but should use: [http://getcomposer.org/doc/01-basic-usage.md#package-versions Composer]
 
Others thought, we shouldn't use either of the above, but should use: [http://getcomposer.org/doc/01-basic-usage.md#package-versions Composer]
  
===Remove version attribute and replace it with compatibility tag (in the below manner) ===
+
===Proposal #3) Remove version attribute and replace it with compatibility tag (in the below manner) ===
 
See:
 
See:
 
https://github.com/joomla/joomla-cms/issues/594
 
https://github.com/joomla/joomla-cms/issues/594
  
===After adding an exclude attribute/parameter===
+
===Proposal #4) Modification of Original (after adding an exclude attribute/parameter)===
 
After adding an exclude attribute/parameter, the proposal became:
 
After adding an exclude attribute/parameter, the proposal became:
  

Revision as of 19:14, 8 December 2012

Summary of what's been discussed.


Contents

Proposal #1) Original

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

Accidentally coded as

<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 only for 3.0.1
  • 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

The above was changed to the original specifications, but some people continued to argue whether "3.0.1" should mean "compatible for 3.0.1 through 3.0.x" or "only for 3.0.1".

Proposal #2) Composer

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)

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

Proposal #4) Modification of Original (after adding an exclude attribute/parameter)

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 exclude_only="true">8</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: not compatible
  • Joomla 8.1: not compatible
  • Joomla 8.2: not compatible
  • Joomla 8.5: not compatible

Notes

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.