{"action":"published","release":{"url":"https://api.github.com/repos/material-motion/runtime-objc/releases/4680022","assets_url":"https://api.github.com/repos/material-motion/runtime-objc/releases/4680022/assets","upload_url":"https://uploads.github.com/repos/material-motion/runtime-objc/releases/4680022/assets{?name,label}","html_url":"https://github.com/material-motion/runtime-objc/releases/tag/v6.0.0","id":4680022,"tag_name":"v6.0.0","target_commitish":"stable","name":"v6.0.0","draft":false,"author":{"login":"jverkoey","id":45670,"avatar_url":"https://avatars.githubusercontent.com/u/45670?v=3","gravatar_id":"","url":"https://api.github.com/users/jverkoey","html_url":"https://github.com/jverkoey","followers_url":"https://api.github.com/users/jverkoey/followers","following_url":"https://api.github.com/users/jverkoey/following{/other_user}","gists_url":"https://api.github.com/users/jverkoey/gists{/gist_id}","starred_url":"https://api.github.com/users/jverkoey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jverkoey/subscriptions","organizations_url":"https://api.github.com/users/jverkoey/orgs","repos_url":"https://api.github.com/users/jverkoey/repos","events_url":"https://api.github.com/users/jverkoey/events{/privacy}","received_events_url":"https://api.github.com/users/jverkoey/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-11-16T20:39:28Z","published_at":"2016-11-16T20:41:12Z","assets":[],"tarball_url":"https://api.github.com/repos/material-motion/runtime-objc/tarball/v6.0.0","zipball_url":"https://api.github.com/repos/material-motion/runtime-objc/zipball/v6.0.0","body":"## Breaking changes\r\n\r\n- PlanPerforming has been removed.\r\n- The order of Tracing's `didCreatePerformer:for:` and `didAddPlan:to:` events have been swapped.\r\n  `didCreatePerformer:for:` is now invoked first.\r\n\r\n## New features\r\n\r\n### Timeline\r\n\r\nTimeline and TimelineScrubber provide an API for controlling time-based animations using arbitrary\r\ninputs.\r\n\r\n```\r\nlet timeline = Timeline()\r\n\r\n// While a scrubber is attached, all animations associated with the timeline are expected to be\r\n// paused.\r\ntimeline.scrubber = TimelineScrubber()\r\n\r\n// Changing the scrubber's timeOffset is expected to propagate to all associated animations.\r\ntimeline.scrubber?.timeOffset = 0.3\r\n```\r\n\r\n### ConsoleLoggingTracer\r\n\r\nPlan values are now dumped to the console. Example output:\r\n\r\n```\r\ndidAddPlan to target: <CALayer: 0x60800022ce80>\r\nPlan: MDMTween\r\n  let keyPath: NSString = transform.rotation.z\r\n  let duration: @ = 0.15\r\n  let delay: @ = 0\r\n  let values: NSArray = (\r\n    0,\r\n    \"3.141592653589793\"\r\n)\r\n  let keyPositions: NSArray = (null)\r\n  let timingFunctions: NSArray = (null)\r\n  let timeline: MDMTimeline = <MDMTimeline: 0x600000223240>\r\n```\r\n\r\n## Source changes\r\n\r\n* [Remove reference to nonexisting MDMTimelinePlan.](https://github.com/material-motion/runtime-objc/commit/2713a58b5a1c07953342feb17f7d2c0ad97989e3) (Jeff Verkoeyen)\r\n* [Throw assertion when attempting to begin a timeline that has already begun.](https://github.com/material-motion/runtime-objc/commit/04d8ecf74d5ccbb5131ceab99cb4e50ed5c0dde9) (Jeff Verkoeyen)\r\n* [Remove let from logging output.](https://github.com/material-motion/runtime-objc/commit/b4ea46819fc9e5cfd7cdc57fd4eccd9f4fda5e83) (Jeff Verkoeyen)\r\n* [Log the performer name in the ConsoleLoggingTracer, not the object itself.](https://github.com/material-motion/runtime-objc/commit/83ccadc575a5336314f212939ceda81c6e6129b9) (Jeff Verkoeyen)\r\n* [Remove deprecated PlanPerforming protocol.](https://github.com/material-motion/runtime-objc/commit/47e126c7de8ceb6ea32dfed251a832f73d38f502) (Jeff Verkoeyen)\r\n* [Add Timeline.](https://github.com/material-motion/runtime-objc/commit/5bd1d6c0449e5b2858c7528a861dd03cbb1a5b58) (Jeff Verkoeyen)\r\n* [Write out plan property information when writing tracer events to the console.](https://github.com/material-motion/runtime-objc/commit/89a9310a664a56c6d86cbf7800006acc628861ad) (Jeff Verkoeyen)\r\n* [Per issue #114 - Swapping the ordering of when the tracer callbacks happen. Performers are created before plans can be added so it makes sense that the tracer callbacks should follow this same ordering.](https://github.com/material-motion/runtime-objc/commit/28d7afd18b7b879f05e521a6f3af1023fce4b2ff) (seanoshea)\r\n* [Alter the order of when the performer and tracer callbacks are invoked.](https://github.com/material-motion/runtime-objc/commit/602ef5302e3b8933ea14d350a21f93974ac32d09) (seanoshea)\r\n\r\n## API changes\r\n\r\nAuto-generated by running:\r\n\r\n    apidiff origin/stable release-candidate objc src/MaterialMotionRuntime.h\r\n\r\n## MDMTimelineScrubber\r\n\r\n*new* property: `timeOffset` in `MDMTimelineScrubber`\r\n\r\n*new* class: `MDMTimelineScrubber`\r\n\r\n## MDMTimelineObserving\r\n\r\n*new* method: `-timeline:didDetachScrubber:` in `MDMTimelineObserving`\r\n\r\n*new* protocol: `MDMTimelineObserving`\r\n\r\n*new* method: `-timeline:didAttachScrubber:` in `MDMTimelineObserving`\r\n\r\n*new* method: `-timeline:scrubberDidScrub:` in `MDMTimelineObserving`\r\n\r\n## MDMPlanPerforming\r\n\r\n*removed* protocol: `MDMPlanPerforming`\r\n\r\n*removed* method: `-addPlan:` in `MDMPlanPerforming`\r\n\r\n## MDMTimeline\r\n\r\n*new* method: `-begin` in `MDMTimeline`\r\n\r\n*new* property: `beginTime` in `MDMTimeline`\r\n\r\n*new* property: `scrubber` in `MDMTimeline`\r\n\r\n*new* method: `-addTimelineObserver:` in `MDMTimeline`\r\n\r\n*new* class: `MDMTimeline`\r\n\r\n*new* method: `-removeTimelineObserver:` in `MDMTimeline`\r\n\r\n## Non-source changes\r\n\r\n* [Automatic changelog preparation for release.](https://github.com/material-motion/runtime-objc/commit/5191b79c16dd64d18cf3056127ac16b4812229ab) (Jeff Verkoeyen)\r\n* [Remove NamedPlanPerforming references.](https://github.com/material-motion/runtime-objc/commit/986eaca4bda244fd4037701b76b5d414acf23968) (Jeff Verkoeyen)\r\n* [Add Timeline example.](https://github.com/material-motion/runtime-objc/commit/8dc5b86d47bcaac4e0d3e597c09b1df6da0cdbf5) (Jeff Verkoeyen)\r\n* [Add \"How to observe timeline events\" guide.](https://github.com/material-motion/runtime-objc/commit/9b02f94a73c6f0f8f3d6ff5c6444264819aff2d3) (Jeff Verkoeyen)\r\n* [Reorder Life of a Plan code to make it easier to follow from top down.](https://github.com/material-motion/runtime-objc/commit/3a3db2a9ee9df65437dd30914ceefa12cea4973e) (Jeff Verkoeyen)\r\n* [Add callsign for arc.](https://github.com/material-motion/runtime-objc/commit/2814e66513ab5425d18d8e7b7b2f8c39e21206c0) (Jeff Verkoeyen)\r\n* [Bump travis image to 8.1.](https://github.com/material-motion/runtime-objc/commit/17923a99be91701add24771b8852d5bf45e86e10) (Jeff Verkoeyen)\r\n* [Update README.md](https://github.com/material-motion/runtime-objc/commit/22756f358c4b78dcc870bec815286f6dfa0997f5) (featherless)\r\n* [Update README.md](https://github.com/material-motion/runtime-objc/commit/a11fb458183cdc8c3b1aa89652360ba7ec4ae753) (Mark Wei)"}}
{"actor":{"display_login":"jverkoey"}}