[bcc: dev-gaia]
Hi,
We store Firefox OS source code in various git repositories. We use the 'repo'
tool written for the Android project to manage all of these repositories other
than the top level B2G.git repository. B2G.git has a few helper scripts to
simplify setting up a tree, building a tree as well as other tasks.
A problem we have is that the B2G.git repository needs to be updated separately
from the repo-managed repositories. Because B2G.git changes infrequently, it's
often not updated and that can lead to unexplained breakage for developers. We
and our partners have a lot of infrastructure in continuous integration systems
which can't easily make full use of the tools stored in B2G.git without a lot
of special code.
My proposal is to move nearly all of the scripts and tools in B2G.git into a
repo managed repository. The only things left in B2G.git would be a modified
config.sh script and the repo stub script. I have a plan which should maintain
the existing workflow while also letting people use the standard repo work flow.
My plan is to:
1) create b2g-scripts repository, containing the B2G.git/scripts directory
2) create b2g-tools repository, containing the B2G.git/tools directory
3) move all scripts in the root of B2G.git into b2g-scripts
4) use repo file copy operations (like we do for the root Makefile) to copy
those scripts back into the root of the source tree
5) remove the device configuration part of config.sh
6) create a new script, config-device.sh in b2g-scripts that has the device
configuration steps.
7) have config.sh call config-device.sh after the source tree is initialized
I will use Git history editing facilities to ensure that both b2g-scripts and
b2g-tools maintain their respective histories.
Once this is done, you would still be able to set up a fresh tree with the
existing method:
$ git clone https://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh emulator
$ ./build.sh
This will continue to work as expected and will give the same entry points into
the build system as we have now. Additionally, a new optional method matching
the standard way of using repo is available:
$ mkdir B2G
$ cd B2G
$ repo init -u http://github.com/mozilla-b2g/b2g-manifest.git -m
emulator.xml
$ repo sync
$ ./config-device.sh emulator
Please let me know if you have any thoughts on this issue. I would like to
make sure that there is consensus about these changes before I start because
testing will take some time. I will be doing as much as possible using scripts
to make sure that the changes are repeatable and easy to verify.
Thanks,
John
_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g