View Source Changelog

v2-0-0-2022-07-26

v2.0.0 (2022-07-26)

  • Enhancements

    • Calling RefInspector.parse/1 with an empty referer ("" or nil) will now return the input as is in the result struct instead of previously returning nil for both inputs
  • Bug fixes

    • The mix download task should no longer start unnecessary applications
  • Backwards incompatible changes

    • Minimum required Elixir version is now ~> 1.9
    • Several deprecated functions have been removed completely:
      • RefInspector.Downloader.path_local/1
      • RefInspector.Downloader.path_remote/1
      • RefInspector.Downloader.read_remote/1
      • RefInspector.Downloader.README.path_local/0
      • RefInspector.Downloader.README.path_priv/0
    • Startup is now done with a blocking database load by default

v1-3-1-2020-05-06

v1.3.1 (2020-05-06)

  • Bug fixes
    • Default remote URL for the referer parser database has been changed after upstream changes (#3)

v1-3-0-2019-11-27

v1.3.0 (2019-11-27)

  • Bug fixes
    • Hosts are now matched more strict to match expectations (#2)
      • *.host will still match host
      • *host (without a dot) will no longer match host
    • Paths are now matched more strict to match expectations (#2)
      • /some/folder will still match /some
      • /somefolder (without a slash) will no longer match /some

v1-2-0-2019-08-03

v1.2.0 (2019-08-03)

  • Enhancements

    • Warnings when starting without a database available can be silenced
  • Bug fixes

    • The mix download task now works properly with initializer modules

v1-1-0-2019-07-03

v1.1.0 (2019-07-03)

  • Enhancements

    • Configuring startup_sync: true allows you to ensure a synchronous database load is attempted before allowing to parse referers
    • Database entries are now stored in a single named table instead of using an intermediate reference table
    • Default configuration entries for files and urls are available through RefInspector.Config.default_files/0 and RefInspector.Config.default_urls/0
    • Output of mix task ref_inspector.download can be prevented by passing --quiet upon invocation. This does NOT imply --force and will still ask for confirmation
    • Passing async: false to RefInspector.reload/1 allows you to block your calling process until the reload has finished
    • The library used to download the database files can be changed by configuring a module implementing the RefInspector.Downloader.Adapter behaviour
    • The library used to read YAML files can be changed by using the :yaml_file_reader configuration
  • Deprecations

    • Several functions are now declared internal and will result in a Logger.info/1 message when called until they will be eventually removed:
      • RefInspector.Downloader.path_local/1
      • RefInspector.Downloader.path_remote/1
      • RefInspector.Downloader.read_remote/1
      • RefInspector.Downloader.README.path_local/0
      • RefInspector.Downloader.README.path_priv/0

v1-0-0-2018-11-24

v1.0.0 (2018-11-24)

  • Ownership has been transferred to the elixir-inspector organisation

  • Enhancements

    • Documentation is now available inline (@moduledoc, ...) with the README.md file targeting the repository (development) instead of releases
    • Downloading the databases ensures hackney is started to allow calling mix run --no-start -e "RefInspector.Downloader.download()"
    • Initializer modules can be defined with additional arguments by using {mod, fun, args}
    • Parsing can now be performed on URI.t() referers
    • The default database path has been set to Application.app_dir(:ref_inspector, "priv")
    • The download mix task will now exit with code 1 if it aborts due to missing configuration
  • Backwards incompatible changes

    • Internal parser process pooling has been removed. If you require pooling you need to manually wrap RefInspector.parse/1
    • Medium information in the result struct is now returned as a String.t() instead of an atom. The only exceptions are :unknown and :internal referers
    • Minimum required Elixir version is now ~> 1.5
    • Support for {:system, var} configuration has been removed

v0-20-0-2018-07-22

v0.20.0 (2018-07-22)

  • Enhancements

    • Parsing speed has been improved and made more independent of database size
    • The configurable :init method will now be automatically executed when running the mix download task without manually ensuring the application is started
  • Deprecations

    • Accessing the system environment by configuring {:system, var} or {:system, var, default} will now result in a Logger.info/1 message and will stop working in a future release
  • Backwards incompatible changes

    • The mix task alias ref_inspector.yaml.download has been removed
    • The reload alias RefInspector.reload_databases/0 has been removed

v0-19-0-2018-02-13

v0.19.0 (2018-02-13)

  • Enhancements
    • Finding the data table is now done via a named lookup table instead of calling the database state server
    • Old data tables are deleted with a configurable delay after reloading to avoid race conditions (and the resulting empty lookup responses)
    • If you need to check if the database is loaded (i.e. "no longer empty") you can use RefInspector.ready?/0

v0-18-0-2017-12-31

v0.18.0 (2017-12-31)

  • Enhancements

    • Download task name has been shortened to ref_inspector.download
    • Reloading the database if part of the configuration is missing or broken (database path / database files) will issue a warning while resuming operation with an empty database
  • Deprecations

    • The reload method RefInspector.reload_databases/0 has been renamed to RefInspector.reload/0
    • The mix task ref_inspector.yaml.download has been renamed. The alias in place will be removed in a future version
  • Bug fixes

    • ETS tables are now properly cleaned after reload

v0-17-0-2017-11-15

v0.17.0 (2017-11-15)

  • Enhancements

    • All databases can be reloaded (asynchronously) using RefInspector.reload_databases/0
    • 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
    • When using the mix download task with a default remote configuration an information README file is placed next to the downloaded file(s)
  • Soft deprecations (no warnings)

    • Support for {:system, "ENV_VARIABLE"} configuration has been removed from the documentation. It will eventually be removed completely after a proper deprecation phase

v0-16-0-2017-09-24

v0.16.0 (2017-09-24)

  • Backwards incompatible changes
    • Minimum required Elixir version is now ~> 1.3

v0-15-0-2017-09-12

v0.15.0 (2017-09-12)

  • Enhancements
    • Supervision can now be done without starting the application
    • The database downloader has been promoted to a directly usable module

v0-14-0-2017-05-31

v0.14.0 (2017-05-31)

  • Enhancements

    • Empty referers ("" or nil) now return a result without performing an actual lookup
    • System environment configuration can set an optional default value to be used if the environment variable is unset
  • Bug fixes

    • Properly handles nil values passed to the lookup
  • Backwards incompatible changes

    • Support for single :remote_url download configuration has been removed

v0-13-0-2016-11-19

v0.13.0 (2016-11-19)

  • Enhancements

    • Downloaded files can be automatically stored under a custom filename differing from the URL basename
    • Multiple files can be configured for download
  • Deprecations

    • Configuring a single :remote_url for download has been deprecated

v0-12-0-2016-09-22

v0.12.0 (2016-09-22)

  • Enhancements

    • Multiple databases can be configured to load during startup. Lookups are done in order until a match is found
  • Backwards incompatible changes

    • Downloaded databases are stored under the basename of the remote file instead of the filename of the "first configured database"
    • Support for :yaml as database configuration has been removed

v0-11-0-2016-09-07

v0.11.0 (2016-09-07)

  • Enhancements

    • Remote URL of database file is now configurable
  • Deprecations

    • Configuring a single :yaml as the database has been deprecated
  • Backwards incompatible changes

    • Support for loading a database file at runtime using RefInspector.load/1 has been removed

v0-10-0-2016-08-19

v0.10.0 (2016-08-19)

  • Enhancements

    • Database download is done using hackney in order to prepare an upcoming auto-update feature
    • If the initial load of the database (during process initialisation) fails a message will be sent through Logger.info/1
  • Backwards incompatible changes

    • Downloads are now done using :hackney instead of mix. This may force you to manually reconfigure the client
    • Minimum required Elixir version is now ~> 1.2
    • Minimum required Erlang version is now ~> 18.0

v0-9-0-2016-03-30

v0.9.0 (2016-03-30)

  • Enhancements

    • Database is reloaded if the storage process gets restarted
    • Path can be configured by accessing the system environment
    • Referer database can be reloaded using RefInspector.load/1
  • Backwards incompatible changes

    • Reloading the database drops previously loaded (unconfigured) entries

v0-8-0-2015-07-18

v0.8.0 (2015-07-18)

  • Enhancements
    • Domains to be detected as :internal can be configured

v0-7-0-2015-06-01

v0.7.0 (2015-06-01)

  • Enhancements

    • Dependencies not used in production builds are marked as optional
    • Displays expanded download path for mix ref_inspector.yaml.download
    • Verification script now automatically downloads database file
    • Worker pool options are no longer defined at compile time
  • Backwards incompatible changes

    • Pool configuration is now expected to be a Keyword.t()

v0-6-0-2015-04-03

v0.6.0 (2015-04-03)

  • Initial Release