Marketplace/PackagedApps: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
(added banner)
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page is about the Marketplace Packaged Apps that we have available on phones.
{{Marketplace_banner}}
=== Non-engineering implications of a packaged app ===
* What is our release schedule?
** ...for Gaia
** ...for the website (in case some iframed packaged apps persist)
* How/How hard should we push people to update their marketplace app?
** How do we push critical bugfixes?
 
The release schedule is a big deal, because currently we accommodate a lot of last-minute requests and under-planned features. The idea currently is that we can just patch it; "just patch it" with a package becomes a lot dicier unless we can more reliably get people to update.
 
So, if our production schedule is longer (or has code freeze dates, etc), the impacts could be:
* What happens with a third-party partner change?
* How do we handle feature requests during our production cycle? Is there a cutoff point?
* By when does L10n need to get something?
* By when does QA need to get something?
* How far in advance do features need to be defined? Designed? Communicated to FxOS?
* How do we structure integration testing (and planning) around this cycle?
 
You'll find many of these things also described here: [https://docs.google.com/a/mozilla.com/document/d/1ZkJBVjUMTaB_-gkOEAsPjXEhwTmdnNNhUhtVXNtZNbo/edit?pli=1 Proposal of what it means to be a packaged app]
 
=== Packaged app or not ===
 
Should we be a packaged app?
 
<table class="wikitable" border="1">
  <tr>
    <td></td>
    <td><b>Iframed</b></td>
    <td><b>Packaged</b></td>
    <td><b>Notes</b></td>
  </tr>
  <tr>
    <td><b>First boot time</b></td>
    <td>Slow</td>
    <td>Fast</td>
    <td>600kb of JS and CSS, images and index.html loaded from the network. As a packaged app its all local.</td>
  </tr>
  <tr>
    <td><b>Second boot time</b></td>
    <td>No change</td>
    <td>A bit faster</td>
    <td>No network requests against servers to see what hasn't changed.</td>
  </tr>
  <tr>
    <td><b>Gaia schedule</b></td>
    <td>Independent</td>
    <td>Tied</td>
    <td>Packages can be released any time, but packages in Gaia must be tied to the releases</td>
  <tr>
    <td><b>Updates</b></td>
    <td>Easy (currently weekly)</td>
    <td>Very slow and require user action</td>
    <td>Slowness depends upon Gaia schedules. Updates for iframe can also be non-easy (iframe != no package updates, it depends on the change).</td>
  </tr>
  <tr>
    <td><b>Process</b></td>
    <td>Little</td>
    <td>More</td>
    <td>If release takes 6 months, lots of time ahead planning</td>
  </tr>
  <tr>
    <td><b>Offline strategy</b></td>
    <td>None</td>
    <td>Possible</td>
    <td></td>
  </tr>
  <tr>
    <td><b>QA cycles</b></td>
    <td>More</td>
    <td>Less</td>
    <td>Debateable, there will probably be more to QA</td>
  </tr>
  <tr>
    <td><b>Hacky code</b></td>
    <td>More</td>
    <td>Less</td>
    <td>Testing is possible, but we are using postMessage to work around the packaging</td>
  </tr>
  <tr>
    <td><b>Preload data</b></td>
    <td>None</td>
    <td>Possible</td>
    <td>(db) - not a huge use case</td>
  </tr>
  <tr>
    <td><b>The Web</b></td>
    <td>Yes</td>
    <td>It's not the web</td>
    <td></td>
  </tr>
  <tr>
    <td><b>Release Cycle</b></td>
    <td>short, weekly</td>
    <td>long, ~1 year</td>
    <td>It takes 3-6 months for product, 6 months dev, + 1 - 2 for Gaia testing + 1 - 3 OEM acceptance and shipping to consumers</td>
  </tr>
  <tr>
    <td><b>Localizations</b></td>
    <td>more planning</td>
    <td>less planning</td>
    <td>FxOS devices may have 1 - 6 months advance notice</td>
  </tr>
  <tr>
    <td><b>installs_allowed_from</b></td>
    <td>Works fine</td>
    <td>Needs an iframe</td>
    <td>Oh the irony</td>
  </tr>
</table>
 
=== Packaged apps on phones ===


