Hey Chris,

On 6/9/14, 7:56 AM, Chris Mills wrote:
I’m in charge of Firefox OS documentation (and about a million other
things) on MDN, so, while I can’t do anything about the building
process itself, I can do something about the documentation. It is a
lot easier to navigate than it used to be, but I’d love your help to
improve it further.

So one thing I have recently discovered is that the Android Open Source Project (AOSP) generally does not build its Linux kernel, which explains why many of the "Firefox OS" builds similarly do not build one. [Note that this may happen in two ways: for the Tablet, the sources are simply not downloaded; for the ALCATEL One Touch, the sources are downloaded but on Mac their build is disabled somehow (I have not yet figured out how.]

So we need to sweep through *all* the documentation and clarify that B2G is actually not necessarily 'building to gecko' but 'building from HAL to Gecko'.

If the docs advertize that we are 'Building Firefox OS', then they really have to explain how to build the whole OS.

...snip...

1. I’m not a build systems expert, and don’t have the time to
constantly monitor changes in the build system, so I need someone to
give me regular help on this.

Yes, whomever is responsible for scheduling developers' time should dedicate an hour of the B2G hackers' work week to answering your questions. Collaboration is really about working until each person gets stuck and then passing the work to or getting help from the person who can unblock things; it is up to the Firefox OS work managers to ensure that can be true for all the different groups. Right now, those working on B2G owe you a good day's worth of explanation...

Beyond this though, the build system needs love. It needs to be much clearer about what it is doing along the way. We should be able to tell:
  * what source code 'modules' it is planning to build
  * what source code 'modules' it has built
  * in what source code 'module' it has gotten stuck.
When it fails right now, it is hard to figure out what it has done successfully, where exactly we have failed, and what it has not yet been done. I will eventually dig back into the Makefile system to see if such a documentation system is already built in or how we could add one, if it has not.

...snip...
2. Different devices have different
requirements and foibles, and it is hard to find out what they all
are without spending my entire life testing the build process across
all devices. Again, I need some help here.

It may be possible to check the docs periodically by holding build fests where we build starting from fresh installs (say in Virutal Machines) to check the instructions still work. A difficulty of the real world is that the build might require 3 different compilers and libraries, which means that ensuring each is available cleanly can be hard, let alone co-existing with other compilers the developer might have in use. So real developer systems will always be more fragile than the documentation can solve, hence again the need for help from the industrialized build system.

...snip...

Adrian, your work on writing build docs sounds really interesting,
and I’d love to find out more about this.

It is trivial really; I merely want a long set of instructions which does what the build scripts do but one step at a time.

I'd like eventually to do a full build by hand, starting with the device backup, then running 'make' on each separate project, in order, for each of:
  * the development tools for the host computer
  * the firefox OS pieces for the targeted device
  * the runtime tools for the host computer
since right now the B2G stuff is building everything at once which does not teach me what it is doing.

Once it is clear what the different parts of the build scripts are doing, it becomes easier to break them into byte size pieces and try to document each and make it robust. But, since for now I am working on this on my own, it will be a slow, long term project.

cheers,
  ~adrian
_______________________________________________
dev-b2g mailing list
dev-b2g@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to