Skip to content
This repository has been archived by the owner on Feb 26, 2022. It is now read-only.

JEP SDK in Firefox

Gozala edited this page Sep 25, 2012 · 14 revisions

Integrating Addon-sdk with Firefox

This document outlines process of landing core parts of Add-on SDK to the mozilla-central to be shipped with a rest of the Firefox.

See: Bug 731779

Development process

One of the core goals is to preserve current development ergonomics and maybe share those with other teams. This means following:

  • Canonical repository remains on github.
  • Code can be contributed via pull requests or patches in bugzilla.
  • Changes to SDK modules should not require Firefox builds.



Sync addon-sdk code with mozilla central

Jetpack project will have it's own clone of mozilla-central with a addon-sdk top level directory containing git clone of Addon-sdk repo. .hgignore file will make sure that git history will be ignored. Changes from addon-sdk repo's special integration branch will be pulled down once a week by a Jetpack team's release engineer, committed to SDK's mozilla-central clone and then merged with official mozilla-central. Changes to integration branch will be merged once a week from master using --no-ff flag to create own a merge commit.

See: Bug 793916

Appropriate make files will incorporate SDK modules from mozilla-central's addon-sdk folder into a firefox builds.

See: Bug 793928

Reverts from mozilla central

Any change reverted from mozilla-central will also be reverted on SDK clone of mozilla-central. In addition associated merge commit in git will be reverted on SDK integration branch and merged back to master. This way revert will propagate back to the master branch. Any fixes will have to create new commits and go through the above described process to end up in the mozilla-central.

Reverts in sdk master

Changes that causing tree colour changes from green will be reverted to make sure that integration branch is always green.

File layout changes

SDK modules layout and packaging will be changed to reflect one used in firefox. More details on this subject has being described under JEP lib

See: Bug 787346

CFX changes

CFX tool needs to be updated to add compatibility with a new module layout described above.

See: Bug 793924

CFX also will have to recognize modules shipped with a firefox and create appropriate entries in generated manifest file.

See: Bug 793925

Document generation

Documentation generator will need to recognize new file layout and how these files map to the modules in the firefox.

See: Bug 793926

Contributions

Any changes to the SDK codebase will go through standard review process. Contributor will have an option either submitting a pull request against addon-sdk repo or submitting a patch against addon-sdk or mozilla-central repos in bugzilla. Since mozilla-central will contain complete addon-sdk repo patches will remain compatible.

Testing

Add-on SDK test runner suite will have to be integrated into mozilla test suite and be enabled to run on each commit. Since changes from master will end up into mozilla-central once a week we'll have to keep either current tinderbox infrastructure or integrate try-server with github via hooks, similar to B2G team.

See: Bug 793921

Development

Loader will have to recognise special sdk.local.path preference. If such preference is set, loader will use specified location for leading modules instead of resource:///modules/commonjs/.

This will enable faster iterations over SDK codebase once loader will sdk is integrated into Firefox.

See: Bug 793912