3.8099_01  2023-01-12

- Bug fix: NANP toll-free numbers corrected. 833 area code now supported,
  and regex fixed to only match when the B and C digits are the same, so
  800 is toll-free, 888 is toll-free, but 808 is not. See
  https://github.com/DrHyde/perl-modules-Number-Phone/issues/110

- Bug fix: NANP 1-600 area code is non-geographic. See
  https://github.com/DrHyde/perl-modules-Number-Phone/issues/113

- Workaround: OFCOM have the wrong number length for the +44 800 716 range,
  we now have an egregious hack to work around that. See
  https://github.com/DrHyde/perl-modules-Number-Phone/issues/112

- No longer auto-tested on 5.10 because a 'make test'-time dependency (Test::Deep)
  no longer supports that.

- Data updates

3.8007    2022-12-02

- Data updates

3.8006    2022-09-03

- Data updates

- No longer auto-tested on 5.8 because a 'make dist'-time dependency (XML::XPath)
  no longer supports that.

3.8005    2022-06-01

- Data updates only

3.8004    2022-03-07

- Fix test failure that only occurred if Number::Phone::JP was installed
  (it doesn't have exactly the data we expect from ...::StubCountry::JP)

- Data updates from OFCOM

3.8003    2022-03-05

- New Canadian area codes
- +882 34 recognised as Antarctica, via Global Networks Switzerland

3.8002    2021-12-06

- Fix Makefile.PL to not consume arguments that my code doesn't know about but
  which are relevant to EU::MM (https://github.com/DrHyde/perl-modules-Number-Phone/pull/106)

- Explicitly open databases read-only so it works on a RO filesystem
  (https://github.com/DrHyde/perl-modules-Number-Phone/issues/107)

- Data updates

3.8001    2021-09-21

- Tweak build to use more compatible options to tar(1) so some really old tars
  can read the archive correctly

3.8000    2021-09-19

- Bugfix for numbers in local format which may be ambiguous for UK Crown Dependencies
  when using Number::Phone::Lib

- Bugfix for when you ask for an object representing a number in one country
  but provide a number for a different country. This mostly affects countries
  that contain other jurisdictions squatting on parts of their number plan,
  such as the Vatican in the Italian plan, and the Crown Dependencies in the UK
  plan. It is now an error to ask for an object representing a number in a
  'sub-country' which isn't valid in that sub-country (eg asking for a Jersey
  object but passing a Guernsey number); but if you ask for an object representing
  the 'super-country' but pass a 'sub-country' number you'll still get an object
  representing the sub-country. ie, say "gimme a GB object for this 'ere Guernsey number"
  and you'll get a Guernsey object.

- Data updates

3.7003    2021-06-02

- Data updates;

- Add deprecation warning for platforms with 32 bit int (support will
  go away some time after 2023-06-01 with no further warning)

2021-03-09      3.7002  Data updates

2021-02-04      3.7001  Data from OFCOM/CNAC/NPA/localcallingguide.com squirreled
                          away during builds for greater reproducibility;
                        Data updates

2020-12-04      3.7000  Bugfixes in dial_to for stubs and unallocated UK numbers;
                        Windows doesn't properly support fork() so skip the tests for it;
                        Minor documentation clarification re constructor;
                        Stub classes shrunk by de-duping areanames;
                        Kosovo appears to have fully switched to using its own country code;
                        Option to build --without_uk and save disk space
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/95);
                        Correctly identify UK 04, 05[01234789], and 06 numbers as invalid,
                          instead of valid but unallocated (fix arising from
                          https://github.com/DrHyde/perl-modules-Number-Phone/issues/98);
                        Use data from a tagged release of libphonenumber instead of whatever
                          is in master, so builds are more reproducible, and expose that
                          tag in libphonenumber_tag method;
                        Expose OFCOM, CNAC, NPA and localcallingguide.com data update
                          date/time in N::P::{UK,NANP::CA,NANP::US,NANP}->data_source;
                        Data updates

2020-09-04      3.6006  Data updates

2020-06-06      3.6005  Data updates

2020-05-11      3.6004  Data updates;
                        Improved doco on the data update policy :-)

2020-04-27      3.6003  Testing improvements for fork()ing code;
                        Data updates

2020-03-09      3.6002  Data updates

2019-12-11      3.6001  Inmarsat +871 to +874 have been de-commissioned;
                        Added some US overlay codes (not all are in use yet);
                        Data updates

2019-09-12      3.6000  Data updates;
                        UK is_drama() numbers now all respond appropriately
                          to is_mobile, is_tollfree etc, and the mobile range
                          is correctly identified as being UK-wide and not Jersey
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/67);
                        Areaname() sensitive to your locale

