I mistakenly posted this internally – thanks Nick for pointing it out.
Let's open up the discussion!
- Mike

---------- Original post ----------
Hey all.

(This is kind of like my last post, but I wanted to separate concerns if
there are discussions.)

While attending Droidcon, I noticed companies get a lot of publicity from
their open source contributions (e.g. people know Square by their many
popular Android libraries). The current convention appears to be to throw
it on github with installation instructions and samples (i.e. make it
easy!).

I noticed that, even though we're entirely open source, we don't have many
(any?) of these library offerings from mobile (at least on Android).

I think there are a few benefits to releasing libraries separately from the
app:
* More development help on these libraries, without the need for developers
to learn the full Mozilla development process
* More modular code that is presumably better tested
* Increased publicity (for both the product and for developers wanting to
join Mozilla. Since we're open source, maybe we'll get more general
contributions too)

Additionally, I think it's great to keep the Mozilla brand associated with
open-source – it'd be great to play up our "open sourceness" by keeping up
with modern practices.

This isn't to say there isn't some overhead associated with releasing code
in this fashion (e.g. more code generality, more tests, more documentation,
which other teams might have more resources for) but food for thought.
- Mike (:mcomella)

---------- Forwarded message ----------
From: Nicholas Alexander <nalexan...@mozilla.com>
Date: Sat, Mar 19, 2016 at 7:39 PM
Subject: Re: Food for thought: following modern open source practices
To: Michael Comella <mcome...@mozilla.com>

Hi Mike, others,

On Sat, Mar 19, 2016 at 6:38 PM, Michael Comella <mcome...@mozilla.com>
wrote:

> Hey all.
>
> (This is kind of like my last post, but I wanted to separate concerns if
> there are discussions.)
>
> While attending Droidcon, I noticed companies get a lot of publicity from
> their open source contributions (e.g. people know Square by their many
> popular Android libraries). The current convention appears to be to throw
> it on github with installation instructions and samples (i.e. make it
> easy!).
>
> I noticed that, even though we're entirely open source, we don't have many
> (any?) of these library offerings from mobile (at least on Android).
>

I originally replied: "At the risk of being both defensive and offensive,
why exactly do you think I've been pushing using a modern build system?"
However, reading this line again, and reading my post at
http://www.ncalexander.net/blog/2015/01/05/we-should-build-firefox-for-android-with-an-external-build-system/
again, I see that I have not done a good job framing my thinking as being
aligned with your thinking.

Right now, even if we want to, we essentially cannot participate in the
open source ecosystem, either as consumers or as producers.  As consumers,
we have hard limitations that make it challenging for us to even track
upstream, let alone contribute back to upstream.  Licensing; a desire to
build everything from source; hard restrictions on consuming projects with
Android resources; inability to use Gradle plugins.  As producers, we're a
joke: I answer a few emails each week explaining that we provide no support
for GeckoView and will not fund it.  And even when we can jump the
technical hurdles to enable code re-use, we don't have support for that
really anywhere in the management chain.  Mozilla won't even commit to
providing an externally consumable Gecko-the-platform!


> I think there are a few benefits to releasing libraries separately from
> the app:
> * More development help on these libraries, without the need for
> developers to learn the full Mozilla development process
>

I don't think this will happen quickly, if at all; and if it does happen,
we will be forever balancing the need of a library's community with our
own.  Square, Facebook, and pretty much every other "open source ecosystem"
participant publishes work but maintains near-complete control of the
development direction.

I would like to see our favicons library separated for testing, which could
lead to contributions back from the Brave development team.


> * More modular code that is presumably better tested
>

This is incredibly important, and I'm thrilled that you agree.  (For
example, Bug 773050 [1] and Bug 1229149 (not done) [2] track separating the
services code from Fennec proper.  This is good for build times but also
good for our testing story.)

However, for us, the true modular piece is GeckoView.  I got interested in
this yesterday because I think it's eventually needed for Progressive Web
Apps and re-evaluated the situation.  (See my prior evaluation in my old
post at
https://mail.mozilla.org/pipermail/mobile-firefox-dev/2014-February/000538.html.)
I am thrilled to say that we are **incredibly close** to being able to
separate the GeckoView Java code from the rest of Fennec.  (The
intertwingling of JavaScript, how we package Gecko and the omnijar, and the
myriad assumptions and connections between GeckoView and Fennec, remain to
be tackled.)  We have had Bug 1098129 [3] tracking this style of split for
a long time; I will update that ticket with my fresh evaluation and file a
few dependent tickets to get this moving.


> * Increased publicity (for both the product and for developers wanting to
> join Mozilla. Since we're open source, maybe we'll get more general
> contributions too)
>
> Additionally, I think it's great to keep the Mozilla brand associated with
> open-source – it'd be great to play up our "open sourceness" by keeping up
> with modern practices.
>
> This isn't to say there isn't some overhead associated with releasing code
> in this fashion (e.g. more code generality, more tests, more documentation,
> which other teams might have more resources for) but food for thought.
>

I care about libraries as a way to :

* simplify and improve our architecture, and
* improving our testing, so that we are more robust.


> - Mike (:mcomella)
>

I hope I've expressed how much I appreciate and agree with your
perspective; what I've been trying to do to enable it; and what I think is
most valuable.

Thanks for opening this conversation!  Is there a reason this is on a
private mailing list?  I would like to move the conversation to
mobile-firefox-dev, assuming there's no strong reason not to.

Nick

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=773050
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1229149
[3] https://bugzilla.mozilla.org/show_bug.cgi?id=1098129
_______________________________________________
mobile-firefox-dev mailing list
mobile-firefox-dev@mozilla.org
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to