Page MenuHomePhabricator

Audit KaiOS app API usage for experimental or unstable endpoints
Closed, ResolvedPublic

Description

Context / Problem

Recently, the media PCS endpoint was deleted without notice or deprecation. That's OK because it was identified as "experimental". However, it caught us by surprise and broke the Wikipedia KaiOS app for a few hours before we could fix it. Fortunately the app is not yet in production but when it is, such a change will impact users and will be very hard to fix since we can release new versions but we can't force users to update.

Solution

The goal of this task is to list out the APIs currently used by the KaiOS app and assess the level of risk in collaboration with the team(s) maintaining those APIs.

Event Timeline

SBisson created this task.Mar 26 2020, 7:29 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMar 26 2020, 7:29 PM
AMuigai triaged this task as Medium priority.Apr 15 2020, 9:47 AM
SBisson claimed this task.Apr 17 2020, 2:49 PM
SBisson moved this task from Ready for Dev to Dev on the Inuka-Team (Kanban) board.

Here's the list of all APIs used by the KaiOS app as of April 17, 2020. We don't expect this list to change for the upcoming release. I've included the MediaWiki APIs for completeness.

APIEndpointStabilityNote / Purpose
MCSmobile-sectionsunstableGet article content
PCSsummarystableArticle preview
PCSmedia-listexperimentalGallery view
PCSrandomunstableHidden feature, useful for testing
MWquery / prefixsearchN/ASearch
MWquery / langlinksN/ARead article in other languages
MWquery / search / morelikeN/ASuggested articles
MWquery / imageinfoN/AMedia metadata (author, license, etc)

Pinging Product-Infrastructure-Team-Backlog (@dr0ptp4kt) for comments. Any red flags with the MCS/PCS usage? Any MW APIs that should be replaced with PCS? Thanks!

Noted, will get back to this ticket.

Heads up, I'm going to create a Sheet for us to work out each endpoint and will loop people in there and link to it from this ticket as well.

Here's the Sheet: https://docs.google.com/spreadsheets/d/1IKExDeGhA79pJ1ZzvifWKgwx77-bdRRBJvhvAMAbKeA/edit?usp=sharing

@JoeWalsh @Mholloway @bearND @MarkTraceur would you please take a look and add your feedback? I've hazarded my guesses, but more input would be helpful, as I have an incomplete picture.

@SBisson there are questions in that Sheet that I think you're also suited to answering, although you may need to give it a couple days of feedback.

@Gehel @WDoranWMF looping you in here. I was hoping we could get your teams' takes on these APIs in the Sheet as well. Are you the right people to ping or is there someone else? Understood you may need a little time to review, but wanted to get this on your radar as well.

Thanks all for your comments so far in the spreadsheet linked above.

I've filed T251795: [SPIKE] Consider fetching suggested articles from RESTbase and T251815: Consider fetching mediainfo from wbget* based on suggestions but I would consider them enhancements or optimizations.

The remaining question mark is around mobile-sections. Switching to mobile-html is not interesting for us since the needs of a 240x320 non-touch device are different from Android and iOS. Our idea was to stick to mobile-sections and eventually have a dedicated endpoint.

SBisson moved this task from Dev to Code Review on the Inuka-Team (Kanban) board.May 4 2020, 7:21 PM

(It's not strictly in code review but this column is still a better representation than "dev" of what is going on here)

@dr0ptp4kt just want to check that this is on your radar. We're getting ready to launch the app so we'd like to get to a plan that's comfortable for all teams around mobile-sections.

For me, a good plan would include

  1. how long we expect mobile-sections to stick around
  2. what is the recommendation for replacing mobile-sections and some understanding of the work involved

Looking forward to hear what other people think. Thanks!

@SBisson thank you for the ping. I'll set a meeting to discuss further.

eprodromou added a subscriber: eprodromou.

OK, this looks like something we should be watching.

Following up on the meeting, we believe as is the APIs that the KaiOS app is presently using are sufficiently stable. There are some takeaways from the meeting, see the column "2020-05-13 meeting notes" at https://docs.google.com/spreadsheets/d/1IKExDeGhA79pJ1ZzvifWKgwx77-bdRRBJvhvAMAbKeA/edit?usp=sharing for more information.

SBisson closed this task as Resolved.May 13 2020, 8:58 PM

I will file tasks to consider using the new REST API for search and language links.

We're safe for app launch. Calling it done!