The latest OS version that my Macbook can run is macOS Catalina (10.15.7), which unfortunately means that the latest Anki version I can run is 24.11 (87ccd24e). It’s using Python 3.9.18, Qt 5.14.2 and PyQt 5.14.1. All my other devices (PC, Android, iPad) uses the latest Anki versions.
I see on Github that updates and changes are constantly being done to FSRS, which makes me somewhat concerned. Will using an old Anki version somehow mess up the scheduling of my cards? Can I add cards on my Macbook and then sync with all my devices, without issues?
In the best of worlds, all the core features of Anki should be usable on “old” hardware/OS, and everything that revolves around scheduling is definitely “core”. I can’t be the only one using “old” hardware (my MacBook 2012 is plenty enough for my work, and Anki is no match for it). Does anyone know why macOS 12+ is required? Is it a Qt thing? Would it be feasible to remove the modules requiring macOS 12+ and create binaries for older Macs?
It’s also a real bummer that some add-ons have stopped working with the newer Anki releases, one specifically that I use frequnetly is “Syntax Highlighting (NG)”.
The ongoing changes to FSRS can be fairly characterized as “fine-tuning,” so you are fine using any version of FSRS. They are all compatible with each other.
Each card will be scheduled based on the parameters and FSRS code that exist on the device where you study it. Even if another device would have scheduled a card differently it won’t cause issues to study it on a different device the next time, or to edit the note on another device. [As long as you are being careful with your syncing! Sync when you open the app AND when you close/leave the app, on every device, every time.]
To be clear, you’re using the released version of AnkiDroid, which is using the same FSRS as desktop Anki 24.11 – and those are only 1 version behind what you’re using on AnkiMobile. As your desktop Anki falls further behind, it sounds like you’re already not studying cards there. You’ll also want to make sure you’re managing your FSRS parameters (optimization, rescheduling, etc.) on the devices you’re studying on.
Anki depends on third-party libraries, and they drop support for older platforms when the cost of targeting them can no longer be justified by the comparatively small userbase.
Interesting. So the actual card scheduling only happen at study time, not “sync time”? Because the scheduling is controlled by the FSRS code in the Anki binaries (that at most only changes per Anki version)? But the parameters must surely sync between devices? My major concern was that by simply doing an open/sync->add/edit->sync/close on Anki 24.11, it would mess with e.g. the parameters, and then this mess would spill over to e.g. AnkiMobile. Maybe not a huge concern right now, but eventually will be when version 24.11 falls far behind.
Exactly, or at least I can make sure that I don’t, and only add/edit cards there. ~90% of the studying happens on AnkiMobile (iPad), ~10% on AnkiDroid.
So I guess this means that I should never ever, if I want a consistent scheduling, update the parameters on macOS Anki 24.11? But instead update them on AnkiMobile and/or Anki desktop (my Windows PC has the latest Anki)?
AnkiWeb only helps in getting data from one device to another or having a cloud backup. Some people don’t use AnkiWeb but use their own syncing setup and some people don’t sync at all.
Yeah, only optimise on latest versions. If you however end up doing it, you can fix that by optimising on a latest version and then sending that change to every other device.
I understand. Every large software project eventually stumbles upon this issue. Well, it seems that the card scheduling maybe is not the cause for concern that I thought it would be, so I’m happy using Anki 24.11 until my MacBook eventually dies on me, in 5 years or so
Right, and all the scheduling data (next due dates, etc) must be synced alongside all the cards. Or they are “attached to” the cards, I have no idea how the format looks, but that’s neither here nor there. My concern was that when the card data gets synced to my Anki 24.11 (from AnkiWeb), it would somehow immediately pollute the data with inaccurate FSRS parameters and other bad stuff happening (potentially slowly and therefore I would only notice something when my studying is going bonkers and my whole collection is destroyed).
They do, but the parameters that go with one version of FSRS don’t overwrite the parameters that go with a different version of FSRS. That’s how backward/forward-compatibility in preserved. [possibly outdated, see below]
If you aren’t in a study session or grading a card, FSRS just sits there quietly doing nothing.
It’s fine for you to study any card, on any device, with any version of Anki/FSRS. One version of FSRS won’t necessarily schedule the card for the same next due date as another version would.
Based on that, I may be working with outdated information. As I understood it, the parameters for different versions are stored separately, so you can optimize on any version you want. And in fact, if you’ve got a version mix-match, you would have to optimize each version to get updated parameters.
What happens if you, for instance, have a 17-param FSRS on one device and a 21-param FSRS on another device?
Did the system settle on the first 17 parameters being identical, so the extra 4 are just ignored by a 17-param FSRS?
If you have a 21-param version of FSRS but you only have 17 parameters saved (you’ve upgraded to a 21-param version, but haven’t optimized yet – or you have this version mix-match and you optimized on the 17-param version) – what happens then?
Oh yes, that was done for FSRS-5 and maybe also this time. But for other cases, [when params1.length = params2.length] I don’t think we store the params separately.
Though parameters are stored separately for different FSRS versions, memory states of cards are not. Memory states are recalculated upon optimizing parameters.
So, if your devices have different major versions (e.g. FSRS 4 vs 5 vs 6) of FSRS, it is best to optimize the parameters on the device where you do most/all of your reviews.
[I would say that for perfect multi-device support, Anki should store the memory states of different FSRS major versions separately. But, that’s probably too much work and on each review, Anki would need to delete the values that it is not using from that particular card so that we don’t end up having outdated DSR values saved in the card.]
Here, sorata is probably talking about the minor changes. For example, the FSRS changes between 24.11 and 25.02. These versions are 100% compatible. So, it is best to optimize on the latest version so as to take advantage of the latest improvements.