Page MenuHomePhabricator

Split reading lists with more articles than the limit per list into multiple lists
Closed, ResolvedPublic1 Estimated Story Points

Description

IMPORTANT: Limit size for number of articles per list is being changed from 1K to 5K pending completion of T186296

Background

There will be an initial system-imposed limit of 1,000 5,000 articles per user-created reading lists for the sync service.
As such, there needs to be a suitable migration action for existing Reading list users with lists over that limit.

User story

As a power reading list user with lists of >1k >5K articles, I want all my articles to be maintained when sync is enabled.

Proposed solution

  • Move each additional 1-1K 1-5K articles above the 1K 5K limit of a list into a separate list
  • Each additional list created will use the same name by appended with incrementing numbers (eg., a list called "Interesting" containing 2,001 10,001 articles will be split into 3 lists: "Interesting", "Interesting_1", "Interesting_2").
  • A message will be shown to any user where this operation occurs that "There is a limit of 1000 5,000 articles per synced reading list. Existing lists with more than this limit have been split into multiple lists."
01 - List before opting into sync
Reading list sync - split list flow 01.png (1×720 px, 106 KB)
02 - message after opting into sync
Reading list sync - split list flow 02.png (1×720 px, 161 KB)
03 My lists screen with default list and newly split lists
Reading list sync - split list flow 03.png (1×720 px, 191 KB)
QA steps

Pre-requisite: There is at least 1 reading list created that contains more than 1K 5K articles (prior to updating to the new app version).

  1. Open to view reading lists and note that for at least one reading list, the number of articles exceeds 1K 5K. For example a reading list called "Interesting" contains 2,001 10,001 articles
  2. Log in and opt-in to allow reading list sync
  3. Go to the reading list screen. It is expected that a message (see details in 'proposed solution') will be shown advising that lists with >1K >5 have been split; and the "Interesting" list should now be shown as containing 1K 5K articles, with 2 new reading lists created called "Interesting_1" and "Interesting_2", with 1,000 5,000, and 1 articles in them respectively.

Event Timeline

Charlotte set the point value for this task to 1.

Change 402464 had a related patch set uploaded (by Sharvaniharan; owner: Sharvaniharan):
[apps/android/wikipedia@master] [WIP] Split large reading lists

https://gerrit.wikimedia.org/r/402464

Change 403756 had a related patch set uploaded (by Sharvaniharan; owner: Sharvaniharan):
[apps/android/wikipedia@master] Split large reading lists

https://gerrit.wikimedia.org/r/403756

Change 402464 abandoned by Sharvaniharan:
Split large reading lists

Reason:
Too many build issues so new patch

https://gerrit.wikimedia.org/r/402464

Change 403756 merged by jenkins-bot:
[apps/android/wikipedia@master] Split large reading lists

https://gerrit.wikimedia.org/r/403756

This is not working for me on Nexus (6.0.1), Wikipedia v2.7.224-2018-02-06

image.png (1×1 px, 188 KB)

hi @Dbrant - I followed the QA steps in the task description, i.e., I first create a list with >1000 articles, then logged in and opted-in to allow syncing. Going to the "My lists" screen and also the list details and there was no splitting of that list, not even after exiting the app, then re-entering and pulling down to refresh on the My lists screen. Here's a demo: https://youtu.be/THCEfyA8jQ8

Ah right. At the moment we only have the logic to split large lists upon upgrading from the previous version of the app (and thereafter disallow any list to grow beyond 1000 items). Technically this logic on its own will fulfill the spirit of this task, since it guarantees that no one in Beta or Production will have any lists with >1000 items going forward.
(the only way you're able to create a list with >1000 items is through the developer menu)

Right-o, in that case I'll need to get an earlier version of the Alpha that doesn't have the default list but have the dev menu option to create a list with >1000 items quickly in order to test, and the test conditions of this ticket description should be updated to reflect the correct description.

As an aside cc @Charlotte, should we add a message somewhere advising that only versions of the app from X onwards supports syncing? Am envisioning a lot of people with multiple devices annoyed that sync isn't working because the app on their second device hasn't been upgraded yet.

Limit size may change pending completion of T186296

I believe this to be working, but had some trouble setting up the 5K+ list on an older build. I tested with the former 1K limit and it worked. I also spoke with @Dbrant who mentioned this "The upside is that the current version that's in production is already doing splitting for 1000-item lists, meaning that most lists that need to be split already have been split. When we release the update for 5000 items, it will serve more as a guard against exceeding 5000 items rather than splitting existing lists over 5000 items, which are likely extinct by now."

So I think this can go to sign off now.