{"action":"published","release":{"url":"https://api.github.com/repos/eiiches/jackson-jq/releases/11994636","assets_url":"https://api.github.com/repos/eiiches/jackson-jq/releases/11994636/assets","upload_url":"https://uploads.github.com/repos/eiiches/jackson-jq/releases/11994636/assets{?name,label}","html_url":"https://github.com/eiiches/jackson-jq/releases/tag/jackson-jq-parent-0.0.9","id":11994636,"node_id":"MDc6UmVsZWFzZTExOTk0NjM2","tag_name":"jackson-jq-parent-0.0.9","target_commitish":"develop","name":"jackson-jq 0.0.9","draft":false,"author":{"login":"eiiches","id":230747,"node_id":"MDQ6VXNlcjIzMDc0Nw==","avatar_url":"https://avatars3.githubusercontent.com/u/230747?v=4","gravatar_id":"","url":"https://api.github.com/users/eiiches","html_url":"https://github.com/eiiches","followers_url":"https://api.github.com/users/eiiches/followers","following_url":"https://api.github.com/users/eiiches/following{/other_user}","gists_url":"https://api.github.com/users/eiiches/gists{/gist_id}","starred_url":"https://api.github.com/users/eiiches/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eiiches/subscriptions","organizations_url":"https://api.github.com/users/eiiches/orgs","repos_url":"https://api.github.com/users/eiiches/repos","events_url":"https://api.github.com/users/eiiches/events{/privacy}","received_events_url":"https://api.github.com/users/eiiches/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2018-07-17T09:50:47Z","published_at":"2018-07-18T20:09:19Z","assets":[],"tarball_url":"https://api.github.com/repos/eiiches/jackson-jq/tarball/jackson-jq-parent-0.0.9","zipball_url":"https://api.github.com/repos/eiiches/jackson-jq/zipball/jackson-jq-parent-0.0.9","body":"This release contains some incompatible changes. Please take a look at the [Incompatible changes](#incompatible-changes) section before upgrading.\r\n\r\n## Improvements\r\n\r\n- `join/1` is re-implemented in Java to achieve O(n) time complexity. Previously, it was implemented in jq using `reduce` and `+` operator, which incurred O(n^2) copy operations and quickly became prohibitive for large inputs.\r\n\r\n## Incompatible changes\r\n\r\n- It is now considered an error to include spaces between `.` and an identifier in field accessors (e.g. `. foo`). While the new behavior is in line with jq, this is a backward incompatible change for jackson-jq users. (#21, #20)\r\n\r\n## API deprecations\r\n\r\n- `JsonQuery.apply(...)` without explicit `Scope` parameter is now deprecated. Please use `JsonQuery.apply(scope, in)` instead.\r\n- `Scope(parent)` constructor is now deprecated. Please use `Scope.newChildScope(parent)` instead.\r\n- `Scope()` constructor is deprecated (since 0.0.8). Please use `Scope.newEmptyScope()` instead.\r\n\r\nWith these deprecations considered, minimal usage becomes a bit lengthy:\r\n```java\r\n// rootScope should be reused as possible because loadFunctions() is a heavy operation.\r\n// After this initial setup, rootScope should not be modified (via setValue(), etc.) so that\r\n// it can be shared across threads.\r\nfinal Scope rootScope = Scope.newEmptyScope();\r\nrootScope.loadFunctions(Scope.class.getClassLoader());\r\n\r\n// If one needs to pass variables to jq, a lightweight child scope should be created per\r\n// apply() invocation or at least per thread.\r\nfinal Scope childScope = Scope.newChildScope(rootScope);\r\nchildScope.setValue(\"param\", IntNode.valueOf(42));\r\n\r\n// compile() a query is a relatively heavy operation and the results should be reused as possible.\r\n// q is immutable and thread-safe.\r\nfinal JsonQuery q = JsonQuery.compile(\"$param * 2\");\r\n\r\n// apply() with an explicit scope\r\nq.apply(childScope, in) // => [84]\r\n```\r\n\r\n## Bug fixes\r\n\r\n- Default `Scope.rootScope()` is used inconsistently when calling `loadFunctions()` on alternative scopes (#17)"}}
{"actor":{"display_login":"eiiches"}}