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