* '''iframed''': a page that loads the rest of the marketplace in an iframe (https://github.com/mozilla/fireplace/blob/master/yulelog/index.html)
* '''iframed''': a page that loads the rest of the marketplace in an iframe (https://github.com/mozilla/fireplace/blob/master/yulelog/index.html)
* '''packaged''': a more fully packaged version of the marketplace, that has all of Fireplace in it s
* '''packaged''': a more fully packaged version of the marketplace, that has all of Fireplace in it s


<table class="fullwidth-table" border="1">
<table class="wikitable" border="1">
<tr>
<tr>
<td>Version</td>
<td><b>Version</b></td>
<td>Flavour</td>
<td><b>Flavour</b></td>
<td>Manifest URL</td>
<td><b>Manifest URL</b></td>
<td>Origin</td>
<td><b>Origin</b></td>
<td>Notes</td>
<td><b>Notes</b></td>
</tr>
</tr>
<tr>
<tr>
<td>1.0.1</td>
<td><b>1.0.1</b></td>
<td></td>
<td></td>
<td></td>
<td></td>
Line 19: Line 129:
</tr>
</tr>
<tr>
<tr>
<td>1.1</td>
<td><b>1.1</b></td>
<td>iframed</td>
<td>iframed</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
Line 26: Line 136:
</tr>
</tr>
<tr>
<tr>
<td>1.2</td>
<td><b>1.2</b></td>
<td>iframed</td>
<td>iframed</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
Line 33: Line 143:
</tr>
</tr>
<tr>
<tr>
<td>1.3</td>
<td><b>1.3</b></td>
<td>iframed</td>
<td>iframed</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
Line 40: Line 150:
</tr>
</tr>
<tr>
<tr>
<td>1.4</td>
<td><b>1.4</b></td>
<td>iframed</td>
<td>iframed</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
Line 47: Line 157:
</tr>
</tr>
<tr>
<tr>
<td>2.0</td>
<td><b>2.0</b></td>
<td>iframed</td>
<td>iframed</td>
<td></td>
<td>https://marketplace.firefox.com/packaged.webapp</td>
<td></td>
<td>app://marketplace.firefox.com</td>
<td></td>
<td></td>
</tr>
</tr>
<tr>
<tr>
<td>2.1</td>
<td><b>2.1</b></td>
<td>packaged</td>
<td>packaged</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td><b>Tarako 1.3 downloaded from the Marketplace</b></td>
<td>packaged</td>
<td>https://marketplace.firefox.com/marketplace-package.webapp</td>
<td>app://packaged.marketplace.firefox.com</td>
<td>When downloaded from the Marketplace</td>
</tr>
<tr>
<td><b>Tarako 1.3 according to Gaia</b></td>
<td>packaged</td>
<td>https://marketplace.firefox.com/marketplace-package.webapp</td>
<td>app://marketplace.firefox.com</td>
<td>According to Gaia (https://github.com/mozilla-b2g/gaia/blob/v1.3t/external-apps/marketplace.firefox.com/metadata.json)</td>
</tr>
</tr>
</table>
</table>
Bugs of interest: https://bugzilla.mozilla.org/show_bug.cgi?id=929602


* 1.1 source: http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2013/09/2013-09-06-04-32-05-mozilla-b2g18_v1_0_1/b2g-18.0.multi.linux-i686-localizer.tar.bz2
* 1.1 source: http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2013/09/2013-09-06-04-32-05-mozilla-b2g18_v1_0_1/b2g-18.0.multi.linux-i686-localizer.tar.bz2

Latest revision as of 02:32, 1 April 2016

Stop (medium size).png
The Marketplace has been placed into maintenance mode. It is no longer under active development. You can read complete details here.

Non-engineering implications of a packaged app

  • What is our release schedule?
    • ...for Gaia
    • ...for the website (in case some iframed packaged apps persist)
  • How/How hard should we push people to update their marketplace app?
    • How do we push critical bugfixes?

The release schedule is a big deal, because currently we accommodate a lot of last-minute requests and under-planned features. The idea currently is that we can just patch it; "just patch it" with a package becomes a lot dicier unless we can more reliably get people to update.

So, if our production schedule is longer (or has code freeze dates, etc), the impacts could be:

  • What happens with a third-party partner change?
  • How do we handle feature requests during our production cycle? Is there a cutoff point?
  • By when does L10n need to get something?
  • By when does QA need to get something?
  • How far in advance do features need to be defined? Designed? Communicated to FxOS?
  • How do we structure integration testing (and planning) around this cycle?

You'll find many of these things also described here: Proposal of what it means to be a packaged app

Packaged app or not

Should we be a packaged app?

Iframed Packaged Notes
First boot time Slow Fast 600kb of JS and CSS, images and index.html loaded from the network. As a packaged app its all local.
Second boot time No change A bit faster No network requests against servers to see what hasn't changed.
Gaia schedule Independent Tied Packages can be released any time, but packages in Gaia must be tied to the releases
Updates Easy (currently weekly) Very slow and require user action Slowness depends upon Gaia schedules. Updates for iframe can also be non-easy (iframe != no package updates, it depends on the change).
Process Little More If release takes 6 months, lots of time ahead planning
Offline strategy None Possible
QA cycles More Less Debateable, there will probably be more to QA
Hacky code More Less Testing is possible, but we are using postMessage to work around the packaging
Preload data None Possible (db) - not a huge use case
The Web Yes It's not the web
Release Cycle short, weekly long, ~1 year It takes 3-6 months for product, 6 months dev, + 1 - 2 for Gaia testing + 1 - 3 OEM acceptance and shipping to consumers
Localizations more planning less planning FxOS devices may have 1 - 6 months advance notice
installs_allowed_from Works fine Needs an iframe Oh the irony

Packaged apps on phones

Version Flavour Manifest URL Origin Notes
1.0.1
1.1 iframed https://marketplace.firefox.com/packaged.webapp app://marketplace.firefox.com Upgrade path maybe an issue for the ZTE Open issues 962524
1.2 iframed https://marketplace.firefox.com/packaged.webapp app://marketplace.firefox.com
1.3 iframed https://marketplace.firefox.com/packaged.webapp app://marketplace.firefox.com
1.4 iframed https://marketplace.firefox.com/packaged.webapp app://marketplace.firefox.com
2.0 iframed https://marketplace.firefox.com/packaged.webapp app://marketplace.firefox.com
2.1 packaged
Tarako 1.3 downloaded from the Marketplace packaged https://marketplace.firefox.com/marketplace-package.webapp app://packaged.marketplace.firefox.com When downloaded from the Marketplace
Tarako 1.3 according to Gaia packaged https://marketplace.firefox.com/marketplace-package.webapp app://marketplace.firefox.com According to Gaia (https://github.com/mozilla-b2g/gaia/blob/v1.3t/external-apps/marketplace.firefox.com/metadata.json)

Bugs of interest: https://bugzilla.mozilla.org/show_bug.cgi?id=929602