Skip to content

Releases: elixir-inspector/ref_inspector

v2.0.0

26 Jul 15:18
b2a6050
Compare
Choose a tag to compare
  • 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

06 May 17:27
2815f53
Compare
Choose a tag to compare
  • Bug fixes
    • Default remote url for the referer parser database has been changed after upstream changes (#3)

v1.3.0

27 Nov 18:25
d404ddd
Compare
Choose a tag to compare
  • 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

03 Aug 11:54
b09c2f8
Compare
Choose a tag to compare
  • 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

03 Jul 18:18
fec5723
Compare
Choose a tag to compare
  • 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

24 Nov 11:04
d6bdaf8
Compare
Choose a tag to compare
  • 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

22 Jul 12:17
022846c
Compare
Choose a tag to compare
  • 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

13 Feb 16:55
e0e69be
Compare
Choose a tag to compare
  • 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

31 Dec 13:24
86f7a0c
Compare
Choose a tag to compare
  • 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

15 Nov 16:10
f1f172d
Compare
Choose a tag to compare
  • 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