All Versions
Latest Version
Avg Release Cycle
121 days
Latest Release
1365 days ago

Changelog History
Page 1

  • v2.0.0 Changes

    September 20, 2020
    • ✨ 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 Changes

    May 04, 2020
    • ✨ 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 Changes

    September 08, 2019

    ⬆️ 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 Changes

    March 17, 2019

    ✨ 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 Changes

    September 02, 2018
    • ✨ 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 Changes

    February 21, 2018
    • ✨ 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 Changes

    December 04, 2017
    • 🐛 Bug fixes
      • The MMDB2 decoding library is now properly included in releases
  • v0.15.0 Changes

    November 25, 2017

    ✨ 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 Changes

    June 20, 2017

    ✨ 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
    • 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 Changes

    April 12, 2017
    • Backwards incompatible changes
      • Minimum required elixir version is now ~> 1.2
      • Minimum required erlang version is now ~> 18.0