diff --git a/README.md b/README.md index d1eb6b3..45bdd66 100644 --- a/README.md +++ b/README.md @@ -170,17 +170,15 @@ individual implementations. Refer to their documentation for specifics. ## Changelog -* `3.0.0` +* `2.1.0` * Actual JSON encoding has **not** changed, so this is compatible with JSON - generated by `2.0.0`, but validation is more strict on things that should - be non-negative (which would not normally have been written by `2.0.0`, so + generated by `2.0.1`, but validation is more strict on things that should + be non-negative (which would not normally have been written by `2.0.1`, so it should not cause issues). * 🐛 **Bugfix:** For all algorithms, equivalently-due cards would appear in - reverse input order. This shuffles their order instead, to prevent the - same ordering from occurring repeatedly. + reverse input order. This shuffles their order instead, to prevent the + same ordering from occurring repeatedly. * `SpacedRepetition.Leitner` - * 💥 **Breaking:** `lastSeen` is now `lastReviewed` in `QueueDetails`, to be - more explicit/consistent with naming. * 🏷️ `NumberOfBoxes` is now exposed (but still opaque), so you may write type signatures with it. * 📝 Note that cards will be graduated after answering (even with `Pass`) if @@ -191,19 +189,7 @@ individual implementations. Refer to their documentation for specifics. couldn't cause problems by returning zero prior to this version (shh...). * ⚡️ Tail-call optimized `fibonacciSpacing`, so you can have intervals of 10^38 years for your 200th box if you're an eternal but not omniscient being. - * `SpacedRepetition.SMTwo` - * 💥 **Breaking:** `lastSeen` is now `lastReviewed` in `QueueDetails`, to be - more explicit/consistent with naming. * `SpacedRepetition.SMTwoAnki` - * 💥 **Breaking:** `lastSeen` is now `lastReviewed` in `QueueDetails`, to be - more explicit/consistent with naming. - * (Technically) **Breaking:** `AnkiSettings.startingEase` is now an `Ease`, - not a `Float`. This should not actually require any effort on your part, - as it is still created using `setStartingEase` in the exact same way. - * (Technically) **Breaking:** `AnkiSettings.leechThreshold` is now a - `Natural`, not an `Int`. This should not actually require any effort on - your part, as it is still created using `setLeechThreshold` in the exact - same way. * 🐛 **Bugfix:** Ensure that cards always graduate from being "lapsed" *regardless of the answer if there are no lapse steps*. This was the behavior specified in the documentation of `lapseSteps`, but it wasn't @@ -227,15 +213,12 @@ individual implementations. Refer to their documentation for specifics. already been partially studied to remove previously-extant `newSteps`. * 🚸 `getLeeches` now returns cards with the same number of lapses in order of their appearance in the input deck. - * 🏷️ `Ease`, `TimeInterval`, `Days`, `Minutes`, and `Natural` are now exposed - (but still opaque), so you may write type signatures with them. + * 🏷️ `TimeInterval`, `Days`, and `Minutes` are now exposed (but still + opaque), so you may write type signatures with them. * 📝 Fix broken links to Anki documentation, since the URLs moved. * 🩹 Fix bug in non-exposed function. This bug could not have actually caused erroneous behavior in any exposed functions, but it might have going forwards had its output been used for something else. - * `SpacedRepetition.SMTwoPlus` - * 💥 **Breaking:** `lastSeen` is now `lastReviewed` in `QueueDetails`, to be - more explicit/consistent with naming. * `2.0.1` -- 🐛 Fixed a bug in `SpacedRepetition.SMTwoAnki` that caused the extra interval from studying an overdue card to not count with `Good` answers. Per the algorithm, half of the overdue amount should be included in