mozilla

比较版本

版本格式说明

更改版本

修订版 254854:

由 Steekid 在 进行的修订 254854

修订版 211055:

由 Steekid 在 进行的修订 211055

标题:
版本格式说明
版本格式说明
网址缩略名:
版本格式说明
版本格式说明
标签:
"Toolkit API"
内容:

修订版 254854
修订版 211055
t7    <p>t
8      This document is a reference for the version format, as use
>d in Firefox 1.5 (<a href="cn/XULRunner">XULRunner</a> 1.8) and l 
>ater. This format is used by the Extension Manager, Software Upda 
>te, and other parts of the platform. Versions in at least the fol 
>lowing places must conform to this format: 
9    </p>
10    <ul>
11      <li>
12        <a href="cn/Install_Manifests#version">Addon's</a> and <a
> href="cn/Install_Manifests#targetApplication">target application 
>'s</a> version in <a href="cn/Install_Manifests">install</a> and  
><a href="cn/Update_Manifest">update</a> manifests. 
13      </li>
14      <li>The following preferences: <code>app.extensions.version
></code>, <code>extensions.lastAppVersion</code> 
15      </li>
16      <li>Versions returned by <a href="cn/NsIXULAppInfo">nsIXULA
>ppInfo</a>. 
17      </li>
18      <li>
19        <a href="cn/XUL_Application_Packaging"><code>application.
>ini</code></a> in <a href="cn/XULRunner">XULRunner</a> applicatio 
>ns 
20      </li>
21      <li>
22        <a href="cn/Chrome_Registration#appversion">appversion fl
>ag</a> in <a href="cn/Chrome_Registration">chrome manifests</a>. 
23      </li>
24    </ul>
25    <p>
26      You can use <a href="cn/NsIVersionComparator">nsIVersionCom
>parator</a> to compare versions from your application. 
27    </p>
28    <p>
29      See {{ Anch("Older version formats") }} below for descripti
>on of the older version format used in Firefox/Thunderbird 1.0. 
30    </p>
31    <h3 id="Version_format" name="Version_format">
32      Version format
33    </h3>
34    <p>
35      A <b>version string</b> consists of one or more <i>version 
>parts</i>, separated with dots. 
36    </p>
37    <p>
38      Each <b>version part</b> is itself parsed as a sequence of 
>four parts: <tt>&lt;number-a&gt;&lt;string-b&gt;&lt;number-c&gt;& 
>lt;string-d&gt;</tt>. Each of the parts is optional. Numbers are  
>integers base 10 (may be negative), strings are ASCII. 
39    </p>
40    <p>
41      A few examples of valid version parts:
42    </p>
43    <ul>
44      <li>
45        <tt>0</tt> (as in <tt>1.0</tt>): <tt>&lt;number-a&gt;=0</
>tt> 
46      </li>
47      <li>
48        <tt>5a</tt> (as in <tt>1.5a</tt>): <tt>&lt;number-a&gt;=5
></tt>, <tt>&lt;string-b&gt;=a</tt> 
49      </li>
50      <li>
51        <tt>5pre4</tt> (as in <tt>3.5pre4</tt>): <tt>&lt;number-a
>&gt;=5</tt>, <tt>&lt;string-b&gt;=pre</tt>, <tt>&lt;number-c&gt;= 
>4</tt> 
52      </li>
53      <li>
54        <tt>*</tt> (as in <tt>1.0.*</tt>): <tt>&lt;string-b&gt;=*
></tt> 
55      </li>
56    </ul>
57    <p>
58      A few special parsing rules are applied for backwards compa
>tibility and readability: 
59    </p>
60    <ul>
61      <li>if the version part is a single asterisk, it is interpr
>eted as an infinitely-large number:<br> 
62        <tt>1.5.0.*</tt> is the same as <tt>1.5.0.<i>(infinity)</
>i></tt> 
63      </li>
64      <li>if string-b is a plus sign, number-a is incremented to 
>be compatible with the Firefox 1.0.x version format:<br> 
65        <tt>1.0+</tt> is the same as <tt>1.1pre</tt>
66      </li>
67    </ul>
68    <p>
69      The rationale behind splitting a version part into a sequen
>ce of strings and numbers is that when comparing version parts, t 
>he numeric parts are compared as numbers, e.g. '1.0pre1' &lt; '1. 
>0pre10', while the strings are compared bytewise. See the next se 
>ction for details on how versions are compared. 
70    </p>
71    <h3 id="Comparing_versions" name="Comparing_versions">
72      Comparing versions
73    </h3>
74    <p>
75      When two version strings are compared, their version parts 
>are compared left to right. An empty or missing version part is e 
>quivalent to <code>0</code>. 
76    </p>
77    <p>
78      If at some point a version part of one version string is gr
>eater than the corresponding version part of another version stri 
>ng, then the first version string is greater than the other one. 
79    </p>
80    <p>
81      Otherwise, the version strings are equal. Note, that since 
>missing version parts are treated as if they were <code>0</code>, 
> the following version strings are equal: <code>1</code>, <code>1 
>.0</code>, <code>1.0.</code>, <code>1.0.0</code>, and even <code> 
>1.0...</code> 
82    </p>
83    <h4 id="Comparing_version_parts" name="Comparing_version_part
>s"> 
84      Comparing version parts
85    </h4>
86    <p>
87      Version parts are also compared left to right, parts A and 
>C are compared as numbers, while parts B and D are compared bytew 
>ise. A string-part that exists is always less-then a nonexisting  
>string-part (<tt>1.6a</tt> is less than <tt>1.6</tt>). 
88    </p>
89    <h3 id="Examples" name="Examples">
90      Examples
91    </h3>
92    <pre class="eval">
931.-1
94&lt; 1 == 1. == 1.0 == 1.0.0
95&lt; 1.1a &lt; 1.1aa &lt; 1.1ab &lt; 1.1b &lt; 1.1c
96&lt; 1.1whatever
97&lt; 1.1pre == 1.1pre0 == 1.0+
98&lt; 1.1pre1a &lt; 1.1pre1aa &lt; 1.1pre1b &lt; 1.1pre1
99&lt; 1.1pre2
100&lt; 1.1pre10
101&lt; 1.1.-1
102&lt; 1.1 == 1.1.0 == 1.1.00
103&lt; 1.10
104&lt; 1.* &lt; 1.*.1
105&lt; 2.0
106</pre>
107    <h3 id="Older_version_formats" name="Older_version_formats">
108      Older version formats
109    </h3>
110    <p>
111      Firefox and Thundebird 1.0 used a simpler version format, n
>amely 
112    </p>
113    <pre class="eval">
114major[.minor[.release[.build]]][+]
115</pre>
116    <p>
117      where <tt>{{ mediawiki.external('..') }}</tt> denotes an op
>tional component, and <tt>major</tt>, <tt>minor</tt>, <tt>release 
></tt>, and <tt>build</tt> are all non-negative integers. 
118    </p>{{ languages( { "es": "es/Formato_para_la_versi\u00f3n_de
>l_Toolkit", "ja": "ja/Toolkit_version_format", "en": "en/Toolkit_ 
>version_format" } ) }} 

返回历史