2.006000 2018-09-07

- Accept license keys longer than 12 characters.

2.005001 2018-04-11

- Rename user_id attribute to account_id while still supporting the old
  constructor parameter.

2.005000 2018-01-17

- The is_in_european_union() attribute was added to GeoIP2::Record::Country
  and GeoIP2::Record::RepresentedCountry. This attribute is true if the
  country is a member state of the European Union.


2.004000 2017-10-27

- The following new anonymizer attributes were added to GeoIP2::Record::Traits
  for use with GeoIP2 Precision Insights: is_anonymous(), is_anonymous_vpn(),
  is_hosting_provider(), is_public_proxy(), and is_tor_exit_node().
- Documented $reader->enterprise()
- Updated usage of Data::Validate::IP so that we don't do separate IPv4 and
  IPv6 checks. This provides a very small performance gain.
- Switched from List::MoreUtils to List::SomeUtils. Fixes #52.


2.003005 2017-05-08

- Added support for the GeoLite2 ASN database.


2.003004 2017-03-23

- Replace use of namespace::autoclean with namespace::clean.
  namespace::autoclean appears to be causing occasional load-order compilation
  failures when the GeoIP2 Moo classes are inflated into Moose classes.


2.003003 2017-01-04

[ ENHANCEMENTS ]

- The enterprise() method on GeoIP2::Database::Reader now supports GeoIP2
  Precision Enterprise databases.

[ OTHER ]

- namespace::autoclean is now used to remove imported functions from class
  namespaces.


2.003002 2016-11-21

[ BUGFIXES ]

- Exceptions are now correctly thrown for responses containing JSON but no code
  or error keys.

[ OTHER ]

- Updated documentation to clarify what the accuracy radius is and that it
  is now included in City.


2.003001 2016-04-25

- In 2.003000, Code::TidyAll::Plugin::SortLines::Naturally was mistakenly
  included as a test dependency. It is now a develop dependency. GitHub #35.
- Fixed test failures due to comparison of floating point numbers. GitHub #34.


2.003000 2016-04-20

- Added support for the GeoIP2 Enterprise database.


2.002000 2015-06-29

- Added support for 'average_income' and 'population_density' in the
  Insights location record

- Minor optimizations in the type checks

- The is_anonymous_proxy() and is_satellite_provider() attributes on
  GeoIP2::Record::Traits have been deprecated. Please use our GeoIP2 Anonymous
  IP database to determine whether an IP address is used by an anonymizing
  service.


2.001003 2015-04-15

- Relaxed all database checks to accept more databases. This change has no
  effect for customers using currently released MaxMind databases.

- Replaced use of say in synopsis code so as to make it clear that this module
  works with Perl 5.8. Reported by Kevin Falcone. GitHub #12.


2.001002 2014-12-08

- Forgot to include Changes for 2.001001.


2.001001 2014-12-08

- Fixed a SYNOPSIS error in GeoIP2::Database::Reader. GitHub #11.


2.001000 2014-10-28

- Added support for the GeoIP2 Anonymous IP database. The
  GeoIP2::Database::Reader class now has an anonymous_ip() method which
  returns a GeoIP2::Model::AnonymousIP object.


2.000001 2014-09-22

- Removed beta notice from documentation.


2.000000 2014-09-22

- First production release.


0.050001 2014-09-17

- Relaxed city() database check to accept more databases. This change has no
  effect for customers using currently released MaxMind databases.


0.050000 2014-09-15

[BACKWARDS INCOMPATIBILITIES]

- The deprecated city_isp_org() and omni() methods have been removed. Also,
  the insights() on GeoIP2::Database::Reader has been removed.
- When looking up a private IP address in GeoIP2::Database::Reader, a
  GeoIP2::Error::Generic exception is now thrown by that class rather than
  relying on MaxMind::DB::Reader to throw an exception.
- The GeoIP2::Database::Reader lookup methods (e.g., city(), isp()) now throw
  a GeoIP2::Error::Generic if they are used with a database that does not
  match the method. In particular, doing a city() lookup on a GeoIP2 Country
  database will result in an exception, and vice versa.

[FEATURES]

- A metadata() method has been added to the GeoIP2::Database::Reader class.
  This returns a MaxMind::DB::Metadata object with information about the
  database.


0.040005 2014-07-22

- No changes. Re-release to fix PAUSE permission issues.


0.040004 2014-07-22

- The web service client API has been updated for the v2.1 release of the web
  service. In particular, the city_isp_org() and omni() methods on
  GeoIP2::WebService::Client should be considered deprecated. The city()
  method now provides all of the data formerly provided by city_isp_org(), and
  the omni() method has been replaced by the insights method. Note that the
  city_isp_org() and omni() methods may start warning when used in the future.
- Support was added for the GeoIP2 Connection Type, Domain, and ISP databases.


0.040003 2014-05-28

- Explicitly import the B module when we use it. This didn't break on our Perl
  but broke elsewhere. Reported by Wes Young. GitHub PR #3.


0.040002 2014-02-03

- Any webservice response with boolean values in the response caused a type
  error to be thrown.


0.040001 2014-01-14

- Updated the docs to mention the MaxMind::DB::Reader::XS module.

- Renamed the languages constructor parameter to locales for both the Client
  and Reader classes.


0.040000 2013-07-16

- Added the GeoIP2::Database::Reader class. This provides an API for looking
  up data in a GeoIP2 database, as opposed to making a web service call.

- Switched the version number scheme to X.YYYZZZ.

- If an IP address is not found, whether for a web service call or in a
  downloaded database, the code always throws a
  GeoIP2::Error::IPAddressNotFound exception.


0.0302   2013-06-20

- Make the license section of the docs match the LICENSE file in the repo. We
  meant to use "same as Perl 5" everywhere.


0.0301   2013-06-10

- The first official beta release of this API.


0.0300   2013-05-23

- Allow IPv6 addresses to be passed to the GeoIP2::WebService::Client class's
  methods.

- We now support more languages. The new languages are de, es, fr, and pt-BR.

- Postal code data is now returned as a separate top-level object. We now
  provide a GeoIP2::Record::Postal class for this data.

- The REST API returns a record with data about your account. There is a new
  GeoIP2::Record::MaxMind class for this data.

- Fixed bug in the City & CityISPOrg classes. Their subdivions() method was
  not working.

- Type constraint errors are now thrown as GeoIP2::Type::Error objects.


0.0200   2013-05-13

- Replaced all uses of Webservice with WebService.


0.0100   2013-05-13

- First release upon an unsuspecting world.
