## Gazebo Utils 4.x

## Gazebo Utils 4.0.0 (2025-09-30)

1. [Bazel] Enable github actions for gz-utils4
    * [Pull request #186](https://github.com/gazebosim/gz-utils/pull/186)

1. Update references of `main` to gz-utils4
    * [Pull request #185](https://github.com/gazebosim/gz-utils/pull/185)

1. packages.apt: use jetty package name
    * [Pull request #180](https://github.com/gazebosim/gz-utils/pull/180)

1. package.xml: depend on `cli11`
    * [Pull request #177](https://github.com/gazebosim/gz-utils/pull/177)

1. Fix include in `ExtraTestMacros.hh`
    * [Pull request #176](https://github.com/gazebosim/gz-utils/pull/176)

1. Bump gz-cmake and others in jetty
    * [Pull request #171](https://github.com/gazebosim/gz-utils/pull/171)
    * [Tracking issue](https://github.com/gazebo-tooling/release-tools/issues/1309)

1. Use 24.04 for doxygen CI
    * [Pull request #173](https://github.com/gazebosim/gz-utils/pull/173)

1. Disable `CLI11` vendoring by default
    * [Pull request #167](https://github.com/gazebosim/gz-utils/pull/167)

1. Bump main to gz-utils 4.0.0~pre1
    * [Pull request #154](https://github.com/gazebosim/gz-utils/pull/154)

## Gazebo Utils 3.x

### Gazebo Utils 3.1.1 (2025-02-12)

1. ci.yml: run cppcheck, cpplint on noble
    * [Pull request #166](https://github.com/gazebosim/gz-utils/pull/166)

1. Add ExtraTestMacros target
    * [Pull request #164](https://github.com/gazebosim/gz-utils/pull/164)

## Gazebo Utils 3.1.0 (2024-11-15)

1. Build Gazebo Utils with bzlmod
    * [Pull request #128](https://github.com/gazebosim/gz-utils/pull/128)
    * [Pull request #157](https://github.com/gazebosim/gz-utils/pull/157)
    * [Pull request #159](https://github.com/gazebosim/gz-utils/pull/159)
    * [Pull request #160](https://github.com/gazebosim/gz-utils/pull/160)
    * [Pull request #162](https://github.com/gazebosim/gz-utils/pull/162)

1. Add bzlmod CI 
    * [Pull request #153](https://github.com/gazebosim/gz-utils/pull/153)
    * [Pull request #158](https://github.com/gazebosim/gz-utils/pull/158)
    * [Pull request #156](https://github.com/gazebosim/gz-utils/pull/156)

1. Add expectations to subprocess test
    * [Pull request #155](https://github.com/gazebosim/gz-utils/pull/155)

1. Fix logging source location
    * [Pull request #150](https://github.com/gazebosim/gz-utils/pull/150)

## Gazebo Utils 3.0.0 (2024-09-25)

1. **Baseline:** this includes all changes from 2.2.0 and earlier.

1. Add EoL and use SetConsoleSinkLevel in example
    * [Pull request #148](https://github.com/gazebosim/gz-utils/pull/148)

1. Catch spdlog exception thrown when creating file
    * [Pull request #145](https://github.com/gazebosim/gz-utils/pull/145)

1. Include file name in log format
    * [Pull request #144](https://github.com/gazebosim/gz-utils/pull/144)

1. Update logger level and flush_on values
    * [Pull request #142](https://github.com/gazebosim/gz-utils/pull/142)

1. Use common formatter for console and file sinks
    * [Pull request #141](https://github.com/gazebosim/gz-utils/pull/141)

1. Logger updates
    * [Pull request #139](https://github.com/gazebosim/gz-utils/pull/139)

1. Update badges to point to gz-utils3 branch
    * [Pull request #137](https://github.com/gazebosim/gz-utils/pull/137)
    * [Pull request #138](https://github.com/gazebosim/gz-utils/pull/138)

1. Update changelog and add prepare for prereleases
    * [Pull request #136](https://github.com/gazebosim/gz-utils/pull/136)

1. Move spdlog::logger to gz-utils
    * [Pull request #134](https://github.com/gazebosim/gz-utils/pull/134)

1. Require cmake version 3.22.1
    * [Pull request #132](https://github.com/gazebosim/gz-utils/pull/132)

1. Add package.xml
    * [Pull request #125](https://github.com/gazebosim/gz-utils/pull/125)
    * [Pull request #131](https://github.com/gazebosim/gz-utils/pull/131)

1. bazel: build and test subprocess functionality
    * [Pull request #123](https://github.com/gazebosim/gz-utils/pull/123)
    * [Pull request #124](https://github.com/gazebosim/gz-utils/pull/124)

1. Update CI badges in README
    * [Pull request #120](https://github.com/gazebosim/gz-utils/pull/120)

1. Use HIDE_SYMBOLS_BY_DEFAULT
    * [Pull request #115](https://github.com/gazebosim/gz-utils/pull/115)
    * [Pull request #121](https://github.com/gazebosim/gz-utils/pull/121)

1. Remove ignition
    * [Pull request #100](https://github.com/gazebosim/gz-utils/pull/100)

1. Bumps in ionic: use gz-cmake4
    * [Pull request #111](https://github.com/gazebosim/gz-utils/pull/111)

1. Infrastructure
    * [Pull request #112](https://github.com/gazebosim/gz-utils/pull/112)
    * [Pull request #119](https://github.com/gazebosim/gz-utils/pull/119)
    * [Pull request #129](https://github.com/gazebosim/gz-utils/pull/129)

1. ⬆️  Bump main to 3.0.0~pre1
    * [Pull request #76](https://github.com/gazebosim/gz-utils/pull/76)

## Gazebo Utils 2.x

### Gazebo Utils 2.2.1 (2025-01-30)

1. Add package.xml
    * [Pull request #125](https://github.com/gazebosim/gz-utils/pull/125)

1. bazel: build and test subprocess functionality
    * [Pull request #123](https://github.com/gazebosim/gz-utils/pull/123)

1. Lint
    * [Pull request #124](https://github.com/gazebosim/gz-utils/pull/124)

1. Update CI badges in README
    * [Pull request #120](https://github.com/gazebosim/gz-utils/pull/120)

1. Infrastructure
    * [Pull request #131](https://github.com/gazebosim/gz-utils/pull/131)
    * [Pull request #119](https://github.com/gazebosim/gz-utils/pull/119)

## Gazebo Utils 2.2.0 (2023-11-08)

1. Make the single argument constructor inherit the env
    * [Pull request #113](https://github.com/gazebosim/gz-utils/pull/113)

1. Add new functions for manipulating the environment
    * [Pull request #114](https://github.com/gazebosim/gz-utils/pull/114)

1. Add license checking support to bazel
    * [Pull request #108](https://github.com/gazebosim/gz-utils/pull/108)

1. Include what you use
    * [Pull request #107](https://github.com/gazebosim/gz-utils/pull/107)

1. Ensure all licenses are reflected in the LICENSE file
    * [Pull request #106](https://github.com/gazebosim/gz-utils/pull/106)

1. Not sure why this was here, but it is unused
    * [Pull request #105](https://github.com/gazebosim/gz-utils/pull/105)

## Gazebo Utils 2.1.0 (2023-09-26)

1. Documentation fixes
    * [Pull request #104](https://github.com/gazebosim/gz-utils/pull/104)
    * [Pull request #103](https://github.com/gazebosim/gz-utils/pull/103)

1. Infrastructure
    * [Pull request #102](https://github.com/gazebosim/gz-utils/pull/102)
    * [Pull request #101](https://github.com/gazebosim/gz-utils/pull/101)
    * [Pull request #85](https://github.com/gazebosim/gz-utils/pull/85)

1. Extra test macros for ARM32/ARM64
    * [Pull request #99](https://github.com/gazebosim/gz-utils/pull/99)

1. Add a utility for spawning subprocesses
    * [Pull request #98](https://github.com/gazebosim/gz-utils/pull/98)

1. Support for bazel in Garden
    * [Pull request #95](https://github.com/gazebosim/gz-utils/pull/95)

1. Rename COPYING to LICENSE
    * [Pull request #93](https://github.com/gazebosim/gz-utils/pull/93)

1. Add missing config.hh include to gz headers
    * [Pull request #90](https://github.com/gazebosim/gz-utils/pull/90)

1. ign -> gz Migrate Ignition headers
    * [Pull request #84](https://github.com/gazebosim/gz-utils/pull/84)

## Gazebo Utils 2.0.0 (2022-09-22)

1. Improve install instructions
    * [Pull request #80](https://github.com/gazebosim/gz-utils/pull/80)

1. Round out ExtraTestMacros
    * [Pull request #74](https://github.com/gazebosim/gz-utils/pull/74)

1. Update GoogleTest to latest version
    * [Pull request #63](https://github.com/gazebosim/gz-utils/pull/63)
    * [Pull request #77](https://github.com/gazebosim/gz-utils/pull/77)

1. cli_TEST: Fix compatibility with CLI11 2.0
    * [Pull request #60](https://github.com/gazebosim/gz-utils/pull/60)

1. Include `<functional>` in FormatterFwd
    * [Pull request #58](https://github.com/gazebosim/gz-utils/pull/58)

1. `ign` to `gz` Migration
    * [Pull request #53](https://github.com/gazebosim/gz-utils/pull/53)
    * [Pull request #55](https://github.com/gazebosim/gz-utils/pull/55)
    * [Pull request #57](https://github.com/gazebosim/gz-utils/pull/57)
    * [Pull request #59](https://github.com/gazebosim/gz-utils/pull/59)
    * [Pull request #61](https://github.com/gazebosim/gz-utils/pull/61)
    * [Pull request #62](https://github.com/gazebosim/gz-utils/pull/62)
    * [Pull request #64](https://github.com/gazebosim/gz-utils/pull/64)
    * [Pull request #65](https://github.com/gazebosim/gz-utils/pull/65)
    * [Pull request #67](https://github.com/gazebosim/gz-utils/pull/67)
    * [Pull request #69](https://github.com/gazebosim/gz-utils/pull/69)
    * [Pull request #70](https://github.com/gazebosim/gz-utils/pull/70)

1. Infrastructure
    * [Pull request #43](https://github.com/gazebosim/gz-utils/pull/43)
    * [Pull request #49](https://github.com/gazebosim/gz-utils/pull/49)
    * [Pull request #72](https://github.com/gazebosim/gz-utils/pull/72)

## Gazebo Utils 1.x

## Gazebo Utils 1.5.1 (2022-12-15)

1. Add missing config.hh include to gz headers
    * [Pull request #90](https://github.com/gazebosim/gz-utils/pull/90)

## Gazebo Utils 1.5.0 (2022-12-08)

1. Ignition to Gazebo header migration.
    * [Pull request #84](https://github.com/gazebosim/gz-utils/pull/84)

1. CI workflow: use checkout v3.
    * [Pull request #85](https://github.com/gazebosim/gz-utils/pull/85)

## Gazebo Utils 1.4.1 (2022-11-17)

1. Include <functional> in FormatterFwd.
    * [Pull request #58](https://github.com/gazebosim/gz-utils/pull/58)

1. cli_TEST: Fix compatibility with CLI11 2.0.
    * [Pull request #60](https://github.com/gazebosim/gz-utils/pull/60)

1. Add code coverage ignore file.
    * [Pull request #72](https://github.com/gazebosim/gz-utils/pull/72)

## Gazebo Utils 1.4.0 (2022-03-29)

1. Enable cpplint
    * [Pull request #41](https://github.com/gazebosim/gz-utils/pull/41)

1. Add doxygen linters
    * [Pull request #44](https://github.com/gazebosim/gz-utils/pull/44)

1. Custom Gazebo CLI11 formatter
    * [Pull request #42](https://github.com/gazebosim/gz-utils/pull/42)

1. Drop all main functions from gtest files
    * [Pull request #45](https://github.com/gazebosim/gz-utils/pull/45)

1. Improvements to enable "-Wconversion"
    * [Pull request #46](https://github.com/gazebosim/gz-utils/pull/46)

## Gazebo Utils 1.3.0 (2022-02-24)

1. Fix inline namespace issue with clang6
    * [Pull request #39](https://github.com/gazebosim/gz-utils/pull/39)

1. Move ExtraTestMacros from gz-cmake
    * [Pull request #37](https://github.com/gazebosim/gz-utils/pull/37)

## Gazebo Utils 1.2.0 (2022-01-28)

1. Enable cpplint on focal
    * [Pull request #32](https://github.com/gazebosim/gz-utils/pull/32)

1. Add NeverDestroyed utility class
    * [Pull request #31](https://github.com/gazebosim/gz-utils/pull/31)

1. Move environment functionality to utils
    * [Pull request #30](https://github.com/gazebosim/gz-utils/pull/30)

1. ImplPtr Get method
    * [Pull request #27](https://github.com/gazebosim/gz-utils/pull/27)

## Gazebo Utils 1.1.0 (2021-09-02)

1. More complete bazel implementation
    * [Pull request #21](https://github.com/gazebosim/gz-utils/pull/21)

1. Add GZ_UTILS_VENDOR_CLI11 CMake option to optionally use external CLI11
    * [Pull request #19](https://github.com/gazebosim/gz-utils/pull/19)

1. Add an example program using CLI11
    * [Pull request #23](https://github.com/gazebosim/gz-utils/pull/23)

## Gazebo Utils 1.0.0 (2021-03-30)

1. Add basic support for bazel build system.
    * [Pull request #14](https://github.com/gazebosim/gz-utils/pull/14)

1. Gazebo ImplPtr
    * [Pull request 1](https://github.com/gazebosim/gz-utils/pull/1)
    * [Pull request 4](https://github.com/gazebosim/gz-utils/pull/4)

1. Vendor CLI11 library inside gz-utils
    * [Pull request 2](https://github.com/gazebosim/gz-utils/pull/2)

1. Update warning suppression macros
    * [Pull request 5](https://github.com/gazebosim/gz-utils/pull/5)
    * [Pull request 10](https://github.com/gazebosim/gz-utils/pull/10)
    * [Pull request 11](https://github.com/gazebosim/gz-utils/pull/11)

1. Pre-release cleanup
    * [Pull request #16](https://github.com/gazebosim/gz-utils/pull/16)
    * [Pull request #15](https://github.com/gazebosim/gz-utils/pull/15)
