# Changelog All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## 0.6.0 (18 Aug 2025) ### Added - [#258][]: Archive mode: a new mockgen mode that generates mocks out of archive files. - [#262][]: Support for specifying mock names when using the `_gomock_archive` bazel rule. ### Fixed - [#276][]: Fixed mockgen errors with go1.25 due to outdated golang.org/x/tools dependency. [#258]: https://github.com/uber-go/mock/pull/258 [#262]: https://github.com/uber-go/mock/pull/262 [#276]: https://github.com/uber-go/mock/pull/276 ## 0.5.2 (28 Apr 2025) ### Fixed - [#248][]: Fixed an issue with type aliases not being included in generated code correctly. [#248]: https://github.com/uber-go/mock/pull/248 ## 0.5.1 (7 Apr 2025) ### Fixed - [#220][]: Package mode will now generate code that uses aliases of types when they are used in the source. - [#219][]: Fixed a collision between function argument names and package names in generated code. - [#165][]: Fixed an issue where aliases specified by `-imports` were not being respected in generated code. [#220]: https://github.com/uber-go/mock/pull/220 [#219]: https://github.com/uber-go/mock/pull/219 [#165]: https://github.com/uber-go/mock/pull/165 Thanks to @mtoader and @bstncartwright for their contributions to this release. ## 0.5.0 (15 Oct 2024) ### Added - [#153][]: Add `--write_command_comment` flag to specify whether to include `Generated by this command` comment. - [#191][]: Add `--build_constraint` flag to add `//go:build` directives to generated mocks - [#214][]: Add gob mode to support custom package loading techniques in place of --exec_only ### Changed - [#181][]: Made mockgen faster by changing flags passed to `go list`. - [#183][]: Made `Cond` matcher generic. - [#204][]: Removed `ISGOMOCK()` from generated mocks. - [#207][]: Deprecated reflect mode and replaced it with the new package mode. ### Fixed - [#144][]: Fix a deadlock that can happen when mocking an interface that matches `fmt.Stringer`. - [#168][]: Fix an issue where the "generated by" comment was being included in the package comment of generated mocks. [#144]: https://github.com/uber-go/mock/pull/144 [#153]: https://github.com/uber-go/mock/pull/153 [#168]: https://github.com/uber-go/mock/pull/168 [#181]: https://github.com/uber-go/mock/pull/181 [#183]: https://github.com/uber-go/mock/pull/183 [#191]: https://github.com/uber-go/mock/pull/191 [#204]: https://github.com/uber-go/mock/pull/204 [#207]: https://github.com/uber-go/mock/pull/207 [#214]: https://github.com/uber-go/mock/pull/214 Thanks to @tulzke @JacobOaks @ARR4N @sashamelentyev @sywhang @fasmat @eyasy1217 @ghouscht @tie @Neo2308 @carson-brill @alexandear @sodul @nbgraham for their contributions this release. ## 0.4.0 (20 Dec 2023) ### Added - [#63][]: `AnyOf` matcher for values that satisfy at least one matcher. - [#114][]: `Regex` matcher. ### Fixed - [#93][]: Ignore interfaces that contain type constraints. - [#101][]: Fix race condition on Controller.Satisfied. - [#121][]: Fix paths for windows. - [#127][]: Propagate -mock_names to Recorder and ReturnCall types. - [#132][]: Sanitize "any" package names. [#63]: https://github.com/uber-go/mock/pull/63 [#93]: https://github.com/uber-go/mock/pull/93 [#101]: https://github.com/uber-go/mock/pull/101 [#114]: https://github.com/uber-go/mock/pull/114 [#121]: https://github.com/uber-go/mock/pull/121 [#127]: https://github.com/uber-go/mock/pull/127 [#132]: https://github.com/uber-go/mock/pull/132 Thanks to @favonia @hoonmin @pshopper @davidharrigan @dlsniper @merrett010 @craig65535 @chemidy @tulzke @UnAfraid @JacobOaks @sywhang for their contributions this release. ## 0.3.0 (15 Sep 2023) ### Added - [#13][]: Support for embedded generic interfaces. - [#33][]: `-write_source_comment` for writing the original file or interface names in the generated code. - [#46][]: `-write-generate-directive` for generating go:generate directives into the generated mock. - [#60][]: `Cond` matcher for specifying a conditional matcher as the result of a given function. - [#72][]: `exclude_interfaces` flag for specifying list of interfaces to exclude from mock generation. ### Fixed - [#41][]: A bug with specifying local import name with `-imports` flag. - [#52][]: A panic that occurs in `gob.Register` when used in conjunction with golang/mock. - [#78][]: `InOrder` can be used with type-safe mocks generated with `-typed` flag. [#13]: https://github.com/uber-go/mock/pull/13 [#33]: https://github.com/uber-go/mock/pull/33 [#41]: https://github.com/uber-go/mock/pull/41 [#46]: https://github.com/uber-go/mock/pull/46 [#52]: https://github.com/uber-go/mock/pull/52 [#60]: https://github.com/uber-go/mock/pull/60 [#72]: https://github.com/uber-go/mock/pull/72 [#78]: https://github.com/uber-go/mock/pull/78 Thanks to @alexandear, @bcho, @deathiop, @sivchari, @k3forx, @n0trace, @utgwkk, @ErfanMomeniii, @bcho, @damianopetrungaro, @Tulzke, and @EstebanOlmedo for their contributions to this release. ## 0.2.0 (06 Jul 2023) ### Added - `Controller.Satisfied` that lets you check whether all expected calls bound to a Controller have been satisfied. - `NewController` now takes optional `ControllerOption` parameter. - `WithOverridableExpectations` is a `ControllerOption` that configures Controller to override existing expectations upon a new EXPECT(). - `-typed` flag for generating type-safe methods in the generated mock. ## 0.1.0 (29 Jun 2023) This is a minor version that mirrors the original golang/mock project that this project originates from. Any users on golang/mock project should be able to migrate to this project as-is, and expect exact same set of features (apart from supported Go versions. See [README](README.md#supported-go-versions) for more details.