JAVA: libphonenumber 4.5
[platform/upstream/libphonenumber.git] / java / release_notes.txt
1 January 19th, 2012: libphonenumber-4.5
2 * Code changes
3  - Support for non-geographical country calling codes (e.g. +800).
4  - Modify formatInOriginalFormat to not insert/remove/modify digits in the original number passed
5    in.
6  - Fix formatOutOfCountryKeepingAlphaChars to not throw a NPE.
7
8 * Metadata changes
9  - Updates for AR, BH, CI, CN, CR, DE, GA, IL, JO, JP, KE, KZ, LB, LK, LT, MV, MW, MZ, NA, NL, NZ,
10    PL, RO, SA, SV, TM, UG, US
11  - New country calling codes: 800, 808, 883, 888, 979
12  - Geocoding data updates: AR, US
13
14 December 9th, 2011: libphonenumber-4.4
15 * Code changes
16  - Support for Voicemail numbers
17  - Support prefixes "xt" and "xtn" to indicate extensions of phone numbers
18  - Change formatInOriginalFormat to use raw_input for numbers with incorrect leading zeroes, instead
19    of all invalid numbers.
20
21 * Metadata changes
22  - Updates for AR, BD, CH, CI, IL, IR, IS, IT, JP, KW, LR, MM, NG, SA, SC, UZ
23
24 November 24th, 2011: libphonenumber-4.3
25 * Code changes
26  - Fix the problems with AYTF crashing for longer numbers entered with +CountryCode, and incorrectly
27    removing national prefix for some numbers.
28  - Improve PhoneNumberMatcher to not match numbers ending with '%'.
29  - Fix formatNumberForMobileDialing to handle Israeli star numbers, Peruvian and Colombian numbers.
30  - Modify formatInOriginalFormat to use the raw input if we don't have a formatting pattern for a
31    number.
32  - Simple offline geocoding function which takes into account the user's region.
33
34 * Metadata changes
35  - Updates for CR, GN, JP, KE, PL, SG, SR, SX, TH, TK
36
37 November 10th, 2011: libphonenumber-4.2
38 * Code changes
39  - Providing an "exact match" isEmergencyNumber method
40  - Improvement to PhoneNumberMatcher: requires national prefix to be present
41    when matching national-format numbers, unless matching for a region where it
42    is explicitly marked in the metadata that they may be omitted. Applies to
43    leniency level VALID and higher.
44  - Change formatNumberForMobileDialing not to modify the phoneNumber passed in.
45
46 * Metadata changes
47  - Emergency numbers added for all remaining countries
48  - Collected data on which numbers we format with a national prefix are
49    commonly written without one and added this
50  - Updates for AR, AT, BH, CZ, GR, IR, KM, LT, MX, PT, SE, SO, UG
51  - Addition of SX (Sint Maarten)
52
53 October 19th, 2011: libphonenumber-4.1
54 * Code changes
55  - Update code and metadata for countries with IDD "8~10" to accept phone
56    numbers where the "~" is omitted.
57  - Modify formatInOriginalFormat to use raw_input (when present) when the number
58    is considered as invalid by the library.
59  - Add ShortNumberUtil to deal with international short phone numbers, such as
60    short codes and emergency numbers.
61  - Increase the maximum phone-number length accepted when parsing (now set to
62    16).
63
64 * Metadata changes
65  - Updates: BF, BN, CN, DE, DK, DO, FR, IN, KI, KW, MC, MD, ML, PA, QA, SB, UK,
66    WS
67  - Emergency number information also added to: AE, AF, AL, AM, AR, AT, AU, BA,
68    BB, BD, BE, BG, BH, BO, BR, BY, CA, CH, CL, CN, CO, CR, CY, CZ, DE, DJ, DK,
69    DO, DZ, EC, EE, EG, ES, FI, FJ, FO, FR, GB, GE, GF, GH, GI, GL, GR, GT, GY,
70    HK, HN, HR, HU, ID, IE, IL, IN, IR, IS, IT, JM, JO, JP, KR, KW, KY, KZ, LB,
71    LK, LT, LU, LV, MA, MC, MD, ME, MK, ML, MM, MN, MO, MT, MU, MV, MX, MY, NG,
72    NI, NL, NO, NP, OM, PA, PE, PH, PK, PL, PM, PT, PY, QA, RO, RS, RU, RW, SA,
73    SB, SD, SE, SG, SI, SK, SL, SM, SR, SV, SY, TD, TH, TJ, TM, TN, TR, TT, TW,
74    UA, UG, US, UY, UZ, VA, VE, VN, VU, ZA, ZM, ZW
75
76 October 6th, 2011: libphonenumber-4.0
77 * Code changes
78  - New function formatNumberForMobileDialing, which attempts to format a number in
79    such a way that the call can be connected from a mobile phone. If this is
80    impossible, for example for numbers that cannot be internationally dialled,
81    then an empty string is returned.
82  - Fallback functionality to English for non-CJK languages for geocoding
83
84 * Metadata changes
85  - Collecting data for emergency numbers
86  - Updates: AR, AU, BR, CN, CZ, EG, GD, IE, IL, JM, KW, KH, SD, SO, TR, UG, UZ
87  - Geocoding data changes: AO, AR, AT, BJ, BR, CD, CG, CI, CL, CN, CV, DE, ES,
88    FR, GR, GW, HU, KM, MR, MZ, NL, PL, PT, SE, ST, SZ
89
90 September 13th, 2011: libphonenumber-3.9
91 * Code changes
92  - Enable AsYouTypeFormatter to handle long IDD and NDD.
93  - Allow the presence of an IDD following a +.
94  - Fix formatting of phone numbers which contain only 0s in the national number.
95  - Refactored some code in geocoding including AreaCodeMap and the storage
96    strategies.
97
98 * Metadata changes
99  - Updates: AM, BE, BH, BJ, BR, BT, BZ, CI, CL, CN, DE, DK, DM, DZ, EC, EG, FJ,
100    GR, HR, HT, IN, IQ, IS, JM, KE, KG, KH, KR, LA, LB, LR, MA, MD, ML, MO, MX,
101    MY, NE, NG, PG, PH, PK, PY, QA, SA, SD, SG, SN, TD, TG, TH, TN, TT, UG, YE,
102    ZA, ZM
103  - New geocoding data for: AC, CG, CU, CV, EG, ET, FI, FI, FI, GL, JP, KM, MA,
104    MA, MU, MU, MU, MZ, RS, SH, SH, SL, SO, ST, TG, TG, TG, UG, ZM
105  - Updated geocoding data for: AR, DE
106
107 August 11th, 2011: libphonenumber-3.8
108 * Code changes
109  - Fix to demo to not throw null-ptr exceptions for invalid NANPA numbers
110  - Fixed AYTF to not accept plus signs in the middle of input
111  - PhoneNumberMatcher improvements - added STRICT_GROUPING and EXACT_GROUPING
112    levels, numbers followed/preceded by a currency symbol will not match,
113    multiple numbers separated by phone-number punctuation will now match. ", "
114    is no longer accepted as an extension symbol when matching, only when
115    parsing. "x" is only accepted as a carrier code or extension marker, not
116    otherwise.
117  - Changes to handling of leading zeroes - these will not be silently ignored
118    anymore, but will be stored as part of the number.
119  - PhoneNumberOfflineGeocoder - new method to get the description of a number that assumes
120    the validity of the number has already been checked and will not re-verify it.
121  - Split geocoding US binary data into multiple files.
122
123 * Metadata changes
124  - Updates: AR, AT, AU, AZ, BE, BF, BH, BY, CA, CN, CO, CR, HT, HU, IT, KG, KH,
125    LB, LI, ME, NC, RS, SE, TT, US, VG, ZA
126  - New geocoding data for: AL, AM, AO, BF, BJ, BW, CD, CI, CZ, DZ, EE, GH, GM,
127    GN, GR, GW, HU, IS, KE, LK, LS, LT, LU, LV, MD, MG, MR, NA, PE, QN, SD, SK,
128    SN, SZ, TN, VE, VN, ZA, ZW
129  - Updated geocoding data for: GB, PT, US
130  - Revised sorting of geocoding data
131
132 July 5th, 2011
133 * Code changes
134  - Refactored AreaCodeMap to minimize binary and memory footprint by using 2 different strategies.
135  - Refactored BuildMetadataFromXml.java and added unittests.
136
137 * Metadata changes
138  - Regenerate binaries for all existing area code mapping data with smaller sizes.
139  - Added city-level area code data mapping for US and Canada.
140
141 June 29th, 2011
142 * Code changes
143  - Fixed issue 38, issue 39, issue 41 and issue 43
144
145 * Metadata changes
146  - Added phone number area mapping files for
147    - JP in Japanese
148    - FR in French
149    - TW in English, Simplified and Traditional Chinese
150    - RU in English
151    - IT in English and Italian
152    - PT in Portuguese
153    - TR in English and Turkish
154    - CH in English, German, French and Italian
155  - Updates: CR, GE, IT, JP, KW, MH, MP, MU, PE, PM, RW, TG, TJ, TK
156
157 June 14th, 2011
158 * Code changes
159  - Added PhoneNumberOfflineGeocoder, supporting classes and their unittests.
160  - Added GenerateAreaCodeData to transform phone number area mapping files from text files to binary
161    files.
162  - Modified PhoneNumberParserServlet.java and phonenumberparser.jsp to incorporate
163    PhoneNumberOfflineGeocoding in the appengine demo.
164
165 * Metadata changes
166  - Added phone number area mapping files for NANPA countries and GB in English, NL in Dutch, AR, CL
167    and ES in Spanish, AT and DE in German, SE in Swedish, BR in Portuguese, KR in English, Korean,
168    Simplified and Traditional Chinese, and CN in Simplified Chinese.
169
170 June 10th, 2011
171 * Code changes:
172  - Fixes for PhoneNumberMatcher to be more restrictive in valid mode and not match numbers
173    surrounded by Latin characters. This ensures, for example, the string abc123456789acg will not be
174    marked as a phone numbers.
175  - Enable PhoneNumberUtil to handle all digits, rather than a subset
176  - Fix for AYTF issue36 and improvement for US AYTF behaviour.
177 * Metadata changes:
178  - Updates: BG, EG, ES, GH, PF, SC, SY, VA
179
180 May 24th, 2011
181 * Code changes:
182  - Phonenumber now implements Serializable.
183  - findNumbers doesn't accept numbers with mis-matched brackets as phone-numbers
184  - An offline phone number geocoder has been added. The current implementation just returns the
185    region name for the phone number; more detailed geocoding will be added later.
186 * Metadata changes:
187  - New countries: GF, KP, NC, PA, PF, PW, PY, SB, SR, TO, UY, VU
188  - Updates: CY, CZ, ES, GB, GQ, JM, MQ, TN, VI
189
190 May 9th, 2011
191 * Code changes:
192  - Fixed potential for a null-ptr exception in getExampleNumber
193  - Potential speed improvement with replacement of StringBuffer with StringBuilder
194 * Metadata changes
195  - Changed way that international formats are specified to make it easier to do so
196  - New countries: AX, CC, CX, WF
197  - Updates: AM, AR, AU, AW, CN, CO, CR, DM, EC, ET, FI, FJ, GH, IN, JP, KE, KM,
198    KN, LR, MD, MQ, MX, NP, PH, SC, SE, SM, SN, SY, UG, US, VC, VI, ZM
199
200 Apr 26th, 2011
201 * Code changes:
202  - Improved PhoneNumberMatcher for cases with other numbers before or after the phone number.
203  - Improved AsYouTypeFormatter not to use formatting rules containing non-formatting characters
204    (e.g. '*' in Israeli star numbers).
205 * Metadata changes:
206  - New countries: FJ, FM, GY, NF, NI, NR, TV.
207  - Updates: AM, AZ, BF, BW, BZ, CI, CR, GB, GP, HK, JM, KH, LB, LY, MV, PE, PK, SZ, TJ, US.
208 * Minor documentation updates
209
210 Apr 11th, 2011
211 * Bug fixes:
212  - Adding date exclusion pattern in PhoneNumberMatcher.
213  - Fixing bug with selecting a suitable region for numbers with leading zeros where mutiple regions
214    for that country code are possible.
215 * Metadata changes:
216  - Updates: AG, AI, AS, BB, BM, BS, CA, DM, DO, ET, FO, GD, GE, GU, IN, JM, KN, KY, LC, MN, MP, MR,
217    MS, NO, PR, TC, TR, TT, US, VC, VG, VI
218  - New countries: CK, FK, GT, IO, KI, SJ, SV
219 * Documentation updates and some small refactoring to AsYouTypeFormatter
220
221 Mar 31st, 2011
222 * New functionality:
223  - Can parse and format numbers in RFC-3966 format.
224  - Added isAlphaNumber to check to see if a number is a "vanity" or "alpha" number
225  - Can format a number made up of alpha-characters in an "out-of-country" format (e.g. 0011 1
226    800-SIX-FLAG to dial an American alpha-number from Australia).
227 * Code changes:
228  - Renamed private vars, private methods and fixed comments to try and differentiate between country
229    (calling) codes and region codes.
230  == Non-backwards-compatible API changes: ==
231  - Renamed getSupportedCountries to getSupportedRegions, as this more accurately reflects that the
232    library is based around region codes.
233  - getNationalSignificantNumber is no longer a static method, but is instead an instance method.
234 * Metadata changes:
235  - Bug-fixes and updates for AU, AZ, EE, FI, IN, JO, KW, KZ, MV, RU, RR, VA
236  - New country: ME
237
238 Mar 22nd, 2011
239 * Metadata changes:
240  - New mobile-number pattern for AU
241
242 Mar 10th, 2011
243 * New functionality:
244  - New function to format a number with the preferred domestic carrier code used when parsing,
245    falling back to a default calling code otherwise (formatNationalNumberWithPreferredCarrierCode).
246  - We now store the preferred domestic carrier code used when the user calls parseAndKeepRawInput
247  - New functionality to extract phone-numbers from text (findNumbers). This is just the first
248    version - it does not extract ALPHA numbers such as 0800 CALL ME, or numbers where alternate
249    endings are specified (such as 03-331 6005/6006).
250 * Code changes:
251  - Tidying up the test file to use several pre-defined phone number constants
252  - Fixing several lint errors
253  - Added javadoc to formatNationalNumberWithCarrierCode
254  - Fixed bug where a null pointer exception was thrown when getAsYouTypeFormatter was called with an
255    invalid region code
256  - Improved AsYouTypeFormatter to deal with countries with variable-length patterns such as LU
257 * Metadata changes:
258  - Bug-fixes and updates for the following countries: BF, BO, BR, CL, CO, CR, DK, FO, GE, KR, KW,
259    LA, LU, MU, SC, SH, TR, VE
260  - New country: SH
261
262 Mar 10th, 2011
263 * Code changes:
264   - releasing the code to run the demo on localhost or appengine.
265
266 Mar 7th, 2011
267 * Metadata changes:
268  - Adding support for AC
269
270 Feb 11th, 2011
271 * Metadata changes:
272  - Update UAN number ranges for IM and JE.
273
274 Feb 9th, 2011
275 * Code changes:
276   - Better isNumberMatch method. This will now recognise numbers starting with a national prefix as
277     an NSN_MATCH, instead of SHORT_NSN_MATCH.
278     == Note Non-backwards-compatible API change here! ==
279       This will no longer throw a NumberParseException - instead we will return NOT_A_NUMBER if one
280       or other of the numbers provided do not match.
281   - New number-type UAN now supported in the code. This represents Company Numbers or Universally
282     Accessible Numbers.
283 * Metadata changes:
284   - Bug-fixes and updates for the following countries: AG, AZ, BA, BE, CA, CU, ES, FI, GB, GD, GG,
285     IE, IL, IM, IN, IR, IT, JE, JP, KR, KW, NG, NZ, PK, PS, PT, RU, SE, SG, SY, US
286   - New countries: CO, LU, LY, MC, SM
287   - Addition of "Personal Number" ranges to all NANPA countries
288
289 Jan 31st, 2011
290 * Code changes:
291   - Introducing equals() and hashCode() methods for the Phonenumber.PhoneNumber class
292
293 Jan 28th, 2011
294 * Code changes:
295   - Fixing critical bug with non-Android-compatible code. isEmpty() was being used and CANON_EQ in
296     reg-ex matches.
297
298 Jan 20th, 2011
299 * Code improvements:
300   - Handle null phone-numbers when parsing by throwing a NumberParseException.
301   - Handle extension written with an accented "o", as per Spanish, when parsing.
302   - Handle U+30FC dashes as phone-number punctuation.
303   - Allow "ZZ" or null regions to be specified for numbers starting with a full-width "+" symbol, or
304     with other characters (such as whitespace) before the leading +.
305   - new getLengthOfNationalDestinationCode function
306 * Metadata changes:
307   - New types of numbers introduced: UAN (universal or "company" numbers) and short codes. Note that
308     "generalDesc" patterns do not encompass short-codes.  No code-support for these has been
309     introduced as of yet. We are also now enabling the collection of data for information such as
310     area-code-optional, and no-international-dialling ranges.
311   - Data updates as per ITU notifications/bug fixes for the following countries: AM, BH, CD, CG, CR,
312     DE, DJ, EE, GB, GN, HU, IE, JO, JP, LB, LR, MA, MK, MN, MR, NA, PG, SC, SG, SO, SZ, VN, ZA, ZW
313   - Data added for the following countries: BZ, CU, EC, FO, GI, HN, HT, LK, MT, MV, NU, PS, SD
314   - Indentation fixes in reg-exes for the following countries: BG, GB
315   - Allow nationalPrefixForParsing to be specified for countries with no national prefix, to handle
316     possible carrier prefixes
317
318 Jan 3rd, 2011
319 * Metadata changes:
320   - Updates to JE
321   - Updated comments for GB/GG/IM/JE
322
323 November 25th, 2010
324 * Metadata changes:
325   - Updates to existing countries: AD, AG, AI, AN, AS, BB, BG, BM, BS, BW, CA, DM, DO, GD, GH, GM,
326     GU, IN, JM, KN, KY, KZ, LB, LC, MP, MS, PR, SY, TC, TT, TZ, US, VC, VG, VI.
327   - Reorganize reg-exes for better readability.
328   - Updated comments.
329
330 October 22nd, 2010
331 * Metadata changes:
332   - Updates to existing countries: AE, GB, GG, IM, JE
333
334 October 15th, 2010
335 * Code improvements:
336   - Allowed parsing of numbers that start with "++" or a full-width "+" symbol
337   - Allowed reg-exes for national and possible number patterns to have white space in them in the
338     source XML file
339   - Added a more useful toString method for the phone number proto class
340 * Metadata changes:
341   - Updates to existing countries: AF, BF, BO, ES, GB, GG, IM, IS, JE, JE, JP, KR, PE, PT, RU, SE,
342     TT, ZW
343 * Bug fixes:
344   - Parsing empty strings with invalid region codes no longer throws a null pointer exception
345
346 September 4th, 2010
347 * Code improvement:
348   - Added new phone number type: pager
349 * Metadata change:
350   - update to existing country: GG, IM, JE, RS, RU
351 * Bug fixes:
352   - ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition()
353   - AsYouTypeFormatter for UK childline number
354
355 September 1st, 2010
356 * Bug fix on KZ metadata.
357
358 August 17th, 2010
359 * Code improvement:
360   - Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and
361     BuildMetadataProtoFromXml.java
362   - Added BuildMetadataProtoFromXml.java and JSArrayBuilder.java
363   - Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate
364     files.
365
366 August 16th, 2010
367 * Bug fixes
368   - AsYouTypeFormatter for formatting Chinese geographical numbers entered in national format.
369   - AsYouTypeFormatter for formatting Chinese 400/800 numbers entered in national format.
370 * Metadata change:
371   - new countries: AM, AN, BH, GL, IS
372   - adding national prefix 1 to all NANPA countries.
373   - update to existing countries: BF, FR, UK, PK, RE
374
375 August 4th, 2010
376 * Further improve startup performance
377   - Preload no country specific metadata at startup.
378   - Stop creating the file containing mapping from country calling code to region code
379     and loading it at startup; instead, do the initialization in PhoneNumberUtil.
380
381 July 31th, 2010
382
383 * Improve startup performance
384   - Separate generated metadata binary file to one file per region
385   - Preload US at start up, and load other region at the time when needed
386   - Create a file containing mapping from country calling code to region code,
387     and load it at startup
388   - Same change also applied to unittests
389
390 July 30th, 2010
391 * Metadata change:
392   - new country: TL
393   - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN
394
395 * Code improvement
396   - China local number formatting for AsYouTypeFormatter
397   - improve extension parsing to handle number in the form of +1 (645) 123 1234 ext. 910#