All Versions
25
Latest Version
Avg Release Cycle
17 days
Latest Release
1290 days ago

Changelog History
Page 2

  • v0.11.0 Changes

    April 08, 2020

    πŸš€ Note: Because the generator in the 0.11.1 patch is compatible with 0.11.0, we’ve backported all artifacts from 0.11.1 into this release.

    Targets

    • Xcode 11.3 / Swift 5.1
    • 🍎 iOS 8.0+, macOS 10.14+, tvOS 9.0+

    πŸ’₯ Breaking

    • βœ… Enforce correct usage of class and protocol mocks by showing compile time errors when coercing mocks or using uninitialized class mocks. Use dummy(SomeType.self) instead of mock(SomeType.self) when passing initialized test objects as arguments that don’t require mocking or stubbing
      Andrew Chang
    • πŸ”„ Change CLI install command parameter names from mockingbird install --target Bird --destination BirdTests to mockingbird install --target BirdTests --source Bird
      Andrew Chang
    • πŸ‘Œ Improve Carthage installation process to work when directly running $ carthage update
      Andrew Chang

    Experimental

    • None

    ✨ Enhancements

    • βž• Add in order verification for enforcing relative invocation ordering
      Andrew Chang
    • πŸ‘Œ Support implicitly imported modules in mixed-source (Objective-C and Swift) targets
      Andrew Chang
    • 🀑 Handle negation and non-relative patterns in .mockingbird-ignore files
      Andrew Chang
    • βž• Add CocoaPods and Carthage example projects and integration tests
      Andrew Chang
    • πŸ‘Œ Improve integration of nominal count matchers, allowing for syntax like verify(foo.bar()).wasCalled(once) and verify(foo.bar()).wasCalled(atLeast(once))
      Andrew Chang
    • βž• Add fuzzy floating point argument matcher to standard testing library, usage: around(10.0, tolerance: 0.01)
      Andrew Chang
    • πŸ‘Œ Improve clarity and verboseness of test failure messages, showing invocation history
      Andrew Chang
    • βž• Add CustomStringConvertible to standard supporting source files
      Andrew Chang
    • πŸ‘Œ Improve clarity of setup and installation process in README, including a new Troubleshooting section
      Andrew Chang
    • πŸš€ Include prebuilt iOS, macOS, and tvOS frameworks in release artifacts
      Andrew Chang

    πŸ› Bug Fixes

    • πŸ‘Œ Support implicit TARGET_NAME build setting for module name resolution
      Andrew Chang
    • Specialize members inherited from generic classes
      Andrew Chang
    • πŸ›  Fix type coercion regression in type facade resolution method which was erasing type annotations
      Andrew Chang
    • πŸ›  Fix parsing optional function return types
      Andrew Chang
    • πŸ– Handle class-constrained protocols with designated initializers
      Andrew Chang
    • πŸ– Handle generic type shadowing top-level types and other generic types
      Andrew Chang
  • v0.10.0 Changes

    February 28, 2020

    πŸ’₯ Breaking

    • None

    Experimental

    • None

    ✨ Enhancements

    • πŸ‘Œ Improve handling of members imported from external modules
      Andrew Chang
    • πŸ‘Œ Improve handling of types and constraints inherited from grandparents
      Andrew Chang
    • πŸ‘‰ Use path prefix for CLI binary installation
      Pavel Ivashkov
    • βž• Add MockingbirdCli as a dependency to MockingbirdTests
      Pavel Ivashkov
    • πŸ“œ Parse and handle parenthesized expressions separately from tuples
      Andrew Chang
    • 🀑 Log warning when trying to mock a non-initializable class
      Andrew Chang
    • πŸ‘Œ Improve target module name resolving
      Andrew Chang

    πŸ› Bug Fixes

    • πŸ›  Fix interleaving of log output by manually flushing
      Andrew Chang
    • Rewrite type facade to use execution context approach for improved stability
      Andrew Chang
    • βž• Add support for reserved keyword parameter names by escaping
      Ryan Meisters
    • Match dot files with a wildcard in ignore rules
      Pavel Ivashkov
    • Ignore objc attributes for all generated hooks
      Andrew Chang
  • v0.9.0 Changes

    December 03, 2019

    πŸ’₯ Breaking

    • βœ‚ Remove automatic binary installation from pod install prepare_command. Not all environments (e.g. CI) allow modifying /usr/local/bin. Run $ make install-prebuilt as needed to set up your environment.
      Andrew Chang

    Experimental

    • None

    ✨ Enhancements

    • None

    πŸ› Bug Fixes

    • 🀑 Invalidate cached mocked modules when the CLI version changes
      Andrew Chang
    • Gather module names for inherited types
      Alvar Hansen
    • Include declarations in extensions when flattening inherited types
      Andrew Chang
    • πŸ›  Fix matching closures with wildcard argument matchers
      Andrew Chang
  • v0.8.0 Changes

    November 01, 2019

    πŸ’₯ Breaking

    • None

    Experimental

    • βž• Add per-module caching of generated mocks to reduce the overhead in reading large Xcode project files
      Andrew Chang

    ✨ Enhancements

    • πŸ‘Œ Improve CLI error messaging (#11)
      Sterling Hackley
    • πŸ‘Œ Improve support for mocking classes conforming to built-in Swift protocols with implicitly required initializers such as Decodable
      Andrew Chang
    • πŸ‘Œ Improve handling of imports and compilation directives within comment blocks and string literals
      Andrew Chang
    • βž• Add loglevel option to the CLI installer to specify a logging level to use when generating mocks
      Andrew Chang

    πŸ› Bug Fixes

  • v0.7.2

    October 24, 2019
  • v0.7.1

    October 22, 2019
  • v0.7.0 Changes

    September 23, 2019

    πŸ’₯ Breaking

    • None

    Experimental

    • None

    ✨ Enhancements

    • πŸ‘Œ Add ability to provide supporting source files for mocking references to types defined in external modules
      Andrew Chang
    • πŸ‘Œ Support types, methods, and variables wrapped in conditional compilation blocks
      Andrew Chang
    • Infer .xcodeproj file from current working directory when running installer
      Andrew Chang
    • πŸ‘Œ Support nested Self protocol conformance in generic where clause
      Andrew Chang
    • πŸ‘Œ Support associated types conforming to multiple types
      Andrew Chang
    • πŸ‘Œ Support Xcode 11 and Swift 5.1
      Andrew Chang
    • βœ‚ Remove per-file inlined Synchronized class
      Andrew Chang

    πŸ› Bug Fixes

    • πŸ›  Fix flaky mock generation due to Xcode running build phases in parallel
      Andrew Chang
    • πŸ›  Fix CLI installer not properly uninstalling existing build phases
      Andrew Chang
    • πŸ›  Fix broken tests due to a regression in Swift 5.1 with handling self-referencing generics
      Andrew Chang
    • πŸ›  Fix false positives from variable type inference system
      Andrew Chang
    • πŸ›  Fix type qualification for types nested in extensions
      Andrew Chang
  • v0.6.1 Changes

    September 18, 2019

    Patch Notes

    • πŸ›  Fix CocoaPods regression caused by renaming the Podspec from Mockingbird to MockingbirdFramework
      Andrew Chang
    • πŸ›  Fix handling of opaque types with designated initializers
      Andrew Chang
    • πŸ›  Fix automatic conformance of Codable / Encodable / Decodable opaque types
      Andrew Chang
  • v0.6.0 Changes

    September 17, 2019

    Notes

    πŸš€ This is a quiet release of Mockingbird to gather initial developer feedback before the full rollout next week.

    πŸ’₯ Breaking

    • πŸ“‡ Rename --src-targets to --targets in the CLI installer for simplicity
      Andrew Chang

    Experimental

    • 🀑 Flag mocked types that inherit unparsed types, such as from the Swift standard library and auto-generate conformance for common Self constrained protocols in the Swift standard library
      Andrew Chang

    ✨ Enhancements

    • βž• Add --verbose and --quiet logging options to CLI
      Andrew Chang
    • βž• Add CI support to the repo using GitHub Actions which builds, installs, and tests the framework and CLI
      Andrew Chang
    • Return an exit status code of 1 when a fatal CLI error occurs
      Andrew Chang
    • πŸ”¨ Refactor mock generation pipeline rendering step for improved semantics and clarity
      Andrew Chang
    • πŸ‘Œ Improve TypeFacade synchronization implementation
      Andrew Chang

    πŸ› Bug Fixes

    • πŸ›  Fix incorrect counting of invocations for overloaded methods
      Andrew Chang
    • πŸ›  Fix incorrect type qualification level for types which could be shadowed by types defined in external modules
      Andrew Chang
    • πŸ›  Fix mocking types that inherit types with non-public initializers defined in external modules
      Andrew Chang
    • πŸ›  Fix inherited associated type protocols and Self constrained protocols that require type qualification
      Andrew Chang
    • πŸ›  Fix conformance-based generic where clauses and type qualification of generic where clauses
      Andrew Chang
    • πŸ›  Fix support for rethrowing methods
      Andrew Chang
    • πŸ›  Fix mocking empty types with conformance or inheritance
      Andrew Chang
    • πŸ›  Fix incorrect de-duplication of inherited members in class mocks
      Andrew Chang
  • v0.5.0 Changes

    September 14, 2019

    πŸ’₯ Breaking

    • None

    Experimental

    • None

    ✨ Enhancements

    • βž• Add support for using a .mockingbird-ignore file to exclude sources or source directories from being mocked
      Andrew Chang
    • βœ… Make mockingbird install fully set up a unit test target by accepting explicit source and destination targets, --src-targets and --destination respectively
      Andrew Chang
    • πŸ‘Œ Support os.log signposts for improved instrumentation when using Instruments.app
      Andrew Chang
    • πŸ‘Œ Improve CLI error handling for malformed or missing arguments
      Andrew Chang
    • πŸ‘ Allow binary pinning by not removing prebuilt binary when running make install-prebuilt
      Andrew Chang
    • πŸ‘Œ Improve performance when writing generated mock files with many mocked types
      Andrew Chang
    • πŸ‘Œ Improve performance of running type specialization on types that don’t require specialization
      Andrew Chang
    • βž• Add GitHub report issue template
      Andrew Chang
    • βž• Add instructions on how to link Mockingbird to a unit test target when building from source
      Andrew Chang

    πŸ› Bug Fixes

    • πŸ›  Fix parsing non-open declarations in external modules
      Andrew Chang