docs-site/releases/betas/older.mdx
Build 576f0043 / 2021-01-30.
This beta is closer to 2.1.38 than the previous beta - it contains a bunch of bugfixes from beta 1, but feature changes have been cut, and will come back in 2.1.40. This is expected to be released as stable without further changes, if no issues are found in the next couple of days.
Please make sure to downgrade with beta 1, before opening beta 2.
Changes since 2.1.38 stable:
Build 32278813 / 2021-01-26.
New features:
decks, manage notetypes, and rename/remove saved searches (thanks to Abdo
and BlueGreenMagick).
(thanks to Henrik).
Filter button.
one two becomes`"one" AND "two"`) (thanks to Rumo).
(thanks to Henrik).
changing the selected deck) (thanks to Rumo).
x days (thanks to Henrik).
specific time periods (thanks to Henrik).
displayed by the graph (thanks to Henrik).
Henrik).
(thanks to Henrik).
(thanks to Henrik).
Bugfixes:
For developers:
Build 355e4cd5 / 2020-12-23.
If no issues are discovered, this will likely be released as 2.1.38 stable in a few days.
For developers:
Build d600bd58 / 2020-12-21.
Build 38406862 / 2020-12-18.
Build 56ac71ff / 2020-12-16.
For developers:
Build fe4fda70 / 2020-12-10.
Will become the next stable release in a few days if no further issues are found.
Build c505894b / 2020-12-07.
This is expected to be released as stable in a day or two without further changes, if no issues are discovered.
Build 5313447c / 2020-11-30.
This is nearing a stable release, so if you encounter any issues please let us know on the forums.
Build c1d15a8e / 2020-11-18.
For developers:
Build e0550b60 / 2020-11-12.
The way Anki is built and packaged has been reworked for this release, which should make developing Anki easier moving forward. These changes should be mostly invisible to end users, but if you notice any problems introduced in this beta, please let us know on the forums.
As part of these changes, the alternate Windows and Mac builds have been discontinued. If you're still using a 32-bit OS or a macOS version below 10.13, 2.1.35 is the last version that will work on your setup.
For developers, please see https://forums.ankiweb.net/t/changing-ankis-build-system-to-bazel/4737. Python 3.8 is now the minimum supported version, so feel free to go wild with the walrus operator.
Other changes:
Build 53a984ba / 2020-10-02.
Build 84dcaa86 / 2020-09-30.
* in searches.Build 8af8f565 / 2020-09-22.
Build 133fe851 / 2020-09-21.
Build 4662a9fe / 2020-08-28.
Build 7bcec00e / 2020-08-26.
Build 85d99f73 / 2020-08-21.
Build 2b1bcda9 / 2020-08-21.
Build 680b5e4b / 2020-08-19.
Build 83637199 / 2020-08-08.
Build 818012e0 / 2eee4cb0 / 2020-08-05.
Update 2020-08-06: Windows build repackaged to fix failure to start.
Build 1353590a / 2020-07-31.
Build 88fee1b7 / 2020-07-27.
Build 15c9cd91 / 2020-07-26.
Build ca8265a6 / 61e8611b / 2020-07-24.
Build 1b441f50 / 2020-07-21.
Build 7d8818f8 / 2020-07-17.
This is a candidate for the next stable release.
Build 61017a2e / 2020-07-16.
Build 116aeead / 2020-07-13.
Build 93425be8 / 2020-07-07.
Build cfc33815 / 2020-07-06.
Build 4d23a69e / 2020-07-01.
Build f44597bb / 2020-06-09.
Build ebce044b / 2020-06-02.
Reworked collection syncing. Some warnings:
Sync changes:
Other changes:
Build 97eadb78.
Performance improvements to:
updated).
The Browse screen.
The deck list.
The note types screen.
The card templates screen.
The database check.
Card generation changes:
optional fields.
will now add a blank card 1 instead of refusing to add the note.
clients may report the cards are blank, or try to clean them up when you use
the Empty Cards feature.
Cloze numbers over 499 are no longer supported.
Card template screen:
the screen.
switch between them with ctrl+1/2/3 or cmd+1/2/3.
template - they will be given a blank card 1 instead.
Scheduling:
on the parent.
Empty cards screen:
Database check:
Unicode normalization:
If you are studying rare CJK characters and wish to prevent them from being converted into modern equivalents, the following in the debug console will stop Anki from normalizing note text.
mw.col.conf["normalize_note_text"] = False
Other changes:
Build 359b9f5c.
w:something to search on word boundaries, eg:
w:dog\
search for "dog" on a word boundary - will match "dog", but not "doggy" or
"underdog".
w:dog*\
will match "dog" and "doggy", but not "underdog".
w:*dog\
will match "dog" and "underdog", but not "doggy".
Build 683f664d.
Build ec6c0f86.
Build 394f7c63.
This beta changes the macOS dark mode handling of the standard build:
Anki now solely relies on the night mode setting in the preferences to decide whether to show in light or dark mode. Some users wanted to run Anki in light mode while keeping the rest of their system dark, and there were various display problems when dark mode was changed after Anki started that couldn't be easily worked around.
Users who only use dark mode, and preferred the native look of widgets in dark mode, can achieve the previous appearance by running the following command in the terminal:
defaults write net.ankiweb.dtop NSRequiresAquaSystemAppearance -bool no
And the following in the debug console:
mw.pm.meta["dark_mode_widgets"] = True
This is hidden behind a debug console command because it requires the user ensure their system is always set to the same light/dark mode as Anki.
Other changes:
Build 0c5f22f4.
Build 16ab351b.
matches 'Maße').
Build d3964603.
Updated the way cards and deck options are loaded and saved. Most add-ons should not be affected, but a few will need minor tweaks. If you run into any issues and can reproduce them when add-ons are disabled, please let me know.
Other changes:
Build b1a8107a.
Please see beta 1 for most of the changes.
Build 9dda5cf6.
2.1.24 focuses on changes to the database layer and searching code.
Searching:
re:something to search via regular expression, eg:
re:\bdog\b will search for the word 'dog'. It has a word boundarycharacter (`\b`) at the start and end, so it will match 'a dog', but not 'a
doggy'.
front:re:t+1 would match "t1", "tt1" and so on in the Front field`re:über` will show a card that has "Über" on it.
nc:something (short for "no combining") can be used to search while ignoring
accents, eg nc:uber will match both "über" and "Über". This behaves the same
way as the "Ignore Accents" add-on, but is about 16x faster.field*:something.rated:x searches are now capped to a year instead of a month."foo\"bar"Database changes (mainly of interest to add-on developers):
Other changes:
A lot has changed in this beta, so some issues may have slipped through the cracks. If you run into any problems, please let me know.
Build 0ecc189a.
Build 131d37dc.
Please use File>Export to back up your collection with media before trying this beta. While big problems are unlikely, a backup is always a good thing to have.
Build f1734a47.
This has been released as 2.1.21 stable without the below changes - please see the 2.1.21 change notes.
Build 8960d12a.
Build 65ec9d19.
Build 683b7983.
Media syncing improvements:
Media check improvements:
Both media sync and the media check now place deleted files in a media.trash folder inside your profile, instead of placing the files in the system trash. Any files that have been sitting in that folder for a week or more will be deleted permanently when you next run a media check.
Other changes:
The upcoming 2.1.21 beta is introducing a new way to translate strings, and in order to support it, the translations website will be moving again.
The new system uses Fluent (https://projectfluent.org/) instead of gettext. This has a number of advantages:
Separate identifiers are used for each string instead the English text, which means the English text can be improved without breaking existing translations in other languages.
It is easier to add comments to the translation files to make things clearer for translators.
Plural support is more flexible, and translators can add different plural forms even if the original English text doesn't use separate single/plural forms.
Translations can be more easily split up into multiple files.
Only a small number of strings are currently using Fluent, and most of the text in Anki is still using gettext. The plan is to gradually move more strings over to Fluent over time.
Because Crowdin does not support Fluent, I've set up a separate translations site using Mozilla Pontoon. Both the new Fluent strings and the old gettext strings are available. You can view it in read-only mode by visiting https://i18n.ankiweb.net
Build d0284f75.
For a full list of changes since 2.1.19, please see https://apps.ankiweb.net/docs/changes.html
Build 1fbd925f.
Build 5d91580c.
Build 77912aa2/c70badcd/a4764e2a.
.replay-button svg [circle|path].Build 23f13a31.
Build d428b3b4.
Build 98041059.
Build 95b497cc.
{{tts en_US:Field}} on your card templates to use the text
to speech support built into Windows and macOS, changing the language code as
necessary.{{tts ja_JP voices=Apple_Otoya,Microsoft_Haruka:Field}}. The
voices you specify must match the language.for p in aqt.sound.av_player.players:
if v := getattr(p, 'get_available_voices', None): pp(v())
Build c9a46268.
Build fa564772.
The card template rendering process in Anki 2.1.20 has changed significantly under the hood, and most of the code that was in the anki/templates folder has gone away. Add-ons that were relying on hooks to modify the card rendering should continue to function, but add-ons that were using or monkey patching methods in the templates module will break, as those methods no longer exist.
I have looked through the add-ons on AnkiWeb that modify the card template, and believe most of them should be able to accomplish what they were doing before by using the new card_did_render and/or field_filter hooks. Examples of how each of them can be used are available here:
https://github.com/ankitects/anki-addons/blob/master/demos/
For add-ons that were using the furigana/hint field modifiers, they are available for copying in the template_legacy.py file.
If the hooks are insufficient for what your add-on is doing, please let me know within the next few weeks. If you're an end user and an add-on you use has broken, please let the add-on author know of this post.
In terms of user-visible changes:
The limit of 100 replacements on a template has been dropped.
The new approach allow add-ons to add fields without 'unknown field' messages appearing on mobile devices (once they've been updated)
Fields with a ':' character are no longer allowed. If you have a ':' in your fields, you can open and close the Cards screen to automatically remove the colon.
Templates that reference a field that doesn't exist will now only show an error, instead of partially rendering.
{{field}} references are ignored inside fields, so there is no risk of LaTeX/MathJax being interpreted as a field reference.
The <% %> alternate syntax is deprecated, as it is no longer necessary due to the above change.
Clearer errors when the user forgets to close a {{field}} reference, or mismatches open and close conditionals.
Anki 2.1.20 introduces a new hook system that allows for better code completion and type checking than the old system. For a short explanation and link to some sample add-ons, please see https://apps.ankiweb.net/docs/addons.html#new-hooks
Add-ons using the old hooks should continue to work, as the new hooks will automatically call the old hooks in most cases, and a few runHook/runFilter calls have been left in the codebase in the places where the new hooks differ significantly from the old ones.
There are a bunch of hooks that previously were called with no arguments, such as when a new deck is created. The new hooks will tend to pass the newly created item into the callback, but will not do so for the legacy hooks, to avoid breaking old code.
If anyone has feedback on the naming or the arguments of the new hooks, please let me know during the beta testing period, so they can be changed prior to add-on authors relying on them.
To go along with these changes, the policy on adding new hooks has also changed. In the past, Anki's add-on documentation suggested hooks were best left for code paths that multiple add-ons wanted to extend, but this resulted in an over-reliance on monkey patching, and has made things fragile. The add-on documentation has been updated to encourage add-on authors to submit pull requests for any hooks they need, and the hope is that the bulk of add-ons can move away from monkey patching in the future.
Build f4fb7319.
Build a4d38d65.
A bunch of behind-the-scenes changes to the code in this release. If you notice any regressions, please post on the beta testing thread.
Build 4cead7ef.
Build 518cc442.
Build bfcc8379.
The standard Mac and Linux builds have now been updated to the new toolkit as well - please report any regressions.
Build da942617.
Another Windows-only build.
Build ff6b58c2.
A Windows-only build, built with the latest toolkit version. Please report any improvements or regressions.
If you've previously customized the DPI/Scaling as described on https://apps.ankiweb.net/docs/knownissues21.html#text-size, please try running the beta without the customizations and report how you go.
In beta 2:
Build 81bdd860.
A Windows-only build, built with the latest toolkit version. Please report any improvements or regressions.
Build 4bc33e2f.
Build bb62a3c1.
Build bceb4feb.
Thanks to Arthur for contributing a number of fixes:
Build 2e7b7560.
This build updates the translation handling as part of the move to Crowdin. Some languages were missing some plural forms in the past - in order to prevent errors, the missing forms have been copied from the highest previous plural.
If you'd like to contribute to the translation effort, please see https://apps.ankiweb.net/docs/manual.html#translating-anki
Also:
Build 442df9d6.
This is a candidate for the next stable release, so if you encounter any issues, please let me know as soon as you can.