# 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.
