Anki-Android icon indicating copy to clipboard operation
Anki-Android copied to clipboard

build(deps): adopt anki upstream 25.06b1 - do not merge, yet

Open mikehardy opened this issue 10 months ago • 7 comments

This is a draft for feasibility check of the new release

Some interesting issues that seem persistent in local testing:

  1. something changed about scheduling ? We have a violated date expectation
SchedulerTest > test_nextIvlV2 FAILED
    java.lang.AssertionError: 
    Expected: "10.8mo"
         but: was "10.7mo"
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
        at com.ichi2.libanki.SchedulerTest.test_nextIvlV2(SchedulerTest.kt:627)
  1. there appears to be a new typescript function we need a handler for (what an excellent test!)
PostRequestHandlerTest > All backend typescript functions should be handled FAILED
    java.lang.AssertionError: Mapping exists for every TS backend function call
    Expected: iterable with items ["setWantsAbort", "getCsvMetadata", "getGraphPreferences", "importJsonString", "setGraphPreferences", "simulateFsrsReview", "getImageOcclusionFields", "getNotetypeNames", "getFieldNames", "graphs", "cardStats", "getSchedulingStatesWithContext", "getDeckConfigsForUpdate", "computeOptimalRetention", "completeTag", "computeFsrsParams", "getImageOcclusionNote", "importDone", "getImageForOcclusion", "getImportAnkiPackagePresets", "evaluateParams", "i18nResources", "setSchedulingStates", "changeNotetype", "getDeckNames", "importJsonFile", "congratsInfo", "getChangeNotetypeInfo", "importCsv", "updateDeckConfigs", "deckOptionsReady", "updateImageOcclusionNote", "deckOptionsRequireClose", "addImageOcclusionNote", "latestProgress", "searchInBrowser", "importAnkiPackage"] in any order
         but: not matched: "getIgnoredBeforeCount"
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at com.ichi2.anki.pages.PostRequestHandlerTest.All backend typescript functions should be handled(PostRequestHandlerTest.kt:34)

There may be others but these two seem pretty obviously persistent and in need of a deeper investigation + forward port

mikehardy avatar Jun 12 '25 15:06 mikehardy

something changed about scheduling ?

I changed the definition of a month:

  • https://github.com/ankitects/anki/pull/3901

user1823 avatar Jun 12 '25 15:06 user1823

Cheers! Fixed both

david-allison avatar Jun 12 '25 15:06 david-allison

Next step here is user testing, especially of upstream-ish anki things (all the web-tech surfaced through Backend, e.g. Image Occlusion, deck options etc etc) to make sure things are actually working vs just seeming-to-be-working with what we check in CI here.

Seems to be a fairly easy update though, 🤞

mikehardy avatar Jun 13 '25 16:06 mikehardy

Force push overwrote my fixes, needs reapplying

https://github.com/ankidroid/Anki-Android/commit/f6d341c6a762f7f8b3d569953f1bad833e45b265

https://github.com/ankidroid/Anki-Android/compare/2ce1d8d4a040ede46211493df6eb1d8217a884c1..f6d341c6a762f7f8b3d569953f1bad833e45b265

david-allison avatar Jun 15 '25 20:06 david-allison

One new feature that's missing is the Grade now option in the browser, which was added by

  • https://github.com/ankitects/anki/pull/3840
  • EDIT by David: https://github.com/ankidroid/Anki-Android/issues/18604

Just wondering: Like the test for new typescript functions, can we have a test that looks for new Python functions? Would such a test be useful or would it overwhelm us with Desktop-specific changes that AnkiDroid doesn't need to be concerned about?

user1823 avatar Jun 16 '25 06:06 user1823

@user1823 Remind us in a couple of versions, I don't think anyone has capacity for this right now, and we're still catching up (removing getColUnsafe and moving to standard backend functions)

Conceptually, I've wanted to do it for a while. I suspect @Arthur-Milchior would love it

david-allison avatar Jun 16 '25 10:06 david-allison

  • card.decay needs to be implemented
    • Can we add a test to ensure 'data loss' errors like this don't occur

david-allison avatar Jun 17 '25 04:06 david-allison

Beta ~~4~~ ~~5~~ 6 is now available: https://github.com/ankitects/anki/releases/tag/25.06b5

  • https://github.com/ankidroid/Anki-Android-Backend/pull/534
  • https://github.com/ankidroid/Anki-Android-Backend/pull/544

david-allison avatar Jun 20 '25 15:06 david-allison

does the hr element appear on the old reviewer? there were some changes to styling here: https://github.com/ankitects/anki/pull/4067

adding the css from there to the styling of a note type seems to make hr disappear on the old reviewer (probably an issue with background-color).

brishtibheja avatar Jun 24 '25 15:06 brishtibheja

does the hr element appear on the old reviewer? there were some changes to styling here: https://github.com/ankitects/anki/pull/4067

changes made there don't go automatically to the old reviewer.

BrayanDSO avatar Jun 27 '25 00:06 BrayanDSO

  • PartiallyRenderedCard needs is_empty

https://github.com/ankitects/anki/blob/fe5dfe9ec23130fa4616a4e91f10e5216df19d9d/pylib/anki/template.py#L224-L256

  • https://github.com/ankidroid/Anki-Android/pull/18688

david-allison avatar Jun 27 '25 17:06 david-allison

Ingested the force-push that rebased to main (thanks) altered it to point to the still-in-process b6 backend PR:

  • https://github.com/ankidroid/Anki-Android-Backend/pull/544

will fail to build at the moment, but will build once it's published and available in a couple hours, so a close/re-open should have it pass CI

mikehardy avatar Jun 28 '25 14:06 mikehardy