{"action":"published","release":{"url":"https://api.github.com/repos/ImageEngine/gaffer/releases/1727260","assets_url":"https://api.github.com/repos/ImageEngine/gaffer/releases/1727260/assets","upload_url":"https://uploads.github.com/repos/ImageEngine/gaffer/releases/1727260/assets{?name}","html_url":"https://github.com/ImageEngine/gaffer/releases/tag/0.16.0.0","id":1727260,"tag_name":"0.16.0.0","target_commitish":"master","name":"Version 0.16.0.0","draft":false,"author":{"login":"andrewkaufman","id":3979682,"avatar_url":"https://avatars.githubusercontent.com/u/3979682?v=3","gravatar_id":"","url":"https://api.github.com/users/andrewkaufman","html_url":"https://github.com/andrewkaufman","followers_url":"https://api.github.com/users/andrewkaufman/followers","following_url":"https://api.github.com/users/andrewkaufman/following{/other_user}","gists_url":"https://api.github.com/users/andrewkaufman/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewkaufman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewkaufman/subscriptions","organizations_url":"https://api.github.com/users/andrewkaufman/orgs","repos_url":"https://api.github.com/users/andrewkaufman/repos","events_url":"https://api.github.com/users/andrewkaufman/events{/privacy}","received_events_url":"https://api.github.com/users/andrewkaufman/received_events","type":"User","site_admin":false},"prerelease":true,"created_at":"2015-08-26T19:15:59Z","published_at":"2015-08-26T19:19:40Z","assets":[],"tarball_url":"https://api.github.com/repos/ImageEngine/gaffer/tarball/0.16.0.0","zipball_url":"https://api.github.com/repos/ImageEngine/gaffer/zipball/0.16.0.0","body":"Apps\r\n-----------------------------------------------------------------------\r\n\r\n- Python\r\n  - Sets `__name__` to `__main__` to conform more closely to a standard\r\n    python interpreter (#1405).\r\n  - Fixed to accepts -flag arguments (#1406).\r\n- GUI\r\n  - Removed cortex nodes from the node menu. They can be reintroduced\r\n    with an appropriate config file, but our intention is that Cortex\r\n    play only a \"behind the scenes\" role in Gaffer in the future.\r\n\r\nCore\r\n-----------------------------------------------------------------------\r\n\r\n- Added version metadata to all saved files (#1436).\r\n- Fixed dispatching of nodes inside References.\r\n- Python expressions can now write to AtomicBoxPlugs.\r\n- Added support for promoting ArrayPlugs to boxes.\r\n\r\nUI\r\n-----------------------------------------------------------------------\r\n\r\n- Fixed image format menu to make changes undoable.\r\n- Added sequence browsing to the relevant file choosers.\r\n- Hid TaskContextVariables.variables plug in the NodeGraph.\r\n- Fixed editability of promoted CompoundDataPlugs.\r\n- Box promotion now tranfers nodule and connection colours.\r\n\r\nImage\r\n-----------------------------------------------------------------------\r\n\r\n- Added a Resize node. This will replace the Reformat node over time.\r\n- Added a Crop node.\r\n- Added a Shuffle node (#1380).\r\n- Added Premultiply and Unpremultiply nodes.\r\n- ImageWriter\r\n    - Fixed writing to image formats which don't support separate\r\n      display and data windows - the full display window is now written,\r\n      padded with black as necessary.\r\n    - Added progress message.\r\n    - Fixed tiled writing (previously scanlines were always written).\r\n\r\nScene\r\n-----------------------------------------------------------------------\r\n\r\n- Fixed bug in Isolate which meant that a filter which matched nothing\r\n  at all had no effect. It now removes the entire scene as expected.\r\n- Fixed bug in Prune which meant that a filter which matched the root\r\n  was not removing the entire scene.\r\n- Added support for arbitrary IECore::PreWorldRenderables in global\r\n  options.\r\n- Improved performance of bounds propagation (around 7% improvement\r\n  for a Transform node and a complex filter).\r\n\r\nCortex\r\n-----------------------------------------------------------------------\r\n\r\n- Fixed bug which caused errors with read-only parameter plugs.\r\n\r\nAPI\r\n-----------------------------------------------------------------------\r\n\r\n- Replaced all InputGenerators with ArrayPlugs, and removed InputGenerator\r\n  class. ImageProcessor and SceneProcessor may now provide an array of\r\n  inputs for any derived class to use.\r\n- Paths\r\n  - Added sequence support to FileSystemPath.\r\n  - Added FileSequencePathFilter class for filtering sequences from\r\n    FileSystemPath.\r\n  - FileSequencePathPlugValueWidget supports metadata for sequence\r\n    display.\r\n  - Deprecated SequencePath.\r\n- Added Resample node to GafferImage, for use in node internals.\r\n- Dispatcher\r\n  - The current job directory is added to the context for use\r\n    by Executable nodes.\r\n- Sampler\r\n  - Fixed binding of sample( int, int )\r\n- Added AtomicBox2fPlug.\r\n- Made SceneNode and SceneProcessor subclassable in Python.\r\n- Made ImageNode and ImageProcessor subclassable in Python.\r\n- Made SubGraph subclassable in Python.\r\n- Added _copy argument to ImagePlug.channelData() method.\r\n- CompoundPlug deprecation\r\n  - Rederived the following plugs from ValuePlug or Plug in preparation\r\n    for removal of CompoundPlug :\r\n      - BoxPlug\r\n      - CompoundNumericPlug\r\n      - Transform2DPlug\r\n      - TransformPlug\r\n      - CompoundDataPlug\r\n      - ArrayPlug\r\n  - Replaced use of CompoundPlug in the following nodes\r\n    - Light\r\n    - Outputs\r\n- Added support for extra constructor arguments in node wrappers.\r\n\r\nIncompatibilities\r\n-----------------------------------------------------------------------\r\n\r\nThe scene and image processing nodes have been overhauled to allow any\r\nnode to use an array of inputs. While full backwards compatibility with\r\nold scenes is expected, please let us know if you have any problems\r\nloading an old scene. Please also update any dependent code to the new\r\nAPIs as soon as possible.\r\n\r\n- Removed InputGenerator. Use ArrayPlug instead.\r\n- Removed FilterMixinBase. Use FilterProcessor instead.\r\n- SwitchComputeNode and SwitchDependencyNode now require that the \"in\"\r\n  plug is an ArrayPlug.\r\n- Changed base classes for many plugs, breaking binary compatibility\r\n  but in most cases not source compatibility.\r\n\r\n\r\nBuild\r\n-----------------------------------------------------------------------\r\n\r\n- Added checks for doxygen and inkscape prior to building.\r\n- Fixed non-reporting of graphics build errors (#1395).\r\n- Updated to faster container-based testing on Travis.\r\n- Added appleseed unit tests to Travis setup."}}