View Source Changelog
v2-0-0-2022-07-26
v2.0.0 (2022-07-26)
Enhancements
- Calling
RefInspector.parse/1
with an empty referer (""
ornil
) will now return the input as is in the result struct instead of previously returningnil
for both inputs
- Calling
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
- Minimum required Elixir version is now
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
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
andRefInspector.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
toRefInspector.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
- Configuring
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
- Several functions are now declared internal and will result in a
v1-0-0-2018-11-24
v1.0.0 (2018-11-24)
Ownership has been transferred to the
elixir-inspector
organisationEnhancements
- Documentation is now available inline (
@moduledoc
, ...) with theREADME.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
- Documentation is now available inline (
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 anatom
. The only exceptions are:unknown
and:internal
referers - Minimum required Elixir version is now
~> 1.5
- Support for
{:system, var}
configuration has been removed
- Internal parser process pooling has been removed. If you require pooling you need to manually wrap
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 aLogger.info/1
message and will stop working in a future release
- Accessing the system environment by configuring
Backwards incompatible changes
- The mix task alias
ref_inspector.yaml.download
has been removed - The reload alias
RefInspector.reload_databases/0
has been removed
- The mix task alias
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
- Download task name has been shortened to
Deprecations
- The reload method
RefInspector.reload_databases/0
has been renamed toRefInspector.reload/0
- The mix task
ref_inspector.yaml.download
has been renamed. The alias in place will be removed in a future version
- The reload method
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)
- All databases can be reloaded (asynchronously) using
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
- Support for
v0-16-0-2017-09-24
v0.16.0 (2017-09-24)
- Backwards incompatible changes
- Minimum required Elixir version is now
~> 1.3
- Minimum required Elixir version is now
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 (
""
ornil
) 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
- Empty referers (
Bug fixes
- Properly handles
nil
values passed to the lookup
- Properly handles
Backwards incompatible changes
- Support for single
:remote_url
download configuration has been removed
- Support for single
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
- Configuring a single
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
- Configuring a single
Backwards incompatible changes
- Support for loading a database file at runtime using
RefInspector.load/1
has been removed
- Support for loading a database file at runtime using
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 ofmix
. 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
- Downloads are now done using
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
- Domains to be detected as
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()
- Pool configuration is now expected to be a
v0-6-0-2015-04-03
v0.6.0 (2015-04-03)
- Initial Release