Hey John, 

Sounds like a good plan. 

I'm not familiar with "repo file operations" and couldn't find any 
documentation on this. 

If I wanted to make a change to the flash.sh script, can I edit the copy in the 
B2G directory? Or do I have to edit the one in b2g-scripts? 

Would it be possible to have the script in B2G be symlinks rather than copies 
(at least for linux)? 

Dave Hylands 

----- Original Message -----

> From: "John Ford" <[email protected]>
> To: [email protected]
> Sent: Tuesday, August 5, 2014 12:51:52 PM
> Subject: Proposal: Manage B2G.git scripts in a versioned repo

> [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-gaia mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-gaia
_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to