3.0! (technically 3.0.1)
This release contains breaking changes!
3.0 (actually 3.0.1) contains numerous enhancements and changes, most prominent:
- Fixes building with Xcode 12.
- Adds support for TTL (time to live caches).
- Numerous performance enhancements.
- Custom object serializer/deserializer.
- PINCaching protocol.
- Did we mention performance enhancements?
3.0.1 (2020-08-20)
Implemented enhancements:
Merged pull requests:
- Update PINOperation #277 (garrettmoon)
- Fix PINCacheTests compiling in Xcode 12.0b4 #276 (arangato)
- Remove BUCK files #274 (adlerj)
- Fix compiling in Xcode 12.0b4 #273 (zacwest)
- Fix the grammar in an assertion failure message #270 (jparise)
- Add Carthage for watchOS, fix macOS min deployment target version #269 (dreampiggy)
- Remove the unused CI directory #265 (jparise)
- Fix up analyze for github CI #264 (garrettmoon)
- Use correct class name in NSAssert() messages #263 (jparise)
- Check fileURL outside of the locked scope #262 (jparise)
- Remove Danger from the project #261 (jparise)
- Switch to GitHub Actions for CI #259 (jparise)
- Test that the "remove object" blocks are called #258 (jparise)
- Discrepancy between Header Comment and Implementation #trivial #257 (jlaws)
- Optimization
PINMemoryCache
trim to date #252 (kinarobin) - Optimize
PINMemoryCache
remove objects when receive memory warning notification #251 (kinarobin)
3.0.1 -- Beta 8
- [fix] Initing PINCache with TTL enabled should enable TTL on PINMemoryCache. #246
- [performance] Return TTL cache objects without waiting for all metadata to be read. #228
- [performance] Memory cache now performs some tasks such as trimming and removing experied objects with low priority. #234
3.0.1 -- Beta 7
- [fix] Fix up warnings and upgrade to PINOperation 1.1.1: #213
- [performance] Reduce locking churn in cleanup methods. #212
- [fix] Don't set file protection unless requested. #220
- [new] Add ability to set an object level TTL: #209
- [performance] Improve performance of age limit trimming: #224
3.0.1 -- Beta 6
- [fix] Add some sane limits to the disk cache: [#201]#201
- [new] Update enumeration methods to allow a stop flag to be flipped by caller: #204
- [performance] Improves cache miss performance by ~2 orders of magnitude on device: #202
- [performance] Significantly improve startup performance: #203
3.0.1 -- Beta 5
- [fix] Respect small byteLimit settings by checking object size in setObject: #198
- [new] Added an ability to set custom encoder/decoder for file names: #192
3.0.1-beta.4 (2017-02-16)
Merged pull requests:
- Sigh #174 (garrettmoon)
- Hopefully fixes building Carthage with --no-skip-binaries in PINRemot… #171 (garrettmoon)
- Add an analyze option in the makefile #170 (garrettmoon)
3.0.1-beta.3 (2017-02-10)
Merged pull requests:
- In which I painstakingly apply a patch Adlai created. #169 (garrettmoon)
- This is a temporary fix. Currently Carthage is required to build PINC… #168 (garrettmoon)
- Introduce PINCaching protocol #167 (maicki)
- Fix warnings due to changes of the designated initalizer #166 (maicki)
- Expose cache URL class method and allow specification of name prefix #163 (garrettmoon)
- Migrate to External PINOperation #160 (Adlai-Holler)
- Change the badge to build kite #159 (garrettmoon)
- Upgrade to 10.2 #158 (garrettmoon)
- Add support for buildkite. #157 (garrettmoon)
- Buck improvements #156 (nguyenhuy)
- Add a build script #154 (garrettmoon)
- Add the ability to set the maximum number of operations. #153 (garrettmoon)
- Support Buck build #152 (nguyenhuy)
- Support PINMemoryCache cost methods in PINCache #149 (msqr)
- Test that blocks are not retained after run on operation queue #147 (nguyenhuy)
- Address comments and improve PINCacheTests #146 (nguyenhuy)
- Support operation coallescing #141 (nguyenhuy)
3.0.1-beta.2 (2016-11-07)
Merged pull requests:
- Increase max operation count to 10 #140 (garrettmoon)
- Have sharedOperationQueue have at least 2 max operations. #139 (garrettmoon)
- Revert "Revert beta 2 in podspec until we're ready to publish." #138 (garrettmoon)
- Don't call the block if it's nil, duh. #132 (garrettmoon)
- Disable TTL commits until race conditions can be addressed. #131 (garrettmoon)
- Have Travis cache bundler and cocoapods deps #129 (jparise)
- Subspecs need to be valid on their own :/ #128 (garrettmoon)
- Adopt pin operation queue #127 (garrettmoon)
- Adds operation groups #125 (garrettmoon)
- Thread safety in tests #124 (garrettmoon)
- Add cancelAllOperations to PINOperationQueue #122 (maicki)
- Add waitUntilAllOperationsAreFinished to PINOperationQueue #121 (maicki)
- Add Nullability and Generics annotations #120 (maicki)
- Add ability to set operation priority #119 (garrettmoon)
- There's no need to set the file modification date on item set, it's u… #118 (garrettmoon)
- Add performance tests for disk cache. #117 (garrettmoon)
- Significantly improves PINDiskCache performance. ~20% improvement in … #116 (garrettmoon)
- Safe exceptions under ARC #115 (garrettmoon)
- Fix nullability specifier #114 (garrettmoon)
- Expose key for custom serializer and deserializer #111 (sainttail)
- Adds PINOperationQueue #108 (garrettmoon)
- Set Project to Use Spaces for Indentation #107 (Adlai-Holler)
- [PINMemoryCache] Replace Semaphore with pthread_mutex #106 (Adlai-Holler)
3.0.1-beta (2016-08-09)
Merged pull requests:
- Avoid holding lock while serializing / deserializing #104 (garrettmoon)
- Add support for a custom file extension #102 (alexanderedge)
- Added support for custom object serializer/deserializer #100 (skeeet)
3.0.0-beta (2016-07-22)
Merged pull requests:
- Remove background tasks #99 (garrettmoon)
- Remove locking on callback #97 (garrettmoon)