Actions

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

From Joomla! Documentation

m (Proposal #4) Modification of Original (compare with #1) after adding an exclude attribute/parameter)
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
Summary of what's been discussed.
 
Summary of what's been discussed.
  
 +
 +
===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:
===Original===
 
  
 
<pre><compatibility>
 
<pre><compatibility>
Line 12: Line 13:
  
 
Is interpretted as:
 
Is interpretted as:
Joomla 1.5: compatible
+
*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
  
Joomla 1.6: not compatible
+
===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]
  
Joomla 1.7: not compatible
+
===Proposal #3) Remove version attribute and replace it with compatibility tag (in the below manner) ===
 +
See:
 +
https://github.com/joomla/joomla-cms/issues/594
  
Joomla 2.5: compatible
+
===Proposal #4) Modification of Original (compare with #1) after adding an exclude attribute/parameter===
 +
After adding an exclude attribute/parameter, the proposal became:
  
Joomla 3.0: compatible for 3.0.1 and up in the 3.0 version
+
Whatever version is given, it's interpreted as "and up until the next major version".  
 +
(This can be overriden with exclude_only="true" or include_only="true" or from="version#here" to="version#here")
  
Joomla 3.1: not compatible
+
For example:
  
Joomla 3.2: not compatible
+
<pre><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 from="9.0.8" to="9.0.99" />
 +
 <version exclude_only="true">10</version>
 +
<compatibility></pre>
  
Joomla 3.5: not compatible
+
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: 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 4.1: compatible
+
*Joomla 5.0: not compatible
 +
*Joomla 5.1: not compatible
 +
*Joomla 5.2: not compatible
 +
*Joomla 5.5: not compatible
  
Joomla 4.2: 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 4.5: compatible
+
*Joomla 7.0: not compatible
---End of Original---
+
*Joomla 7.1: compatible
 +
*Joomla 7.2: compatible
 +
*Joomla 7.5: compatible
  
It was accidentally coded as:
+
*Joomla 8.0: not compatible
---Accidentally coded as---
+
*Joomla 8.1: compatible
<compatibility>
+
*Joomla 8.2: not compatible
 <version>1.5</version>
+
*Joomla 8.5: not compatible
 <version>2.5</version>
+
 <version>3.0.1</version>
+
  <version>4</version>
+
<compatibility>
+
  
Is interpretted as:
+
*Joomla 9.0: compatible from 9.0.8 to 9.0.99
Joomla 1.5: compatible
+
*Joomla 9.1: not compatible
Joomla 1.6: not compatible
+
*Joomla 9.2: not compatible
Joomla 1.7: not compatible
+
*Joomla 9.5: 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
+
---end of Accidentally coded as---
+
  
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".
+
*Joomla 10.0: not compatible
 +
*Joomla 10.1: not compatible
 +
*Joomla 10.2: not compatible
 +
*Joomla 10.5: not compatible
  
Others thought, we shouldn't use either of the above, but should use:
+
*Joomla 11.0: not compatible
http://getcomposer.org/doc/01-basic-usage.md#package-versions
+
*Joomla 11.1: not compatible
 +
*Joomla 11.2: not compatible
 +
*Joomla 11.5: not compatible
  
 +
===Notes===
 
99%-100% of the code is written for the original implementation.  The getcomposer approach is not written.
 
99%-100% of the code is written for the original implementation.  The getcomposer approach is not written.
 +
 +
 +
<strike>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.</strike> It's been added as <version exclude="true"></version> thus far.  It's simple a place holder until the syntax is decided.
 +
<noinclude>[[Category:Development Topics]]</noinclude>

Latest revision as of 12:43, 12 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

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 (compare with #1) after adding an exclude attribute/parameter

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

Whatever version is given, it's interpreted as "and up until the next major version". (This can be overriden with exclude_only="true" or include_only="true" or from="version#here" to="version#here")

For example:

<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 from="9.0.8" to="9.0.99" />
  <version exclude_only="true">10</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: compatible
  • Joomla 8.2: not compatible
  • Joomla 8.5: not compatible
  • Joomla 9.0: compatible from 9.0.8 to 9.0.99
  • 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
  • Joomla 11.0: not compatible
  • Joomla 11.1: not compatible
  • Joomla 11.2: not compatible
  • Joomla 11.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. It's been added as <version exclude="true"></version> thus far. It's simple a place holder until the syntax is decided.