The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.0.0 (pre-release)
1 year ago
- Upgrade the source to compile with both Swift 4.2 and Swift 5. ([#201](https://github.com/mattrubin/OneTimePassword/pull/201), [#202](https://github.com/mattrubin/OneTimePassword/pull/202), [#204](https://github.com/mattrubin/OneTimePassword/pull/204), [#209](https://github.com/mattrubin/OneTimePassword/pull/209), [#215](https://github.com/mattrubin/OneTimePassword/pull/215), [#216](https://github.com/mattrubin/OneTimePassword/pull/216))
- Update the SwiftLint configuration, and move the SwiftLint build phase to a separate dedicated target so that new lint errors do not interfere with consumers of the framework. ([#212](https://github.com/mattrubin/OneTimePassword/pull/212), [#206](https://github.com/mattrubin/OneTimePassword/pull/206))
- Upgrade xcconfigs to enable new warnings introduced in Xcode 10.2 ([#203](https://github.com/mattrubin/OneTimePassword/pull/203))
- Enable additional linting and CI testing. ([#196](https://github.com/mattrubin/OneTimePassword/pull/196), [#192](https://github.com/mattrubin/OneTimePassword/pull/192))
- Satisfy various project-level warnings introduced in Xcode 10.2. ([#198](https://github.com/mattrubin/OneTimePassword/pull/198))
- Fix compilation errors and add CI testing for Xcode 10. ([#182](https://github.com/mattrubin/OneTimePassword/pull/182), [#186](https://github.com/mattrubin/OneTimePassword/pull/186))
- Enable several new SwiftLint opt-in rules. ([#187](https://github.com/mattrubin/OneTimePassword/pull/187))
- Ignore un-deserializable tokens in `allPersistentTokens()`. ([#179](https://github.com/mattrubin/OneTimePassword/pull/179))
- Synthesize Equatable conformance when compiling with Swift 4.1. ([#173](https://github.com/mattrubin/OneTimePassword/pull/173))
- Fix a warning about deprecation of cross-module struct initializers by simplifying test cases for impossible-to-create invalid Generators. ([#174](https://github.com/mattrubin/OneTimePassword/pull/174))
- Upgrade xcconfigs for Xcode 9.3. ([#172](https://github.com/mattrubin/OneTimePassword/pull/172))
- Enable several new SwiftLint opt-in rules. ([#175](https://github.com/mattrubin/OneTimePassword/pull/175))
- Add support for Swift 4.1. ([#168](https://github.com/mattrubin/OneTimePassword/pull/168))
- Update build and linter settings for Xcode 9.3. ([#167](https://github.com/mattrubin/OneTimePassword/pull/167))
- Upgrade to Swift 4 and Xcode 9. (#147, #149, #151, #153, #160)
- Handle keychain deserialization errors. (#161)
- Refactor token URL parsing. (#150)
- Refactor Generator validation. (#155)
- Update SwiftLint configuration and improve code formatting. (#148, #154, #159)
- Update CodeCov configuration. (#162)
- Fix an issue where CocoaPods was trying to build OneTimePassword with Swift 4. ([#157](https://github.com/mattrubin/OneTimePassword/pull/157))
- Fix the Base32-decoding function in the token creation example code. ([#134](https://github.com/mattrubin/OneTimePassword/pull/134))
- Tweak the Travis CI configuration to work around test timeout flakiness. ([#131](https://github.com/mattrubin/OneTimePassword/pull/131))
- Clean up some old Keychain code which was used to provide Xcode 7 backwards compatibility. ([#133](https://github.com/mattrubin/OneTimePassword/pull/133))
- Convert to Swift 3 and update the library API to follow the Swift [API Design Guidelines](https://swift.org/documentation/api-design-guidelines/)
([#74](https://github.com/mattrubin/OneTimePassword/pull/74), [#78](https://github.com/mattrubin/OneTimePassword/pull/78), [#80](https://github.com/mattrubin/OneTimePassword/pull/80), [#91](https://github.com/mattrubin/OneTimePassword/pull/91), [#100](https://github.com/mattrubin/OneTimePassword/pull/100), [#111](https://github.com/mattrubin/OneTimePassword/pull/111), [#113](https://github.com/mattrubin/OneTimePassword/pull/113), [#122](https://github.com/mattrubin/OneTimePassword/pull/122), [#123](https://github.com/mattrubin/OneTimePassword/pull/123), [#125](https://github.com/mattrubin/OneTimePassword/pull/125))
- Convert `password(at:)` to take a `Date` instead of a `TimeInterval` ([#124](https://github.com/mattrubin/OneTimePassword/pull/124))
- Update the SwiftLint configuration ([#120](https://github.com/mattrubin/OneTimePassword/pull/120))