2019-06-11      3.5001  Corrected international dialling data for Antarctic
                          research stations;
                        Cleaned up Unicode-spoor in some US operators' names;
                        Numerous new area codes in the US;
                        Doco clarification re incomplete numbers;
                        Data updates

2019-03-03      3.5000  Added operator data for almost all of the NANP;
                        Data updates

2018-12-05      3.4006  Expose libphonenumber's IDD prefix regexes
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/pull/89);
                        New NANP area codes for Jamaica and Canada;
                        Data updates

2018-06-19      3.4005  Improved formatting of UK mobile and pager numbers
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/75);
                        Reinstate Kosovo squatting on +377, +381, and +386, as the change-
                          over is apparently not yet complete;
                        Data updates

2018-04-10      3.4004  We now have some data from libphonenumber for Kosovo
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/66);
                        Kosovo has migrated to +383 so get rid of the special cases in +377 etc;
                        Bug-fix for when national prefix transforms apply
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/pull/87);
                        N::P::Country::Data is now mostly built from libphonenumber
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/34);
                        Corrected the Vatican's area code within the Italian numbering plan;
                        Added a special case for San Marino within the Italian numbering plan;
                        Data updates

2018-02-03      3.4003  UK "protected" numbers should have false is_allocated();
                        Bugfix for countries that don't have area names (see
                          https://github.com/DrHyde/perl-modules-Number-Phone/issues/64);
                        Match libphonenumber's behaviour when countries have identical
                          validators for fixed_line and mobile (see
                          https://github.com/DrHyde/perl-modules-Number-Phone/issues/84);
                        Accept numbers in some more unusual national dialling formats (see
                          https://github.com/DrHyde/perl-modules-Number-Phone/issues/77);
                        Recognise some more special rate numbers in Barbados and Bahamas (see
                          https://github.com/DrHyde/perl-modules-Number-Phone/pull/86);
                        Add format_for_country method;
                        Data updates

2017-09-05      3.4002  Add new US and CA area codes;
                        UK data is now in a normal data file instead of a humungous binary
                          module;
                        Re-open the UK database in children after forking
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/72);
                        UK data can be slurped into memory for faster access (but slow startup);
                        Data updates

2017-07-02      3.4001  Added some nominally redundant dependencies (see
                          https://github.com/DrHyde/perl-modules-Number-Phone/pull/68);
                        UK "protected" numbers are now included;
                        Data updates

2017-03-14      3.4000  Changed Kosovo's placeholder country-code from KOS to XK;
                        +383 (Kosovo) is now a special-case for validation
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/66);
                        Data updates

2016-12-06      3.3000  Implemented is_drama
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/pull/61);
                        NANP modules now know about is_tollfree, is_specialrate and
                          is_personal;
                        Number::Phone::Country will now warn that exporting is deprecated;
                        Stubs and dial_to are no longer experimental;
                        Minor doco improvements, including some from the Debian project
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/60);
                        Minor coverage improvements by getting rid of some redundant
                          code paths;
                        More comprehensive testing of stubs, and resulting bug-fixes for
                          territories that appear as part of another's number plan, such
                          as enormous Kazakhstan and tiny Tristan da Cunha;
                        Data updates

2016-09-07      3.2001  Data updates

2016-06-05      3.2000  Bump version number because rpm is stupid and thinks
                          3.1 < 3.0014;
                        Recognize Isle of Man (IM) free/special-rate
                          numbers;
                        Data updates

2016-03-04      3.1     Added the format_using() method and the ability to
                          use third-party formatters, thanks to Michael
                          Schout for the suggestion;
                        Data updates

