{"action":"created","issue":{"url":"https://api.github.com/repos/talentdeficit/jsx/issues/89","labels_url":"https://api.github.com/repos/talentdeficit/jsx/issues/89/labels{/name}","comments_url":"https://api.github.com/repos/talentdeficit/jsx/issues/89/comments","events_url":"https://api.github.com/repos/talentdeficit/jsx/issues/89/events","html_url":"https://github.com/talentdeficit/jsx/issues/89","id":107577641,"number":89,"title":"mix.exs d: :maps_always is not compatible with erlcloud","user":{"login":"jannekai","id":320559,"avatar_url":"https://avatars.githubusercontent.com/u/320559?v=3","gravatar_id":"","url":"https://api.github.com/users/jannekai","html_url":"https://github.com/jannekai","followers_url":"https://api.github.com/users/jannekai/followers","following_url":"https://api.github.com/users/jannekai/following{/other_user}","gists_url":"https://api.github.com/users/jannekai/gists{/gist_id}","starred_url":"https://api.github.com/users/jannekai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jannekai/subscriptions","organizations_url":"https://api.github.com/users/jannekai/orgs","repos_url":"https://api.github.com/users/jannekai/repos","events_url":"https://api.github.com/users/jannekai/events{/privacy}","received_events_url":"https://api.github.com/users/jannekai/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/talentdeficit/jsx/labels/bug","name":"bug","color":"e10c02"}],"state":"open","locked":false,"assignee":{"login":"talentdeficit","id":4431,"avatar_url":"https://avatars.githubusercontent.com/u/4431?v=3","gravatar_id":"","url":"https://api.github.com/users/talentdeficit","html_url":"https://github.com/talentdeficit","followers_url":"https://api.github.com/users/talentdeficit/followers","following_url":"https://api.github.com/users/talentdeficit/following{/other_user}","gists_url":"https://api.github.com/users/talentdeficit/gists{/gist_id}","starred_url":"https://api.github.com/users/talentdeficit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/talentdeficit/subscriptions","organizations_url":"https://api.github.com/users/talentdeficit/orgs","repos_url":"https://api.github.com/users/talentdeficit/repos","events_url":"https://api.github.com/users/talentdeficit/events{/privacy}","received_events_url":"https://api.github.com/users/talentdeficit/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/talentdeficit/jsx/milestones/1","html_url":"https://github.com/talentdeficit/jsx/milestones/2.8","labels_url":"https://api.github.com/repos/talentdeficit/jsx/milestones/1/labels","id":1317761,"number":1,"title":"2.8","description":null,"creator":{"login":"talentdeficit","id":4431,"avatar_url":"https://avatars.githubusercontent.com/u/4431?v=3","gravatar_id":"","url":"https://api.github.com/users/talentdeficit","html_url":"https://github.com/talentdeficit","followers_url":"https://api.github.com/users/talentdeficit/followers","following_url":"https://api.github.com/users/talentdeficit/following{/other_user}","gists_url":"https://api.github.com/users/talentdeficit/gists{/gist_id}","starred_url":"https://api.github.com/users/talentdeficit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/talentdeficit/subscriptions","organizations_url":"https://api.github.com/users/talentdeficit/orgs","repos_url":"https://api.github.com/users/talentdeficit/repos","events_url":"https://api.github.com/users/talentdeficit/events{/privacy}","received_events_url":"https://api.github.com/users/talentdeficit/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2015-09-22T04:50:44Z","updated_at":"2015-09-22T04:51:31Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2015-09-21T19:04:41Z","updated_at":"2015-10-09T06:08:10Z","closed_at":null,"body":"I'm using erlcloud to access DynamoDB in my Elixir application, which is using jsx to encode/decode JSON queries and and responses. When upgrading to latest jsx version, I run into the following error:\r\n\r\n```elixir\r\n** (FunctionClauseError) no function clause matching in :lists.foldl/3\r\n(stdlib) lists.erl:1261: :lists.foldl(#Function<5.48980219/2 in :erlcloud_ddb2.undynamize_record/3>, {:ddb2_q, :undefined, :undefined, :undefined, :undefined, :undefined}, %{\"Count\" => 0, \"Items\" => [], \"ScannedCount\" => 0})\r\n(erlcloud) src/erlcloud_ddb2.erl:875: :erlcloud_ddb2.out/3\r\n(erlcloud) src/erlcloud_ddb2.erl:887: :erlcloud_ddb2.out/5\r\n(my_test) lib/my_test/query.ex:17: MyTest.query/1\r\n```\r\n\r\nI managed to track down the root cause of the problem into the mix.exs of jsx project defining erlang \"d: :maps_always\", which seems to be not compatible with erlcloud. In comparison, the rebar.config file doesn't define this compile time option, instead it is commented out by default. Therefore testing and compiling with a clone of erlcloud works with the latest version without problems.\r\n\r\nMy solution was to fork the library and remove the d: :maps_always setting from mix.exs file, after which the queries started working again. However, I would like to keep using the hex package instead of my custom fork, so I was wondering is there any other way to override the erlang compile settings except through forking the project?"},"comment":{"url":"https://api.github.com/repos/talentdeficit/jsx/issues/comments/146765111","html_url":"https://github.com/talentdeficit/jsx/issues/89#issuecomment-146765111","issue_url":"https://api.github.com/repos/talentdeficit/jsx/issues/89","id":146765111,"user":{"login":"talentdeficit","id":4431,"avatar_url":"https://avatars.githubusercontent.com/u/4431?v=3","gravatar_id":"","url":"https://api.github.com/users/talentdeficit","html_url":"https://github.com/talentdeficit","followers_url":"https://api.github.com/users/talentdeficit/followers","following_url":"https://api.github.com/users/talentdeficit/following{/other_user}","gists_url":"https://api.github.com/users/talentdeficit/gists{/gist_id}","starred_url":"https://api.github.com/users/talentdeficit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/talentdeficit/subscriptions","organizations_url":"https://api.github.com/users/talentdeficit/orgs","repos_url":"https://api.github.com/users/talentdeficit/repos","events_url":"https://api.github.com/users/talentdeficit/events{/privacy}","received_events_url":"https://api.github.com/users/talentdeficit/received_events","type":"User","site_admin":false},"created_at":"2015-10-09T06:08:10Z","updated_at":"2015-10-09T06:08:10Z","body":"finally found time to address this. maps should now never be returned unless you use the `[return_maps]` option or you compile with the env var `JSX_FORCE_MAPS` defined. let me know if this fixes your issue"}}