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