Skip to content

Releases: elixir-geolix/geolix

v2.0.0

20 Sep 11:49
dcb0789
Compare
Choose a tag to compare
  • Enhancements

    • Adapters can now utilize a :delayed response from the Geolix.Adapter.load_database/1 callback combined with Geolix.Database.Loader.set_loaded/1 for a lazy initialization. The database will not be used for lookups until set to the :loaded state
    • Database worker supervision is now done using a DynamicSupervisor
    • Unloading a database can now be done by passing the complete database configuration instead of only the :id
  • Bug fixes

    • Databases loaded without an adapter configuration can now be properly unloaded to prevent repeated error messages from Geolix.reload_databases/0
    • The optional metadata/1 callback for adapters is now properly treated as optional
  • Backwards incompatible changes

    • Internal adapter process pooling has been removed
    • Minimum required Elixir version is now ~> 1.7

v1.1.0

04 May 17:00
86acbd6
Compare
Choose a tag to compare
  • Enhancements
    • Configuring startup_sync: true allows you to ensure a synchronous database load is done during startup. This may have unwanted consequences when your loading process takes longer than around 5 seconds (default startup timeout), e.g. when loading a database from a remote location
    • Usage of deprecated Supervisor functions has been removed (#30)

v1.0.0

08 Sep 14:15
6e25a0b
Compare
Choose a tag to compare

The adapter Geolix.Adapter.MMDB2 has been extracted a separate repository. You should be able to upgrade to the external adapter by changing your project's dependencies from :geolix to :geolix_adapter_mmdb2 with an appropriate version requirement.

  • Enhancements

    • Database metadata is now available via Geolix.metadata/0,1 (#26)
  • Backwards incompatible changes

    • The database workers function of an adapter will now receive the full database configuration to be configured as the sole parameter
    • The lookup function of an adapter will now receive the full database configuration to be used for the lookup as a third parameter

v0.18.0

17 Mar 10:55
8baf978
Compare
Choose a tag to compare
  • Enhancements

    • Initializer modules can be defined with additional arguments by using {mod, fun, args}
  • Backwards incompatible changes

    • Minimum required elixir version is now ~> 1.5

v0.17.0

02 Sep 10:12
ee0804d
Compare
Choose a tag to compare
  • Enhancements

    • Storage of the internal database loader state has been migrated
      to a named ets table in order to allow reading from databases while
      the loading cycle has not yet been completed
      (#20).
    • The :is_in_european_union information has been added to the Country
      and RepresentedCountry result structs
  • Backwards incompatible changes

    • Adapters are now responsible to return the complete (and final) result
      of the lookup. No additional modifications will be made. Several module
      namespaces have been renamed for this:
      • Geolix.Model -> Geolix.Adapter.MMDB2.Model
      • Geolix.Record -> Geolix.Adapter.MMDB2.Record
      • Geolix.Result -> Geolix.Adapter.MMDB2.Result

v0.16.0

21 Feb 08:38
17aef1d
Compare
Choose a tag to compare
  • Enhancements
    • Configuration can be done on supervisor (re-) start by setting a
      { mod, fun } tuple for the config key :init. This method will be
      called without arguments
    • Every configured database can define a { mod, fun } tuple for the config
      key :init. This method, called upon database supervisor (re-) start,
      receives the current database configuration and is expected to return the
      full configuration used for starting the individual database
    • Unloading a database now calls unload_database/1 of the unloaded
      database adapter passing the current configuration and expecting :ok as
      a result

v0.15.1

21 Feb 08:37
f423d7b
Compare
Choose a tag to compare
  • Bug fixes
    • The MMDB2 decoding library is now properly included in releases

v0.15.0

25 Nov 13:50
ef13ea2
Compare
Choose a tag to compare
  • Enhancements

    • The MMDB2 file format decoding logic has been extracted to the new :mmdb2_decoder library
  • Backwards incompatible changes

    • Minimum required elixir version is now "~> 1.3"

v0.14.0

20 Jun 17:23
48808c6
Compare
Choose a tag to compare
  • Enhancements

    • Configuration errors are logged and/or returned
    • Databases can be unloaded. This is done lazy so while still being
      in memory it won't be reloaded or used for lookups
    • Databases in tarball format (.tar or .tar.gz) are now supported
      (#16)
    • Errors are now always returned in a tuple format ({ :error, type })
    • Errors occurring while initially loading databases
      (or when calling Geolix.reload_databases/0) are now sent to
      Logger.error (#16)
    • "GeoLite2-ASN" databases return structs instead of plain maps
    • System environment configuration can set an optional default value
      to be used if the environment variable is unset
    • When an error occurs during database load the database will be
      excluded from the lookup process
  • Backwards incompatible changes

    • Previous { :error, String.t } return values have been removed in favor
      of tuples and Logger.error/1

v0.13.0

12 Apr 15:10
052c427
Compare
Choose a tag to compare
  • Backwards incompatible changes
    • Minimum required elixir version is now "~> 1.2"
    • Minimum required erlang version is now "~> 18.0"