Skip to content
This repository has been archived by the owner on May 28, 2023. It is now read-only.
Cassidy James Blaede edited this page Jan 14, 2020 · 6 revisions

An idealized specification for the future of Houston. Based on our experience building and shipping AppCenter to developers and users for the past three years, but with the intent to be useful to a wider audience than just elementary.

WORK IN PROGRESS and under heavy development; consider everything here incomplete and/or up for discussion.

Key ideas while brainstorming:

  • Flatpak-based
  • Used by multiple high-profile Flatpak stores, i.e. Flathub and elementary AppCenter
  • Provides developer dashboard for submitting/managing apps
  • Provides reviewer dashboard for approving apps and updates, requesting changes, etc.
  • Deeply integrated with GitHub and other source code repositories (issue tracking, diff-viewing, etc.)
  • Leans on tooling developers are familiar with instead of reinventing things
  • Domain verification for RDNN
  • Concept of verified publishers (they are who they say they are, i.e. this "Spotify" app is indeed coming from Spotify, not some random person named Alice)

Developer Dashboard

The most-seen component is a developer dashboard. This dashboard is a place where app developers can log in, view their existing apps, submit new apps, and manage things like monetization status. Ideally this dashboard would also provide valuable aggregate statistics to developers like how many downloads per release, some OS usage information (if deemed valuable), and of course pretty charts.

Requirements

  • Log in (ideally with an existing code hosting account, i.e. GitHub or GitLab)
  • Authorize access to new apps (Houston needs access to read code and create issues for proper integration)
  • View existing apps
  • Submit the latest release for review (could possibly be automated with release tags and webhooks?)
  • Enable monetization (i.e. via Stripe Connect, could be optional per host?)

Reviewer Dashboard

For elementary, one of the most important components is the reviewer dashboard. This lets trusted members of the organization view apps (ideally including some aggregate statistics), see submissions, and review or request changes to (polite way of saying "reject") submissions. Submissions include new apps as well as updates to apps.

Requirements

  • Log in
  • View existing apps
  • View new app submissions
    • Link to source code for manual review/curiosity
  • View app update submissions
    • Link to diff between current and proposed version (i.e. via GitHub URL)
  • Provide human-review checklist before approving apps and updates
  • Approve new apps and app updates
  • "Request changes" to new apps and app updates
    • Facilitate filing an issue on the app's issue tracker

Automated Processes

Most of the actual important magic is in the automated processes behind-the-scenes.