Skip to content

Tags: AcademySoftwareFoundation/OpenImageIO

Tags

v3.1.8.0

Toggle v3.1.8.0's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.1.8.0

Release 3.1.8.0 (Dec 1, 2025) -- compared to 3.1.7.0
----------------------------------------------------
  - *exif*: Support EXIF 3.0 tags [#4961](#4961)
  - *jpeg*: Fix wrong pointers/crashing when decodng CMYK jpeg files [#4963](#4963)
  - *openexr*: Improve attribute translation rules [#4946](#4946)
  - *openexr*: ACES container writes colorInteropId instead of colorInteropID [#4966](#4966) (by Brecht Van Lommel)
  - *color mgmt*: Fix some legacy 'Linear' color references [#4959](#4959)
  - *imagebuf*: Fix `ImageBuf::set_pixels()` bug, didn't consider roi = All [#4949](#4949)
  - *tests*: Image_span_test reduce benchmark load for debug and CI renders [#4951](#4951)
  - *build*: Type warning in assertion in jpeg2000output.cpp [#4952](#4952)
  - *build*: Disable LERC in libTIFF local build script [#4957](#4957) (by LI JI)
  - *ci*: Fix broken ci, debug and static cases, bump some latest [#4954](#4954)
  - *ci*: Unbreak icc/icx CI [#4958](#4958)
  - *admin*: Update some license notices [#4955](#4955)

v3.0.13.0

Toggle v3.0.13.0's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.0.13.0

Release 3.0.13.0 (Dec 1, 2025) -- compared to 3.0.12.0
-------------------------------------------------------
  - *exif*: Support EXIF 3.0 tags [#4961](#4961)
  - *build*: Disable LERC in libTIFF local build script [#4957](#4957) (by LI JI)
  - *ci*: Fix broken ci, debug and static cases, bump some latest [#4954](#4954)
  - *ci*: Unbreak icc/icx CI [#4958](#4958)

v3.1.7.0

Toggle v3.1.7.0's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.1.7.0

Release 3.1.7.0 (Nov 1, 2025) -- compared to 3.1.7.0
----------------------------------------------------
  - *openexr*: Support for idManifest and deepImageState (experimental) [#4877](#4877) (3.1.7.0)
  - *openexr*: ACES Container hint for exr outputs [#4907](#4907) (by Oktay Comu) (3.1.7.0)
  - *ffmpeg*: 10 bit video had wrong green channel [#4935](#4935) (by Brecht Van Lommel) (3.1.7.0)
  - *iff*: Handle non-zero origin, protect against buffer overflows [#4925](#4925) (3.1.7.0)
  - *jpeg-xl*: Correctly set Quality for JPEG XL [#4933](#4933) (3.1.7.0)
  - *api/docs*: Fix IBA::set_pixels declaration and docs [#4926](#4926) (3.1.7.0)
  - *win*: Address Windows crashes from issue 4641 [#4914](#4914) (3.1.7.0)
  - *fix*: Uninitialized value revealed by clang-21 warning [#4940](#4940) (3.1.7.0)
  - *build/deps*: Additional auto-build capabilities for dependencies that are not found: GIF library [#4921](#4921) (by Valery Angelique), OpenJPEG [#4911](#4911) (by Danny Greenstein) (3.1.7.0)
  - *build*: Allow auto-build of just required packages [#4927](#4927) (3.1.7.0)
  - *build*: Make dependency report more clear about what was required [#4929](#4929) (3.1.7.0)
  - *ci*: Python wheel building improvements: use ccache [#4924](#4924) (by Larry Gritz), unbreak wheel release + other enhancements pt 1 [#4937](#4937) (by Zach Lewis) (3.1.7.0)
  - *ci*: Drop deprecated macos-13 (intel) platform, add macos-15-intel [#4930](#4930) (3.1.7.0)
  - *ci*: Try to avoid ffmpeg install failures [#4936](#4936) (3.1.7.0)
  - *ci*: Simplify ci workflow by using build-steps for old aswf containers, too [#4932](#4932) (3.1.7.0)
  - *ci*: We were not correctly setting fmt version from job options [#4939](#4939) (3.1.7.0)
  - *tests*: Update ref images for heif [#4941](#4941) (3.1.7.0)
  - *docs*: Update/correct explanation of "openexr:core" attribute, and typo fixes [#4943](#4943) (3.1.7.0)

v3.0.12.0

Toggle v3.0.12.0's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.0.12.0

Release 3.0.12.0 (Nov 1, 2025) -- compared to 3.0.11.0
-------------------------------------------------------
  - *iff*: Handle non-zero origin, protect against buffer overflows [#4925](#4925)
  - *jpeg-xl*: Correctly set Quality for JPEG XL [#4933](#4933)
  - *win*: Address Windows crashes from issue 4641 [#4914](#4914)
  - *fix*: Uninitialized value revealed by clang-21 warning [#4940](#4940)
  - *ci*: For python wheel generation, use ccache [#4924](#4924)
  - *ci*: Drop deprecated macos-13 (intel) platform, add macos-15-intel [#4930](#4930)
  - *ci*: We were not correctly setting fmt version from job options [#4939](#4939)

v3.1.6.2

Toggle v3.1.6.2's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.1.6.2

Release 3.1.6.2 (Oct 3, 2025) -- compared to 3.1.6.1
----------------------------------------------------
  - *oiioversion.h*: Restore definition of `OIIO_NAMESPACE_USING` macro [#4920](#4920)

v3.1.6.1

Toggle v3.1.6.1's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.1.6.1

Release 3.1 (target: Oct 2 2025) -- compared to 3.0.x
-----------------------------------------------------
- Beta 1: Aug 22, 2025
- Beta 2: Sep 19, 2025
- Release candidate 1: Sep 27, 2025
- Full release, v3.1.6.1: Oct 2, 2025

**Executive Summary / Highlights:**
  - New image file support: Ultra HDR (HDR images in JPEG containers).
  - oiiotool new commands: `--layersplit`, `--pastemeta`, `--demosaic`,
    `--create-dir` and new expression expansion tokens: `IS_CONSTANT`,
    `IS_BLACK`, `SUBIMAGES`.
  - New IBA image processing functions: `scale()`, `demosaic()`.
  - New 2-level namespace scheme that we hope will make it possible in the
    future for our annual releases to NOT need to break backward ABI
    compatibility.
  - Support in Python for `ImageBuf._repr_png_` method allows use of OIIO
    inside [Jupyter Notebooks](https://jupyter.org/) to display computed
    images.
  - Color management improvements: Conform to Color Interchange Forum and
    OpenEXR new conventions for naming and specifying color spaces. PNG,
    HEIC, and ffmpeg/video files now support reading CICP metadata.

* *Python*: 3.9 minimum (from 3.7) [#4830](#4830) (3.1.4.0)
* *OpenColorIO*: 2.3 minimum (from 2.2) [#4865](#4865) (3.1.4.0)

* *New image file format support:*
    - *jpeg*: Support reading Ultra HDR images [#4484](#4484) (by Loïc Vital) (3.1.0.0/3.0.1.0)
* *oiiotool new features and major improvements*:
    - New expression eval tokens: `IS_CONSTANT`, `IS_BLACK` [#4610](#4610) (by Lydia Zheng) (3.1.1.0); `SUBIMAGES` [#4804](#4804) (3.1.3.0)
    - `--layersplit`, new command to split layers [#4591](#4591) (by Loïc Vital) (3.1.1.0)
    - `--pastemeta` now takes additional modifiers that allows options for merging rather than rewriting, and is able to copy only a subset of the metadata specified by a regex. [#4672](#4672) [#4674](#4674) [#4676](#4676) (3.1.1.0)
    - `--demosaic` add X-Trans demosaicing [#4579](#4579) (by Anton Dukhovnikov) (3.1.1.0)
    - `--render_text` new modifiers `measure=` and `render=` can
      be used to measure the size of rendered text without drawing it.` [#4681](#4681) (3.1.3.0)
    - `--create-dir` flag creates directories needed by `-o`
      if they doesn't already exist [#4762](#4762) (by Dharshan Vishwanatha) (3.1.3.0)
    - `--eraseattrib` new modifier `:fromfile=1` reads from a file
      to get a list of patterns to specify the attributes to erase. [#4763](#4763) (by Lydia Zheng) (3.1.3.0)
    - *oiiotool*: Allow easy splitting of subimages by name [#4874](#4874) (3.1.5.0)
* *Command line utilities*:
    - *iv*: Implement files drag and drop into an iv window [#4774](#4774) (by Aleksandr Motsjonov) (3.1.3.0)
    - *iv*: Area probe [#4767](#4767) (by Danielle Imogu) (3.1.3.0)
    - *iv*: Add min/max/avg and sizing to pixel closeup view [#4807](#4807) (by Aleksandr Motsjonov) (3.1.4.0)
* *ImageBuf/ImageBufAlgo*:
    - New `ImageBuf::merge_metadata()`: merges one IB's metadata into another's without deleting the metadata already present. It can also filter which metadata are copied using a regex. [#4672](#4672) (3.1.1.0)
    - New `ImageBufAlgo::scale()`: scales all channels of a multi-channel image by the single channel of a second image. [#4541](#4541) (by Anton Dukhovnikov) (3.1.0.0/3.0.1.0)
    - `ImageBufAlgo::demosaic()` added support for X-Trans demosaicing [#4579](#4579) (by Anton Dukhovnikov) (3.1.1.0)
* *APIs moving to `span` and `image_span`*:
  Add API calls using `span` and `image_span` as the preferred alternative for
  the historical calls that took raw pointers and spans to designate buffers
  to read from or write into.
    - *image_span.h*: Add `image_span` template, deprecate image_view [#4703](#4703) [#4784](#4784) (3.1.3.0)
    - *ImageInput / ImageOutput*: [#4669](#4669) (3.1.1.0) [#4727](#4727) [#4748](#4748) (3.1.3.0)
    - *ImageCache/TextureSystem*: [#4783](#4783) (3.1.3.0) [#4838](#4838) (3.1.4.0)
    - *ImageBuf*: [#4814](#4814) (3.1.3.0) [#4827](#4827) (3.1.4.0)
* *ImageCache/TextureSystem*:
    - *maketx*: Add maketx flags to increase feature parity with txmake [#4841](#4841) (by Scott Milner) (3.1.4.0)
* New global attribute queries via OIIO::getattribute():
    - Added queries for available font families and styles [#4523](#4523) (by peterhorvath111) (3.1.0.0/3.0.1.0)
    - *api*: Add global attribute `imageinput:strict` [#4560](#4560) (3.1.0.0)
* Miscellaneous API changes:
    - *api*: Make a 2-level namespace scheme [#4567](#4567) (by Larry Gritz) [#4603](#4603) (by Brecht Van Lommel) (3.1.1.0) [#4869](#4869) (3.1.5.0)
    - *api*: ImageSpec::scanline_bytes, tile_bytes, image_bytes [#4631](#4631) (3.1.1.0)
    - *python*: ImageBuf `_repr_png_` method added, which allows use of
      ImageBuf in [Jupyter Notebooks](https://jupyter.org/) as a displayable object. [#4753](#4753) (by Oktay Comu) (3.1.3.0)
    - *python*: Add python stub files [#4692](#4692) (by Chad Dombrova) (3.1.3.0)
    - *api*: Add new ImageInput::supports() query: "mipmap" [#4800](#4800) (3.1.3.0)
* Color management changes
    - *color mgmt*: Don't assume unlabeled OpenEXR files are lin_rec709 [#4840](#4840) (3.1.4.0)
    - *color mgmt*: Color space renaming to adhere to CIF conventions [#4860](#4860) (3.1.4.0)
    - Ability to read CICP metadata from PNG [#4746](#4746) (by Zach Lewis) (3.1.5.0), HEIC [#4880](#4880) (by Brecht Van Lommel) (3.1.5.0), and video files/ffmpeg [#4882](#4882) (by Brecht Van Lommel) (3.1.5.0).

  - *perf*: IBA::unsharp_mask() speed and memory optimization [#4513](#4513) (by Vlad (Kuzmin) Erium) (3.1.0.0/3.0.1.0)
  - *perf*: Oiiotool --line --text --point --box speedups [#4518](#4518) (3.1.0.0/3.0.1.0)
  - *perf*: Jpeg2000 valid_file implementation, much faster than trying to open [#4548](#4548) (by Aras Pranckevičius) (3.1.0.0/3.0.1.0)
  - *perf*: Faster utf8<->utf16 conversion on Windows [#4549](#4549) (by Aras Pranckevičius) (3.1.0.0/3.0.1.0)
  - *perf*: Speed up `maketx --envlatl` when multithreaded by over 10x. [#4825](#4825)
  - *perf*: Speed up OpenEXR non-core header read time [#4832](#4832)

  - *oiiotool*: Better handling of wildcards that match no files [#4627](#4627) (3.1.1.0)
  - *oiiotool*: Invalid loop bound when appending mipmap textures using oiiotool [#4671](#4671) (by Basile Fraboni) (3.1.1.0)
  - *oiiotool*: -i:native=1, fix --native behavior, fix convert datatype [#4708](#4708) (3.1.3.0)
  - *oiiotool*: Fixes to --missingfile behavior [#4803](#4803) (3.1.3.0)
  - *oiiotool*: Allow thread control for --parallel-frames [#4818](#4818) (3.1.3.0)
  - *oiiotool*: Use normalized path when creating wildcard path pattern [#4904](#4904) (by Jesse Yurkovich) (3.1.6.0)
  - *oiiotool*: Ignore empty subimage(s) when calculating non-zero region [#4909](#4909) (by Carine Touraille) (3.1.6.0)
  - *color mgmt*: Support OCIO Viewing Rules, other OCIO-related improvements [#4780](#4780) (by zachlewis) (3.1.3.0)
  - *iv*: Fix crash on .DS_Store; fix uppercase extensions [#4764](#4764) (by Anton Dukhovnikov) (3.1.3.0)
  - *iv*: Do not resize on open and other zoom fixes [#4766](#4766) (by Aleksandr Motsjonov) (3.1.3.0)
  - *iv*: Bug fix for iv window losing focus on mac on startup [#4773](#4773) (by Aleksandr Motsjonov) (3.1.3.0)
  - *iv*: Use screen pixel ratio to render sharp text in pixel view tool [#4768](#4768) (by Aleksandr Motsjonov) (3.1.3.0)
  - *IBA*: IBA:demosaic add white balancing [#4499](#4499) (by Anton Dukhovnikov) (3.1.0.0/3.0.1.0)
  - *IBA*: IBA::demosaic - fix roi channels [#4602](#4602) (by Anton Dukhovnikov) (3.1.1.0)
  - *IBA*: Add 'auto' value for all options of `IBA::demosaic()` [#4786](#4786) (by Anton Dukhovnikov) (3.1.3.0)
  - *ImageBuf*: IB::pixeltype() did not always return the right value [#4614](#4614) (3.1.1.0)
  - *ImageBuf*: Fix bug in ImageBuf construction from ptr + neg strides [#4630](#4630) (3.1.1.0)
  - *ImageBuf*: Better errors for nonexistant subimages/mips [#4801](#4801) (3.1.3.0)
  - *ImageInput*: Incorrect IOProxy logic related to valid_file [#4839](#4839) (3.1.4.0)
  - *python*: Disable loading Python DLLs from PATH by default on Windows [#4590](#4590) (by zachlewis) (3.1.1.0)
  - *python*: Fix handle leak [#4685](#4685) (3.1.3.0)
  - *python*: IBA.demosaic had GIL release in wrong spot [#4777](#4777) (3.1.3.0)
  - *python*: Python ImageBuf.init_spec did not return correct value [#4805](#4805) (3.1.3.0)
  - *python*: Got strides wrong passing 2D numpy pixel array [#4843](#4843) (3.1.4.0)
  - *exr*: Allow an empty "name" metadata to be read [#4528](#4528) [#4536](#4536) (3.1.0.0/3.0.1.0)
  - *exr*: Avoid integer overflow for large deep exr slice strides [#4542](#4542) (3.1.0.0/3.0.1.0)
  - *exr*: Fill in OpenEXR lineOrder attribute when reading [#4628](#4628) (by vernalchen) (3.1.1.0)
  - *exr*: Did not properly allocate 'missingcolor' vector [#4751](#4751) (3.1.3.0)
  - *exr*: Not honoring 'missingcolor' for scanline files [#4757](#4757) (3.1.3.0)
  - *ffmpeg*: FFmpeg incorrectly set zero oiio:BitsPerSample [#4885](#4885) (by Brecht Van Lommel) (3.1.5.0)
  - *ffmpeg*: Add ability to read CICP metadata [#4882](#4882) (by Brecht Van Lommel) (3.1.5.0)
  - *gif*: Gif output didn't handle FramesPerSecond attribute correctly [#4890](#4890) (3.1.5.0)
  - *heic*: Read and write of CICP and support for bit depth 10 and 12 [#4880](#4880) (by Brecht Van Lommel) (3.1.5.0)
  - *ico*: More robust to corrupted ICO files [#4625](#4625) (3.1.1.0)
  - *iff*: Improved IFF support reading and writing z buffers [#4673](#4673) (by Mikael Sundell) (3.1.3.0)
  - *jpeg*: Support encoding/decoding arbitrary metadata as comments [#4430](#4430) (by Lukas Stockner) (3.1.0.0/3.0.1.0)
  - *jpeg-2000*: Write .j2c by adding HTJ2K Encoding using the OpenJPH library. [#4699](#4699) (by Sam Richards) (3.1.3.0)
  - *png*: Alpha premultiplication adjustment and attribute [#4585](#4585) (3.1.1.0)
  - *png*: Increase allowed width/height limit [#4655](#4655) (by Jesse Yurkovich) (3.1.1.0)
  - *png*: CICP metadata support for PNG [#4746](#4746) (by Zach Lewis) (3.1.5.0)
  - *pnm*: Broken pgm having memory access error [#4559](#4559) (3.1.0.0)
  - *psd*: Perform endian byteswap on correct buffer area for PSD RLE [#4600](#4600) (by Jesse Yurkovich) (3.1.1.0)
  - *psd*: ICC profile reading improvements, especially for PSD [#4644](#4644) (3.1.1.0)
  - *psd*: Updated tag recognition for psb [#4663](#4663) (by Lydia Zheng) (3.1.1.0)
  - *raw*: Fix channel layout [#4516](#4516) (by Anton Dukhovnikov) (3.1.0.0/3.0.1.0)
  - *raw*: Add black level and BPS metadata [#4601](#4601) (by Anton Dukhovnikov) (3.1.1.0)
  - *raw*: Add `raw:ForceLoad` ImageInput configuration hint [#4704](#4704) (by Anton Dukhovnikov) (3.1.3.0)
  - *raw*: Add thumbnail support to the raw input plugin [#4887](#4887) (by Anton Dukhovnikov) (3.1.5.0)
  - *rla*: More robust to corrupted RLA files that could overrun buffers [#4624](#4624) (3.1.1.0)
  - *sgi*: Fix valid_file to properly swap bytes on little-endian platforms [#4697](#4697) (by Jesse Yurkovich) (3.1.3.0)
  - *tiff*: The default value for bitspersample should be 1 [#4670](#4670) (by vernalchen) (3.1.1.0)
  - *webp*: Respect the `oiio:UnassociatedAlpha` attribute [#4770](#4770) (by Jesse Yurkovich) (3.1.3.0)
  - *webp*: Allow finer grained control over WEBP compression settings [#4772](#4772) (by Jesse Yurkovich) (3.1.3.0)
  - *webp*: Support reading/writing the ICCProfile attribute [#4878](#4878) (by Jesse Yurkovich) (3.1.5.0)
  - *various formats*: Detect invalid ICC profile tags [#4557](#4557) [#4561](#4561) (3.1.0.0)
  - *various formats*: IPTC fields have length limits [#4568](#4568) (3.1.0.0)

  - *int*: Some LoggedTimer instances lacked a variable name [#4571](#4571) (3.1.0.0)
  - *int*: Various internal fixes to address Sonar and other warnings [#4577](#4577) (3.1.0.0)
  - *int*: No longer need OIIO_INLINE_CONSTEXPR macro [#4607](#4607) (3.1.1.0)
  - *int*: Get rid of some compiler symbols no longer needed [#4606](#4606) (3.1.1.0)
  - *int*: Switch to spans for some exif manipulation, fixing warnings [#4689](#4689) (3.1.1.0)
  - *int*: Rearrange initialize_cuda() for better err check, no warn [#4726](#4726) (3.1.3.0)
  - *int*: Experimental default_init_allocator and default_init_vector [#4677](#4677) (3.1.3.0)
  - *int*: Address some nickpick sonar warnings about TileID initialization [#4722](#4722) (3.1.3.0)
  - *int*: Address safety warnings in pvt::append_tiff_dir_entry [#4737](#4737) (3.1.3.0)
  - *int*: ImageInput/ImageOutput did not set per-file threads correctly [#4750](#4750) (3.1.3.0)
  - *int/iv*: Add raw string syntax modifier for VSCode and Cursor to understand its glsl [#4796](#4796) (by Aleksandr Motsjonov) (3.1.3.0)
  - *int/iv*: Use R"()" syntax for glsl shader strings for better readability [#4795](#4795) (by Aleksandr Motsjonov) (3.1.3.0)
  - *int*: ImageOutput::check_open logic was flawed [#4779](#4779) (3.1.3.0)
  - *int*: Switch to posix_spawnp for macOS background launch to enable PATH lookup [#4834](#4834) (by Mikael Sundell) (3.1.4.0)
  - *filesystem.h*: Filesystem::getline() [#4569](#4569) (3.1.1.0)
  - *fmath.h*: Add span-based bit_unpack() utility [#4723](#4723) (3.1.3.0)
  - *fmath.h*: Renaming and fixing of shuffle template [#4739](#4739) (3.1.3.0)
  - *paramlist.h*: ParamValue as_span, as_cspan (3.1.1.0)
  - *span.h*: span_memcpy is a safer memcpy when you know the span boundaries [#4597](#4597) (3.1.1.0)
  - *span.h*: Only allow span-from-array if array for compatible size [#4656](#4656) (3.1.1.0)
  - *span.h*: OIIO::span improvements [#4667](#4667) (3.1.1.0)
  - *span.h*: Eliminate needless definitions of std::size [#4652](#4652) (3.1.1.0)
  - *sysutil.h*: Improve the implementation of Sysutil::put_in_background on macOS [#4640](#4640) (by Mikael Sundell) (3.1.1.0)
  - *typedesc.h*: Tidying of type trait templates [#4705](#4705) (3.1.3.0)

* CMake build system and scripts:
    - *build*: Add hardening options [#4538](#4538) (3.1.0.0/3.0.1.0)
    - *build*: Use target_compile_options (fixes a LibRaw build issue) [#4556](#4556) (by Don Olmstead) (3.1.0.0)
    - *build*: Python wheels workflow and build backend [#4428](#4428) (by zachlewis) (3.1.1.0)
    - *build*: Recent change broke when using non-Apple clang on Apple [#4596](#4596) (3.1.1.0)
    - *build*: Fix recently broken rpath setting [#4618](#4618) (3.1.1.0)
    - *build*: Improve OpenJpeg version detection. [#4665](#4665) (by jreichel-nvidia) (3.1.1.0)
    - *build*: Fix recently broken rpath to restore python wheel building [#4633](#4633) (3.1.1.0)
    - *build*: Ensure python-based builds use maj.min.patch SO versioning [#4634](#4634) (by zachlewis) (3.1.1.0)
    - *build*: Better disabling of work when USE_PYTHON=0 [#4657](#4657) (3.1.1.0)
    - *build*: Bump auto-build libdeflate to 1.23 to avoid AVX512 not available errors [#4679](#4679) (by LI JI) (3.1.1.0)
    - *build*: Cmake 4.0 compatibility [#4686](#4686) [#4688](#4688) (3.1.1.0)
    - *build*: Make sure the CHANGES-2.x.md makes it into the installation [#4611](#4611) (3.1.1.0)
    - *build*: Address Robin-map vs CMake 4.0 compatibility [#4701](#4701) (3.1.3.0)
    - *build*: Fix broken OIIO_SITE customization [#4709](#4709) (3.1.3.0)
    - *build*: Restore OIIO_AVX512ER_ENABLED preprocessor symbol [#4735](#4735) (3.1.3.0)
    - *build*: Address compiler warnings [#4724](#4724) (3.1.3.0)
    - *build*: Fix furo requirement after recently breaking docs [#4743](#4743) (3.1.3.0)
    - *build*: Clean up Windows compilation warnings [#4706](#4706) (3.1.3.0)
    - *build/python*: Wheel upload_pypi step should only run from main repo [#4820](#4820) (3.1.3.0)
    - *build*: Fix typo related to finding ccache [#4833](#4833) (3.1.4.0)
    - *build*: C++23 support [#4844](#4844) (3.1.4.0)
    - *build*: Clean up obsolete logic for old compilers [#4849](#4849) (3.1.5.0)
    - *build*: Update autobuild defaults for some dependencies [#4910](#4910) (3.1.6.1)
* Dependency and platform support:
    - *build(OCIO)*: Support static OCIO self-builds [#4517](#4517) (by zachlewis) (3.1.0.0/3.0.1.0)
    - *build(PNG)*: Add build recipe for PNG [#4423](#4423) (by zachlewis) (3.1.0.0/3.0.1.0); PNG auto-build improvements [#4835](#4835) (3.1.4.0)
    - *deps(cmake)*: Fix build_cmake.bash script for aarch64, bump its default version [#4581](#4581) (3.1.1.0)
    - *deps(dcmtk)*: Fix new dcmtk 3.6.9 vs C++ warning [#4698](#4698) (3.1.3.0)
    - *deps(ffmpeg)*: Ffmpeg 8 support [#4870](#4870) (3.1.5.0)
    - *deps(ffmpeg)*: Replace deprecated and soon removed avcodec_close with avcodec_free_context [#4837](#4837) (by Vlad Erium) (3.1.4.0)
    - *deps(fmt)*: Fix failed test with old fmt [#4758](#4758) (3.1.3.0)
    - *deps(fmt)*: Fix fmt throwing behavior warnings [#4730](#4730) (3.1.3.0)
    - *deps(freetype)*: Test freetype 2.14 and document that it works [#4876](#4876) (3.1.5.0)
    - *deps(freetype)*: Update ref image for slightly changed freetype accents [#4765](#4765) (3.1.3.0)
    - *deps(jpeg2000)*: Update jpeg2000input.cpp to include cstdarg [#4836](#4836) (by Peter Kovář) (3.1.4.0)
    - *deps(libheif)*: Add new ref output for libheif updates [#4525](#4525) (3.1.0.0/3.0.1.0)
    - *deps(libheif)*: Use get_plane2 introduced by libheif 1.20.2 [#4851](#4851) (by toge) (3.1.4.0)
    - *deps(libraw)*: Fix libraw definitions (again) [#4588](#4588) (3.1.1.0)
    - *deps(libultrahdr)*: Detect libultrahdr version and enforce minimum of 1.3 [#4729](#4729) (3.1.3.0)
    - *deps(OCIO)*: Raise OpenColorIO minimum to 2.3 (from 2.2) [#4865](#4865) (3.1.4.0)
    - *deps(openexr)*: OpenEXR 3.4 supports two compression types for HTJ2K [#4871](#4871) (by Todica Ionut) (3.1.5.0)
    - *deps(openexr)*: Several OpenEXR and OpenJPH build related fixes [#4875](#4875) (3.1.5.0)
    - *deps(openjph)*: Fix openjph target use [#4894](#4894) (3.1.5.0)
    - *deps(openvdb)*: Look for boost headers for OpenVDBs older than 12 [#4873](#4873) (by Alex Fuller) (3.1.5.0)
    - *deps(python)*: Raise minimum supported Python from 3.7 to 3.9 [#4830](#4830) (3.1.4.0)
    - *deps(opencolorio)*: Support for OpenColorIO 2.5 [#4916](#4916) (3.1.6.1)
    - *windows*: Include Windows version information on produced binaries [#4696](#4696) (by Jesse Yurkovich) (3.1.3.0)
    - *windows*: Propagate CMAKE_MSVC_RUNTIME_LIBRARY [#4842](#4842) (3.1.4.0)
    - *windows + ARM64*: Add arm_neon.h include on Windows ARM64 with clang-cl [#4691](#4691) (by Anthony Roberts)
    - *NetBSD*: Fix build on NetBSD [#4857](#4857) (by Thomas Klausner) (3.1.4.0)
    - *build*: Fix some build issues encountered on a musl libc system [#4903](#4903) (by omcaif) (3.1.6.0)
* Testing and Continuous integration (CI) systems:
    - *tests*: Improve Ptex testing [#4573](#4573) (3.1.1.0)
    - *tests*: Better testing coverage of null image reader/writer [#4578](#4578) (3.1.1.0)
    - *tests*: At long last, set up a softimage reading test (3.1.1.0)
    - *tests*: Additional ref output for jpeg-corrupt test [#4595](#4595) (3.1.1.0)
    - *ci*: Increased the macos timeout slightly to fix spurious failures [#4526](#4526) (3.1.0.0/3.0.1.0)
    - *ci*: Don't rebuild docs in CI when only CMakeLists.txt changes [#4539](#4539) (3.1.0.0/3.0.1.0)
    - *ci*: Fix broken CI for ASWF 2021 and 2022 containers [#4543](#4543) (3.1.0.0/3.0.1.0)
    - *ci*: Refactor using a single steps workflow [#4545](#4545) (3.1.0.0)
    - *ci*: Fixups of analysis workflow [#4572](#4572) (3.1.0.0)
    - *ci*: Upgrade to newer actions [#4570](#4570) (3.1.1.0)
    - *ci*: Test and document support for WebP 1.5 and fmt 11.1 [#4574](#4574) (3.1.1.0)
    - *ci*: Only pass build-steps the secrets it needs [#4576](#4576) (3.1.1.0)
    - *ci*: Fix Windows 2019 CI -- make python version match the runner [#4592](#4592) (3.1.1.0)
    - *ci*: Raise 'latest' tests to use new fmt 11.1.2 [#4593](#4593) (3.1.1.0)
    - *ci*: Adjust some pugixml versions [#4594](#4594) (3.1.1.0)
    - *ci*: Allow special branch names to prune CI jobs [#4604](#4604) (3.1.1.0)
    - *ci*: Unbreak the scorecard workflow [#4605](#4605) (3.1.1.0)
    - *ci*: Switch to using ARM-native linux runners [#4616](#4616) (by zachlewis) (3.1.1.0)
    - *ci*: Run wheel workflow on certain pushes [#4617](#4617) (3.1.1.0)
    - *ci*: Add `numpy` as a runtime requirement [#4638](#4638) (by zachlewis) (3.1.1.0)
    - *ci*: Move away from soon-to-be-deprecated ubuntu-20.04 GHA runner [#4636](#4636) (3.1.1.0)
    - *ci*: For docs workflow, lock down versions and speed up [#4646](#4646) (3.1.1.0)
    - *ci*: Improved clang-format CI task [#4647](#4647) (3.1.1.0)
    - *ci*: Add numpy as a runtime requirement [#4654](#4654) (by zachlewis) (3.1.1.0)
    - *ci*: Fix wheel building on Mac [#4668](#4668) (3.1.1.0)
    - *ci*: Update libPNG address and version for ci & autobuild [#4659](#4659) (3.1.1.0)
    - *ci*: Step naming adustments [#4658](#4658) (3.1.1.0)
    - *ci*: Fix wheel building on Mac ARM (continuation of #4668) [#4675](#4675) (3.1.1.0)
    - *ci*: Bump dependencies for "latest versions" CI test [#4683](#4683) (3.1.1.0)
    - *ci*: Update ABI standard after PR 4669 [#4687](#4687) (3.1.1.0)
    - *ci*: Save time by not checking out entire project history [#4731](#4731) (3.1.3.0)
    - *ci*: New variants for VFXP 2025, Windows 2025 [#4744](#4744) (3.1.3.0)
    - *ci*: Bump abi_check standard after ImageOutput changes [#4747](#4747) (3.1.3.0)
    - *ci*: Upload fixed python stubs as an artifact in CI  [#4754](#4754) (by Chad Dombrova) (3.1.3.0)
    - *ci*: Update ref output to compensate for GitHub windows drive changes [#4761](#4761) (3.1.3.0)
    - *ci*: Pkg config libdir fix [#4775](#4775) (by Scott Wilson) (3.1.3.0)
    - *ci*: Add facility for benchmarking as part of CI [#4745](#4745) (3.1.3.0)
    - *ci*: Adjust ABI standard commit after ABI-breaking change of PR 4748 [#4778](#4778) (3.1.3.0)
    - *ci*: Add Linux ARM test [#4749](#4749) (3.1.3.0)
    - *ci*: Update linux arm clang reference output [#4782](#4782) (3.1.3.0)
    - *ci*: Bump 'latest releases' tests to use pybind11 3.0.0 [#4828](#4828) (3.1.4.0)
    - *ci*: For python stub generation, lock pybind11 to pre-3.0 [#4831](#4831) (3.1.4.0)
    - *ci*: Add a VFX Platform 2026 CI job [#4856](#4856) (3.1.4.0)
    - *ci*: Lock down to ci-oiio container with correct llvm components [#4859](#4859) (3.1.4.0)
    - *ci*: Bump webp and openexr for "latest versions" test [#4861](#4861) (3.1.4.0)
    - *ci*: Try to fix Sonar workflow by switching to compile-commands for sonar [#4879](#4879) (by vvalderrv) (3.1.5.0)
    - *ci*: Fix analysis workflow configuration [#4881](#4881) (3.1.5.0)
    - *ci*: Better spread of libpng versions we test against [#4883](#4883) (3.1.5.0)
    - *ci*: Fix broken python wheel building [#4855](#4855) (by Zach Lewis) (3.1.5.0)
    - *ci*: Some more minor wheel workflow changes after the py 3.9 bump [#4867](#4867) (3.1.5.0)
    - *ci*: More Sonar scan workflow fixes [#4902](#4902) (by vvalderrv) (3.1.6.0)
    - *ci*: Add more exceptions to when we test docs building [#4899](#4899) (3.1.6.0)
    - *ci*: Require all dependencies, with explicit exceptions [#4898](#4898) (3.1.6.0)

  - *docs*: Clarify 'copy_image' example [#4522](#4522) (3.1.0.0/3.0.1.0)
  - *docs*: Update some old links to our new vanity URLs [#4533](#4533) (3.1.0.0/3.0.1.0)
  - *docs*: Quickstart guide [#4531](#4531) (3.1.0.0/3.0.1.0)
  - *docs*: First stab at an archiecture overview [#4530](#4530) (3.1.0.0/3.0.1.0)
  - *docs*: Fix typo in oiiotool's gradient fill argument [#4589](#4589) (by Loïc Vital) (3.1.1.0)
  - *docs*: Argparse documentation/comments typos [#4612](#4612) (3.1.1.0)
  - *docs*: Correct the type for BMP x/y density [#4695](#4695) (by Campbell Barton) (3.1.3.0)
  - *docs*: Specify the units for DPX scanned size [#4694](#4694) (by Campbell Barton) (3.1.3.0)
  - *docs*: INSTALL.md reset updated minimum dependencies from 3.0 [#4700](#4700) (3.1.3.0)
  - *docs*: Online docs improvements, mostly formatting [#4736](#4736) (3.1.3.0)
  - *docs*: Update Windows build instructions to rely on deps auto-build [#4769](#4769) (3.1.3.0)
  - *docs*: Correct docs and type of "resident_memory_used_MB" attribute [#4824](#4824) (3.1.4.0)
  - *docs/python*: Add type hints to Python docs and tests [#4908](#4908) (by Connie Chang) (3.1.6.0)

  - *admin*: Code review guidelines and tips [#4532](#4532) (3.1.0.0/3.0.1.0)
  - *admin*: Document how to make signed release tags [#4529](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4529) (3.1.0.0/3.0.1.0)
  - *admin*: Sign release artifacts [#4580](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4580) (3.1.0.0)
  - *admin*: Document Python Wheel completed in roadmap [#4620](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4620) (by Todica Ionut) (3.1.1.0)
  - *admin*: Add ".vs" to .gitignore [#4645](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4645) (3.1.1.0)
  - *admin*: Set up .gitattributes file [#4648](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4648) (3.1.1.0)
  - *admin*: Update SECURITY to reflect that 2.5 only gets critical fixes now [#4829](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4829)
  - *admin*: Adjust license notices of A2-only source [#4884](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4884) (3.1.5.0)

v3.0.11.0

Toggle v3.0.11.0's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.0.11.0

Release 3.0.11.0 (Oct 1, 2025) -- compared to 3.0.10.1
-------------------------------------------------------
  - *oiiotool*: Allow easy splitting output of subimages by name [#4874](#4874)
  - *webp*: Support reading/writing the ICCProfile attribute for WepP files[#4878](#4878) (by Jesse Yurkovich)
  - *gif*: GIF output didn't handle FramesPerSecond attribute correctly [#4890](#4890)
  - *deps*: Test freetype 2.14 and document that it works [#4876](#4876)
  - *deps*: Look for boost headers for OpenVDBs older than 12 [#4873](#4873) (by Alex Fuller)
  - *deps*: Support for OpenColorIO 2.5 [#4916](#4916)

v3.1.6.0-rc1

Toggle v3.1.6.0-rc1's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.1.6.0-rc1

**Change highlights in RC1**
  - *oiiotool*: Use normalized path when creating wildcard path pattern [#4904](#4904) (by Jesse Yurkovich) (3.1.6.0)
  - *oiiotool*: Ignore empty subimage(s) when calculating non-zero region [#4909](#4909) (by Carine Touraille) (3.1.6.0)
  - *docs/python*: Add type hints to Python docs [#4908](#4908) (by Connie Chang) (3.1.6.0)
  - *build*: Fix some build issues encountered on a musl libc system [#4903](#4903) (by omcaif) (3.1.6.0)
  - *ci*: Sonar scan guard [#4902](#4902) (by vvalderrv) (3.1.6.0)
  - *ci*: Add more exceptions to when we test docs building [#4899](#4899) (3.1.6.0)
  - *ci*: Require all dependencies, with explicit exceptions [#4898](#4898) (3.1.6.0)

v3.1.5.0-beta2

Toggle v3.1.5.0-beta2's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.1.5.0-beta2

**Change highlights in beta 2**
  - *oiiotool*: Allow easy splitting of subimages by name [#4874](#4874) (3.1.5.0)
  - *ffmpeg*: Add ability to read CICP metadata [#4882](#4882) (by Brecht Van Lommel) (3.1.5.0)
  - *ffmpeg*: FFmpeg incorrectly set zero oiio:BitsPerSample [#4885](#4885) (by Brecht Van Lommel) (3.1.5.0)
  - *gif*: Gif output didn't handle FramesPerSecond attribute correctly [#4890](#4890) (3.1.5.0)
  - *heic*: Read and write of CICP and support for bit depth 10 and 12 [#4880](#4880) (by Brecht Van Lommel) (3.1.5.0)
  - *png*: CICP metadata support for PNG [#4746](#4746) (by Zach Lewis) (3.1.5.0)
  - *raw*: Add thumbnail support to the raw input plugin [#4887](#4887) (by Anton Dukhovnikov) (3.1.5.0)
  - *webp*: Support reading/writing the ICCProfile attribute [#4878](#4878) (by Jesse Yurkovich) (3.1.5.0)
  - *api*: Versioned namespace to preserve ABI compatibility between minor releases [#4869](#4869) (3.1.5.0)
  - *deps(freetype)*: Test freetype 2.14 and document that it works [#4876](#4876) (3.1.5.0)
  - *deps(ffmpeg)*: Ffmpeg 8 support [#4870](#4870) (3.1.5.0)
  - *deps(openvdb)*: Look for boost headers for OpenVDBs older than 12 [#4873](#4873) (by Alex Fuller) (3.1.5.0)
  - *deps(openexr)*: OpenEXR 3.4 supports two compression types for HTJ2K [#4871](#4871) (by Todica Ionut) (3.1.5.0)
  - *deps(openexr)*: Several OpenEXR and OpenJPH build related fixes [#4875](#4875) (3.1.5.0)
  - *deps(openjph)*: Fix openjph target use [#4894](#4894) (3.1.5.0)
  - *ci*: Fix broken python wheel building [#4855](#4855) (by Zach Lewis) (3.1.5.0)

v3.0.10.1

Toggle v3.0.10.1's commit message

Verified

This tag was signed with the committer’s verified signature.
lgritz Larry Gritz
v3.0.10.1

Release 3.0.10.1 (Sep 16, 2025) -- compared to 3.0.10.0
-------------------------------------------------------
  - *ci*: Fix broken python wheel building [#4886](#4886) [#4855](#4855) (by Zach Lewis)
  - *deps*: Several fixes to build against OpenEXR 3.4 and OpenJPH build related fixes [#4875](#4875)