Difference between revisions of "Pre-upgrade Check Version Specification Debate"
From Joomla! Documentation
(→Notes) |
|||
(21 intermediate revisions by 2 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: | ||
− | |||
<pre><compatibility> | <pre><compatibility> | ||
Line 25: | Line 26: | ||
*Joomla 4.5: compatible | *Joomla 4.5: 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] | ||
+ | |||
+ | ===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: | ||
+ | |||
<pre><compatibility> | <pre><compatibility> | ||
− | <version> | + | <version>3.5</version> |
− | <version>2. | + | <version>4.2.2</version> |
− | <version>3.0.1</version> | + | <version>6</version> |
− | <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> | <compatibility></pre> | ||
− | + | is interpreted as: | |
− | + | *Joomla 3.0: not compatible | |
− | |||
− | |||
− | |||
− | *Joomla 3.0: compatible | ||
*Joomla 3.1: not compatible | *Joomla 3.1: not compatible | ||
*Joomla 3.2: not compatible | *Joomla 3.2: not compatible | ||
− | *Joomla 3.5: | + | *Joomla 3.5: compatible |
− | *Joomla 4 | + | |
− | *Joomla 4.1: compatible | + | *Joomla 4.0: not compatible |
− | *Joomla 4.2: compatible | + | *Joomla 4.1: not compatible |
+ | *Joomla 4.2: compatible from 4.2.2 and up | ||
*Joomla 4.5: compatible | *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=== | ===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. | ||
− | 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, <not_version>3.0.7</not_version> can be | + | |
+ | |||
+ | <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.
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:
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[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.