All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Upgrading from
0.0.x? Followguides/upgrade-to-0.1.0.md— every breaking change is a mechanical find/replace.
-
Breaking: HTTP client switched from
:httpoisonto:req(~> 0.5). -
Breaking: Successful responses are now
%Req.Response{}with:status(not:status_code) and an auto-decoded:body(Elixir term, not a raw JSON binary). Callers should drop any manualJason.decode(response.body). -
Breaking:
Intercom.Client.auth/2now returns Req-native[auth: {:basic, "app_id:api_key"}]. Drop the previoushackney:wrap at call sites:# Before Intercom.Client.get!("/users", [], hackney: Intercom.Client.auth(token, "")) # After Intercom.Client.get!("/users", [], Intercom.Client.auth(token, ""))
-
Intercom.Client.post/4,put/4, andpatch/4now accept maps/structs as the body and auto-encode them as JSON via Req's:jsonoption. Pre-encoded binaries are still sent verbatim, so legacy callers continue to work during migration. -
Intercom.to_javascript_object/1now emits map properties in alphabetical key order so generated snippets are byte-stable across runs and BEAM versions. Previously the order followed Erlang's map iteration, which is implementation-defined for small maps. -
Widened the Elixir version requirement from
~> 1.14.4to~> 1.14. -
config/config.exsmigrated from the deprecateduse Mix.Configtoimport Config. -
mix.exspackage/0links:andfiles:updated to point at the maintained fork (finger-ink/intercom-elixir) and to shipCHANGELOG*andguides/with the Hex package.
CHANGELOG.md(this file).guides/upgrade-to-0.1.0.md— step-by-step consumer migration.test/intercom_client_test.exscoveringIntercom.ClientGET/POST flows (including nested event metadata, tag user arrays, and pre-encoded binary bodies), default headers, base URL, basic auth viaauth/2, and transport errors usingReq.Teststubs.:plugas a:test-only dependency to supportReq.Testplug-style stubbing.
- Breaking:
:httpoison(and its transitive:hackneydependency). - Breaking:
Intercom.Client.start/0,Intercom.Client.process_url/1, andIntercom.Client.process_request_headers/1— these wereHTTPoison.Basecallbacks/shims. Base URL prepending and JSONAccept/Content-Typeheaders are still applied automatically inside the client wrappers; only the public symbols are gone.
Last release on the HTTPoison-backed line. See git history for prior changes.