On 03/06/14 14:16, Mike de Boer wrote:

> Writing wrappers in python around things to improve the current
> situation like a band-aid isn’t the way I’m used to fix things; I
> like to take the bull by the horns[1]
> 
> I’d like to ask _why_ structured logging needs to be bolted on top of
> what we have currently? Is it more work to fix the real problem? Are
> we less comfortable doing things in JS?

I'm not sure what "wrappers in python" you have in mind, but I think
that there are a couple of important points to address here.

The first is a general point about testing at Mozilla. There is a lot
more going on than just testing of js code. We have tests written in,
and for, C++, Javascript, Python, HTML, CSS and probably a bunch more
things that I have forgotten. In terms of requirements it's pretty
different from what's needed to test a small project entirely
implemented in a single language.

As it happens a lot of the orchestration of testing is implemented in
Python. I doubt js was even a viable choice at the time this
infrastructure was originally written, and now we have a set of mature
libraries for dealing with lots of the incidental complexity of testing
Mozilla products, like controlling system processes, and setting up B2G
devices. This code is largely decoupled from the tests themselves and
hopefully isn't something that most developers should need to care about.

But the reason that we don't just throw it all away and start again is
because doing so would be a huge cost for extremely uncertain benefit.
That doesn't mean that we can't work to improve things where they are
bad; I'm sure we all have areas that we think are ripe for change.

In terms of structured logging in particular; I don't know why you think
it's "bolted on", or why it isn't fixing the real problem. To be honest
I don't know what you think "the real problem" is. Structured logging is
basically just an API for communicating the results of tests to anyone
that cares to be notified of them, be it tbpl, mach, treeherder, an app
running in your browser that collects test results, or whatever. The
fact that it currently has a Python implementation just reflects the
fact that a lot of our test infrastructure is Python, and doesn't mean
that there's anything Python-specific about it. One could certainly
implement StructuredLog.jsm that would be entirely interoperable with
the Python code. Indeed, if you are writing a test harness that works
entirely in javascript, I would strongly encourage you to do just that.
The work on converting Mochitest to the new format might well have some
code that you could reuse.

If there are particular requirements that you think structured logging
doesn't meet this is probably a good time to discuss them, since we
haven't deployed it to too many places. Perhaps that discussion would be
better off-list since it might not be of interest to everyone.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to