Closed
Bug 315242
Opened 19 years ago
Closed 19 years ago
Nightly builds' version number 0.3a1+ sorts BEFORE 0.3a1, which sorts BEFORE 0.2+
Categories
(Toolkit :: Add-ons Manager, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: gekacheka, Unassigned)
Details
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8) Gecko/20051025 Firefox/1.5
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a1) Gecko/20051105 Mozilla Sunbird/0.3a1+
In the current version numbering scheme, 0.3a1+ sorts BEFORE 0.3a1.
This is bad because current nightlies are AFTER 0.3a1.
This is a problem for giving accurate maxVersion in Sunbird extensions.
(Also note that "0.2+" is converted to "0.3pre" for sorting,
so "0.2+" sorts AFTER "0.3a1" because "p" > "a". But no one should be using 0.2+ builds anymore.)
Think of the version number as consisting of 'phrases' separated by '.'s,
and each phrase consists of <number-a> [<string-b> [<number-c> [<string-d>]]]
http://developer.mozilla.org/en/docs/Toolkit_version_format#Version_format
The version number comparator only treats "+" specially when it comes after the first number (number-a) in the word, not the second number (number-c) (presumably because '+' only appeared after the first number in the old version numbering scheme).
http://developer.mozilla.org/en/docs/Toolkit_version_format#Version_format
["if string-b is a plus sign, number-a is incremented to be compatible with the Firefox 1.0.x version format: 1.0+ is the same as 1.1pre"]
var vc = Components.classes["@mozilla.org/xpcom/version-comparator;1"].getService(Components.interfaces.nsIVersionComparator); vc.compare("0.2+","0.3pre")
returns 0, they are equal.
Since it is not treating '+' specially in "0.3a1+" it is sorting by the rule that an non-empty string always sorts BEFORE an empty string,
so "0.3a" is before "0.3", and "0.3a1+" is before "0.3a1".
http://developer.mozilla.org/en/docs/Toolkit_version_format#Comparing_version_parts
var vc = Components.classes["@mozilla.org/xpcom/version-comparator;1"].getService(Components.interfaces.nsIVersionComparator);
vc.compare("0.3a1","0.3a1+")
returns 1, so "0.3a1" is AFTER "0.3a1+"
So instead, I suggest nightly builds be numbered as "0.3a2-", which sorts before "0.3a2"
(It still sorts before "0.2+"="0.3pre", but no one should be using 0.2+ nightly builds any more.)
Reproducible: Always
Steps to Reproduce:
Create an extension
a. with minVersion "0.2+" and maxVersion "0.3a1+"
b. with minVersion "0.3a1" and maxVersion "0.3a1+".
Try to install the extension in sunbird.
Actual Results:
a. Error dialog from extension manager:
"Incompatible Extension:
<extension> could not be installed because it is not compatible with Sunbird 0.3a1+ (<extension> will only work with Sunbird versions from 0.2+ to 0.3a1+).
b. Error dialog from extension manager:
"Incompatible Extension:
<extension> could not be installed because it is not compatible with Sunbird 0.3a1+ (<extension> will only work with Sunbird versions from 0.3a1 to 0.3a1+).
The problem is "0.3a1+" < "0.3a1" < "0.2+"="0.3pre", so the maxVersion < minVersion in these examples, so the extension cannot install in any version.
Expected Results:
Expected sunbird builds to have version numbers that the versionComparator sorts in chronological order.
Suggest using "0.3a2-" for nightlies after release "0.3a1".
Comment 1•19 years ago
|
||
the x.ya1 scheme and the + for nightlies have been used for ages for mozilla apps. If toolkit doesn't understand that, then toolkit is broken.
Comment 2•19 years ago
|
||
So, over to toolkit. (actually, to firefox, because toolkit doesn't have an extension manager component for some reason)
Assignee: mostafah → nobody
Product: Calendar → Firefox
QA Contact: general → general
Updated•19 years ago
|
Component: General → Extension/Theme Manager
QA Contact: general → extension.manager
Comment 3•19 years ago
|
||
Toolkit's not going to fix this, use 0.3a1 and 0.3a1.+ if you must
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → WONTFIX
Assignee | ||
Updated•16 years ago
|
Product: Firefox → Toolkit
You need to log in
before you can comment on or make changes to this bug.
Description
•