Pre-upgrade Check Version Specification Debate: Difference between revisions

From Joomla! Documentation

 
(14 intermediate revisions by 2 users not shown)
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 26: Line 26:
*Joomla 4.5: compatible
*Joomla 4.5: compatible


===Accidentally coded as===
===Proposal #2) Composer===
<pre><compatibility>
Others thought, we shouldn't use either of the above, but should use: [http://getcomposer.org/doc/01-basic-usage.md#package-versions Composer]
 <version>1.5</version>
 
 <version>2.5</version>
===Proposal #3) Remove version attribute and replace it with compatibility tag (in the below manner) ===
 <version>3.0.1</version>
See:
  <version>4</version>
https://github.com/joomla/joomla-cms/issues/594
<compatibility></pre>


Is interpretted as:
===Proposal #4) Modification of Original (compare with #1) after adding an exclude attribute/parameter===
*Joomla 1.5: compatible
After adding an exclude attribute/parameter, the proposal became:
*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".
Whatever version is given, it's interpreted as "and up until the next major version".  
===Composer===
(This can be overriden with exclude_only="true" or include_only="true" or from="version#here" to="version#here")
Others thought, we shouldn't use either of the above, but should use: [http://getcomposer.org/doc/01-basic-usage.md#package-versions Composer]


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


<pre><compatibility>
<pre><compatibility>
Line 62: Line 48:
   <version>7</version>
   <version>7</version>
   <version exclude_only="true">7.0</version>
   <version exclude_only="true">7.0</version>
   <version exclude_only="true">8</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>
<compatibility></pre>


Line 92: Line 80:


*Joomla 8.0: not compatible
*Joomla 8.0: not compatible
*Joomla 8.1: not compatible
*Joomla 8.1: compatible
*Joomla 8.2: not compatible
*Joomla 8.2: not compatible
*Joomla 8.5: 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===
===Notes===
Line 100: Line 103:




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>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 17:43, 12 December 2012

Summary of what's been discussed.


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.