2015-12-08      3.0014  Deprecated APIs of being able to call most methods as
                          class methods or functions instead of object methods
                          have now been deleted;
                        Remove unnecessary N::P::NANP->country method - the
                          implementation in the superclass is sufficient;
                        Data updates

2015-11-04      3.0013  Fix another bug in the tests which threw up
                          misleading failures if a country-specific subclass
                          was installed

2015-10-26      3.0012  Updated dialing prefixes in N::P::Country
                          from Michael Gray;
                        Fix broken code for is_specialrate in stubs,
                          which previously always returned undef (ie
                          unknown) even when libphonenumber knew it was
                          eg premium rate (bug found by Gerhard Poul's
                          PR 46);
                        +44 3 numbers have is_specialrate set;
                        Fix bug where Number::Phone::Country would get
                          re-set to 'UK' mode instead of the ISO-ly
                          correct 'GB' mode;
                        Data updates.

2015-09-09      3.0011  Data updates

2015-07-20      3.0010  Fix a minor bug in the tests which were throiwing up
                          misleading failures if a country-specific subclass
                          was installed

2015-07-18      3.0009  Data updates;
                        Heard Island has nothing to do with the Marshall Islands!
                        Don't create stub objects when given just a country code
                          (see https://github.com/DrHyde/perl-modules-Number-Phone/issues/40)

2015-06-05      3.0008  Turn on the utf-8 flag on areacode names;
                        Data updates

2015-03-13      3.0007  Mostly just updated data from Google and OFCOM;
                        Announced approximately quarterly release schedule

2014-12-03      3.0006  Updated country codes and access codes for some
                          French overseas departments and ex-Soviet countries;
                        Fix bug confusing Georgia (GE) and South Georgia (GS);

2014-11-25      3.0005  Bugfix for stubs of countries with no national dialing
                          code.

2014-11-24      3.0004  Mailing list for users created;
                        Bugfixes for Curacao, Svalbard;
                        Bugfixes for stubs of countries where numbers can
                          begin with the national dialling prefix, eg Russia,
                          where the prefix is 8 but area codes like 812 exist;
                        New UK allocations

2014-09-04      3.0003  Bugfix: N::P->new("CC", 0...") now works
                          (where 0 is the national dialling prefix);
                        New UK allocations

2014-08-22      3.0002  Be more consistent when formatting UK numbers
                          for which we have incomplete data from OFCOM,,
                          no matter how they're instantiated;
                        New UK allocations

2014-06-17      3.0001  Make N::P::UK->format() cope better when OFCOM
                          don't tell us how long 08 numbers are;
                        New UK allocations

2014-04-25      3.0     Add Number::Phone::Lib, a libphonenumber-compatible
                          subclass. This lacks some functionality but is
                          considerably faster (for UK numbers) and compatible
                          (for non-geographic NANP numbers);
                        Add some new CA/US area codes;
                        Add more GMSS codes;
                        Use libphonenumber data for some NANP countries (some
                          have dodgy data*) for is_mobile, is_fixed_line

* Some countries have duplicate regexes for fixed_line/mobile in libphonenumber,
  and others have regexes that match the same data

2014-04-15      2.2003  Bugfix to tighten up length checking for
                          unallocated UK numbers;
                        New UK allocations

2013-07-04      2.2002  New UK allocations

2012-11-29      2.2001  Bugfix to avoid using broken third-party
                          Number::Phone::* modules that aren't proper
                          sub-classes;
                        New UK allocations

2012-11-21      2.2     Bugfix stub countries to not have random \ in
                          area names;
                        Minor doco fix "from Number::Phone::UK, it would
                          return DE" is obviously wrong;
                        Some stuff in stubs for the breakup of the
                          Dutch colonies in the Caribbean;
                        New UK allocations;
                        Documentation (and stub implementation in superclass)
                          for new operator_ported() method;
                        New dial_to() method;
                        Much doco improvement;
                        Switch to DBM::Deep 2 for UK data, to fix Windows
                          test failures, see eg http://tinyurl.com/n-p2-1fail;

2012-10-30      2.1     Fix so we don't die trying to parse Inmarsat
                          and other non-country entities, see
                          https://github.com/DrHyde/perl-modules-Number-Phone/issues/8

2012-10-30      2.0002  Fixed how we extract patterns of leading digits
                          for number formats from libphonenumber, see
                          https://github.com/DrHyde/perl-modules-Number-Phone/issues/7;
                        Added some minimal tests for this;
                        Import from libphonenumber

2012-10-27      2.0001  New UK allocations, import from libphonenumber
                          and OFCOM

2012-01-29      2.0     Fix nasty bug in formatting unallocated UK numbers;
                        Sint Maarten (SX) moved from +599 5 to +1 721;
                        UK formatting improved for 3+7 and 2+8 formats;
                        Isle of Man (IM), Guernsey (GG) and Jersey (JE)
                          now sort-of treated as countries;
                        The minimal objects returned when there's no detailed
                          country-specific module available are far more
                          intelligent, thanks to libphonenumber's data;
                        New UK allocations;
                        Deprecated ridiculous ways of calling most methods;

2011-10-29      1.9     New UK allocations;
                        Use libphonenumber's data for N::P::Country;
                        Use libphonenumber's data for N::P::NANP areanames

2011-08-18      1.8006  Add South Sudan (SS, +211) to N::P::Country;
                        New UK allocations

2011-08-05      1.8005  Include tests for bugfix in distro

2011-08-05      1.8004  Bugfix for divining country code from subclasses;
                        New UK allocations

2011-07-19      1.8003  UK parser made a teensy bit more robust;
                        UK parser bugfixed for 01768 88 mixed length stupidity
                        New UK allocations

2011-07-08      1.8002  New UK allocations;
                        Numerous small changes in Number::Phone::Country
                          Tidying number ranges in Mayotte;
                          Minor bugfix for Mayotte;
                          Gibraltar can't be called in the Spanish
                            numbering scheme any more;
                          Ellipsos satcomms have gone away;
                          Kazakhstan has +76 and +77 instead of random
                            bits all over +7;
                          Western Sahara number ranges identified;
                          Kosovo (no ISO3166 country code yet, so I'm
                            temporarily using KOS, as used by the UN
                            Development Programme, see
                            wikipedia://List_of_UNDP_country_codes);
                          Canada and the US have some new codes;
                          Netherlands Antilles are splitting up;
                          Dominican Republic now has +1 849;

2011-05-20      1.8001  New UK allocations

2010-09-12      1.8     INCOMPATIBLE CHANGE: constructor will now return
                          a minimal object instead of undef if there's no
                          country-specific module available
                        New UK allocations

2010-07-05      1.7101  Bugfix for N::P->new('CC', '+NN12345');

2010-07-02      1.7100  Bugfix for N::P->new('CC', '12345');
                        New UK allocations

2010-02-17      1.7004  New UK allocations;
                        UK geographic numbers are no longer assumed to
                          be fixed lines - damn those VoIP providers!

2009-10-18      1.7003  Minor bugfix, see https://rt.cpan.org/ ticket 48581;
                        New UK allocations

2009-04-22      1.7002  Fix minor bug (...::UK constructor returning 0
                          instead of undef for (some?) invalid numbers,
                          reported by Tomasz Chomiuk;
                        New UK allocations

2009-03-04      1.7001  Kill warnings about GE being deprecated;
                        Add missing dep on Digest::MD5

2009-02-26      1.7     Fix formatting for valid but unallocated UK numbers;
                        One of the UK telcos whose name we check for in
                          tests renamed itself;
                        New UK allocations;
                        Added country-to-code and national/international
                          prefix data to N::P::C, thanks to Michael Schout

2008-05-27      1.6     Magic country detection now works (thanks to
                          Jos Boumans for reporting the bug);
                        New UK allocations

2008-02-27      1.581   Added dependency on perl 5.006 (DBM::Deep uses 'our');
                        Removed docs from N::P::UK::DBM::Deep and
                          replaced with note about its status;
                        New UK allocations;
                        Removed t/pod* temporarily
2007-06-01      1.58    Number::Phone::Country updated to reflect KM/YT split
                          Mayotte moved into parts of +262, so now shares with
                          Reunion instead of Comoros
                        New UK allocations (in particular 03 range)
2007-03-13      1.57    New UK allocations;
                        Bundle DBM::Deep cos old version is incompatible
2007-02-24      1.5601  New UK allocations
2006-12-08      1.56    New UK allocations;
                        Updated OFCOM parser;
                        Loads of Number::Phone::Country updates -
                          +1: NANP overlays: 226, 438, 762, 769, 829;
                          +269: Split Mayotte/Comores;
                          +381/2: Yugoslavia's *still* breaking up! (RS and ME);
                          +61 89162/4: Cocos and Christmas islands
                          +672 3: Norfolk Island
                          +672 1 0/1/2/3: Australian Antarctic bases
                          +681: Wallace and Futuna (corrected CCTLD)
                          +881 0: ICO Global
                          +881 3: Ellipso
                          +881 6: Iridium
                          +881 7: Iridium
                          +881 8: Globalstar
2006-08-25      1.55    Damnit, 1.54's ...UK->location() was wrong
2006-08-24      1.54    And again!
2006-08-23      1.53    Doh!  How we loaded location data was buggy
2006-08-23      1.52    Documentation patches;
                        Corrected CHANGELOG entry for v1.51;
                        Added location data for the UK
2006-08-22      1.51    Updated UK data to access DATA filehandle directly,
                          which depends on DBM::Deep 0.97 and above.  This
                          saves even more memory and makes the module load
                          a lot faster;
                        New UK allocations;
                        Some improvements and fixes in OFCOM data parser;
                        Bug fixes :-( for UK numbers with a significant F digit
2005-10-16      1.5     UK data moved into an embedded DBM::Deep structure
                          to save memory (NB: this adds dependencies)
                        Added location() method
2005-10-11      1.4004  New UK allocations
                        Removed 'use warnings' and 'use diagnostics' because
                          they pointlessly require a later version of perl;
                        re the above, tests now all use -w instead
2005-08-23      1.4003  Updated N::P::Country to use CS instead of YU for
                          Yugoslavia (ISO 3166 has been updated)
                        Fixed non-US and non-CA countries in N::P::Country's
                          phone2country_and_idd function (BUGFIX)
                        New UK allocations
2005-08-02      1.4002  New UK allocations
2005-06-27      1.4001  Added phone2country_and_idd to N::P::Country
                        new UK allocations etc
2005-05-18      1.4     updated Number::Phone::Country to remove American
                          Samoa's +684 code, it has migrated to +1 684 in
                          the NANP
                        N::P::C now correctly identifies US numbers
                          doesn't just assume a NANP number is US if it's
                          not assigned to another country
                        N::P::C no longer uses <DATA>
                        N::P::C added missing countries
                        some tidying in N::P::C's tests
                        N::P->country now defaults to returning current country
                        some tidying in N::P base class
                        new UK number allocations
                        UK data file now has version number (autogen from date)
                        UK data fixed for numbers "Allocated for Migration only"
                        Added NANP class and NANP::XX subclasses
2005-04-12      1.3004  new UK number allocations
                        removed 'use diagnostics'
2004-12-05      1.3003  new UK number allocations
2004-11-26      1.3002  OFCOM's UK data had some spurious spaces in numeric
                          fields, which broke some 070 numbers, these are now
                          filtered out
2004-11-10      1.3001  new UK number allocations
2004-10-20      1.3     Added note about number portability in UK module.
                        Added areaname() method to interface definition
                          and an implementation in the UK module.
                        Defined translates_to() method in superclass.
                        Added Number::Phone::Country to distribution.  This
                          was previously maintained by T.J.Mather.
2004-10-13      1.2001  No code changes, just new UK number allocations
2004-09-22      1.2     Oops, forgot to add is_ipphone to docs for N::P::UK
                          last time.
                        Updated N::P::UK::Data with some new number ranges.
2004-09-15      1.1     Number::Phone::UK now implements is_ipphone, and
                          N::P::UK::Data has appropriate data in it, as
                          OFCOM have this week publishedthe allocations they
                          made a few weeks ago.
                        Removed is_voip() alias, it didn't work properly
                          under all the possible ways of invoking it.