Releases: bolsinga/itunes_json
Releases · bolsinga/itunes_json
1.7.1
Overview
- Swift Concurrency Enabled, Ready for Swift 6.0
- Simplify SQL/DB creation
- git-json tag bug fix
What's Changed
- Remove --time-test by @bolsinga in #343
- Explictly close the DBEnoder and its Database. by @bolsinga in #344
- Use typealias for clarity by @bolsinga in #345
- Rows are Sendable, emit Sendable items by @bolsinga in #346
- Add Database.transaction by @bolsinga in #347
- Values now bind themselves by @bolsinga in #348
- Statement.execute now takes errorStringBuilder by @bolsinga in #349
- Statement.bind() takes an ErrorStringBuilder by @bolsinga in #350
- Update actions to Xcode 15.3 by @bolsinga in #351
- Update SPM to Swift 5.10 by @bolsinga in #352
- separate creating a table into its own extension by @bolsinga in #353
- Simplify SQL string interpolation by @bolsinga in #354
- remove unused appendInterpolation method by @bolsinga in #355
- Change iTunes persistent id to a String by @bolsinga in #356
- use tableSchema parameter name for clarity by @bolsinga in #357
- numbers do not require options for SQL StringInterpolation. by @bolsinga in #358
- SQLBindableInsert now returns arguments for binding as array by @bolsinga in #359
- refactor Statement.bind() by @bolsinga in #360
- Fix tag names when there are multiple emptys by @bolsinga in #361
- Do not cache Statements by @bolsinga in #362
- Introduce Result by @bolsinga in #363
- remove Result to make things simpler. The extension made this clearer. by @bolsinga in #364
- Rename to PreparedStatement by @bolsinga in #365
- Introduce Database.Statement by @bolsinga in #366
- enable strict concurrency by @bolsinga in #367
- use reduce(into:) by @bolsinga in #368
- do not need async keyword here by @bolsinga in #369
- Use closure to get insert arguments by @bolsinga in #370
- just use .forEach directly by @bolsinga in #371
- Add TableBuilder protocol by @bolsinga in #372
- Remove BEGIN/COMMIT from sql source by @bolsinga in #373
- Add TableBuilder.statements by @bolsinga in #374
- clean up by @bolsinga in #375
Full Changelog: 1.7.0...1.7.1
1.7.0
- Allow tool to launch
git
with the same permissions, so that the user can manually allow the tool to work. Then when launched bylaunchd
, thegit
operations will have the same permissions, and will be able to run at those times.
What's Changed
- Add replace discCount and discNumber by @bolsinga in #316
- Create Repair Logger on demand by @bolsinga in #317
- pass loggingToken when creating Issue by @bolsinga in #318
- Pass loggingToken to Remedy validation by @bolsinga in #319
- TrackRowEncoder creates Logger on demand by @bolsinga in #320
- TrackRow Logger improvements by @bolsinga in #321
- Revert "Emit Item repair data for duplicate track play dates (#297)" by @bolsinga in #322
- Add TrackValidation by @bolsinga in #323
- Database has an internal Logging instance by @bolsinga in #324
- Track.debugLogInformation no longer needs LoggingToken by @bolsinga in #325
- remove LoggingToken global by @bolsinga in #326
- Improve filenames by @bolsinga in #327
- Add String.defaultDestinationName by @bolsinga in #332
- Add Destination.jsonGit by @bolsinga in #333
- Add DestinationFileWriting protocol by @bolsinga in #334
- separate into its own file by @bolsinga in #335
- more refactoring by @bolsinga in #336
- extract git isms into GitWriter by @bolsinga in #337
- git status and checkout main preamble by @bolsinga in #338
- use errorBuilder closure to build error to throw by @bolsinga in #339
- Return git standardOutput as an array of Strings by @bolsinga in #340
- Add String extensions to help out with git tag names by @bolsinga in #341
- Improve handling duplicate runs of a git commit with the same base backup name by @bolsinga in #342
Full Changelog: 1.6.1...1.7.0
1.6.1
Improve data repair update cycle by filtering by artist and improving the script that finds play data that does increment.
What's Changed
- db script updates by @bolsinga in #311
- Allow filtering by Artist for quick turnaround fixing by @bolsinga in #312
- Pass artist to filter as script argument into program. by @bolsinga in #313
- add background processing back by @bolsinga in #314
- Check for increasing dates differently by @bolsinga in #315
Full Changelog: 1.6.0...1.6.1
1.6.0
Overview
- Track Counts and Albums can be replaced, not just repaired.
- Songs can now be replaced.
- Batch runs can send in a token for logging convenience.
- Improve performance of Repair operations.
What's Changed
- remove unused code by @bolsinga in #300
- rename script by @bolsinga in #301
- LoggingToken prefixes all Logger subsystem by @bolsinga in #302
- Albums can now be Replaced instead of Repaired by @bolsinga in #303
- replacing album requires both artist and song by @bolsinga in #304
- only add the itunes.json file by @bolsinga in #305
- trackCount can be replaced instead of just repaired by @bolsinga in #306
- Allow "" to match nil album properties. by @bolsinga in #307
- replace Album if Artist - Album pair too by @bolsinga in #308
- Allow Track song name to be repaired by @bolsinga in #309
- Find Tracks with Issues by @bolsinga in #310
Full Changelog: 1.5.1...1.6.0
1.5.1
- Play Dates are now unique.
- Add --duplicates option to log duplicate play dates as Repair json.
- Add --logging-token to label logging for batch runs.
What's Changed
- Add logging token and more information to logs by @bolsinga in #293
- add --logging-token to the scripts by @bolsinga in #294
- add extension to Array for jsonData by @bolsinga in #295
- Track -> TrackRow in its own file. by @bolsinga in #296
- Emit Item repair data for duplicate track play dates by @bolsinga in #297
- Allow Tracks to be ignored by persistentID by @bolsinga in #298
- ensure every playDate is unique in the schema by @bolsinga in #299
Full Changelog: 1.5.0...1.5.1
1.5.0
- Re-written, more accurate Repair system.
- More logs about invalid data.
- Schema for plays now has restrictions that plays must have valid dates and counts greater than zero, improving data quality.
- Add tracks view to the database schema.
What's Changed
- Enforce play.delta > 0 constraint by @bolsinga in #228
- fix the playcount match check by @bolsinga in #229
- add more logging about invalid plays by @bolsinga in #230
- Add fix for empty play dates by @bolsinga in #231
- allow any source to be repaired by @bolsinga in #232
- Add tracks VIEW to db by @bolsinga in #233
- Add ids and better column names in tracks VIEW by @bolsinga in #234
- update to checkout v4 by @bolsinga in #235
- update to macos-14 by @bolsinga in #236
- Add dependabot. See bolsinga/site#756 by @bolsinga in #237
- Add Repair tests by @bolsinga in #238
- Fix.ignore is now exclusive by @bolsinga in #239
- Separate various repair files by @bolsinga in #240
- move repair into its own directory by @bolsinga in #241
- rename some files by @bolsinga in #242
- Add Remedy enumeration -- Just .ignore for now by @bolsinga in #243
- Add Remedy.sortArtist by @bolsinga in #244
- Print information about the state of Repair Issues. by @bolsinga in #245
- Add Remedy.correctKind and Criterion.album by @bolsinga in #246
- Add Remedy.correctYear by @bolsinga in #247
- Add Remedy.trackCount by @bolsinga in #248
- Use XCTUnwrap by @bolsinga in #249
- make tests resilient to different array orders by @bolsinga in #250
- Add Remedy.correctAlbum by @bolsinga in #251
- add more criteria to test by @bolsinga in #252
- Add Remedy.correctArtist by @bolsinga in #253
- Get more code coverage in Item+Issue by @bolsinga in #254
- Add internal Qualifier to help out validity for Criteria by @bolsinga in #255
- add remedyApplies func by @bolsinga in #256
- Use more descriptive Remedy names by @bolsinga in #257
- Separate [Criterion] validity checks into its own file. by @bolsinga in #258
- Separate Remedy validation into its own file by @bolsinga in #259
- remove carbon import by @bolsinga in #260
- fix spelling of criteria by @bolsinga in #261
- more separate files by @bolsinga in #262
- Issue now has Set by @bolsinga in #263
- Issue now has Set by @bolsinga in #264
- Make invalid Issue impossible by @bolsinga in #265
- Add Problem -> [Criterion] tests by @bolsinga in #266
- Add Fix -> [Remedy] tests by @bolsinga in #267
- Add Remedy/Criterion validation tests by @bolsinga in #268
- Add Remedy/Track applicable tests by @bolsinga in #269
- Add Criterion/Track applicable tests by @bolsinga in #270
- add tests for applying Remedy to Track by @bolsinga in #271
- simplify Issue validation tests by @bolsinga in #272
- Simplify Track.repair tests so they don't have to do all the variants. by @bolsinga in #273
- Add Remedy.repairEmptyTrackNumber by @bolsinga in #274
- Add Criterion.playCount by @bolsinga in #275
- add a criteria variant helper to unit tests by @bolsinga in #276
- Remove some test duplicates by @bolsinga in #277
- Add Criterion.playDate by @bolsinga in #278
- Add Remedy.replacePlayCount by @bolsinga in #279
- Add Remedy.replacePlayDate by @bolsinga in #280
- Add createRepair public func by @bolsinga in #281
- Add Repairing protocol by @bolsinga in #282
- Change to RepairSortArtist by @bolsinga in #283
- Log about duplicate Problems in the repair data by @bolsinga in #284
- Change to replaceSortArtist by @bolsinga in #285
- replacePlayCount no matter the current value by @bolsinga in #286
- playCount of nil matches Criterion.playCount(0) by @bolsinga in #287
- trackCount and trackNumber zero are also valid repair states. by @bolsinga in #288
- year zero is also a valid repair state. by @bolsinga in #289
- Convert Repair to use smarter Issue by @bolsinga in #290
- enforce no empty play date in the schema by @bolsinga in #291
- Log duplicate playdates by @bolsinga in #292
Full Changelog: 1.4.6...1.5.0