Dev Week -- Having fun with the MozillaTeam - Alexander Sack -- Thu, Sep 4

(03:00:21 PM) asac: so welcome everyone
(03:00:33 PM) asac: i think this session is called "Having fun with the MozillaTeam"
(03:00:40 PM) chombium: thank you Riddell
(03:00:57 PM) asac: sorry for this generic name, but i wasnt really sure what topic to use
(03:01:27 PM) asac: i am also in -chat so if you have questions just use my nick to summon me there
(03:01:59 PM) asac: so ... agenda
(03:02:02 PM) tr_tr_ left the room ("Konversation terminated!").
(03:02:20 PM) asac: first i want to give a quick overview of the MOzillateam, what we do and how we do it
(03:02:55 PM) asac: then i want to present you what is new in intrepid and ubufox. we have some nice features there ... which leads to a practical excersize
(03:03:10 PM) asac: baking a new release from the latest "ubufox" upstream sources
(03:03:35 PM) asac: third - depending on how much there will be left I we will try to write a tiny browser writting in xul
(03:03:39 PM) asac: using xulrunner
(03:04:07 PM) asac: so first topic: mozillateam overview
(03:04:36 PM) asac: the mozillateam feels responsible for all things that are related to mozilla applications in ubuntu
(03:05:04 PM) asac: first that is obviously all mozilla standalone applications we have in the archive
(03:05:18 PM) asac: most prominently firefox
(03:06:13 PM) asac: however, mozilla applications alone are just a small part of the ecosystem that comes with firefox and friends
(03:06:48 PM) asac: another big chunk is obviously extensions ... of which we have an ever growing number in the archive
(03:07:12 PM) asac: those are quite easy to maintain and are ideal for anyone who wants to do initial packaging contributions
(03:07:30 PM) JontheEchidna left the room.
(03:07:46 PM) asac: the other chunk are "plugins" ... e.g. handlers for webcontent that isnt natively supported by mozilla apps
(03:07:52 PM) asac: like flash, video and others
(03:09:19 PM) asac: another category of applications  we feel responsible for are applications that use the gecko engine to render HTML
(03:10:02 PM) asac: before we had webkit, the gecko engine was practically the only HTML engines applications could embed and thus
(03:10:13 PM) asac: most applications that need to render HTML are still using it
(03:10:47 PM) asac: prominent gecko embedders are: epiphany, yelp, devhelp, miro and others
(03:11:24 PM) asac: most issues in those application that turn out to be gecko related usually end up on the plate of the mozilalteam
(03:12:10 PM) asac: the good about webkit is that mozilla has now started a new effort to write a new, easier to use and better to maintain embedding API
(03:12:20 PM) asac: so there will certainly be interesting happen in the future here
(03:12:46 PM) asac: the other "new" category of applications that fall into the yard of the mozillateam are obviously xulrunner applications
(03:13:20 PM) asac: those - as I hopefully can show later - are quite easy to develop and especially those familiar with modern website development techniques should find it easy to get started
(03:13:31 PM) asac: as its basically just XML with javascript
(03:13:53 PM) asac: QUESTION: is Chromium expected to be part of the browser team efforts shortly?
(03:14:15 PM) asac: this is still open. personally i have a high interest in getting this into the archive and thus are monitoring the progress here
(03:14:40 PM) asac: however, realistically it will take a few month until there will be something really good to distribute in ubuntu
(03:15:08 PM) asac: maybe now that its out they get more contributions than expected or readjust their priorities in favour of linux
(03:15:15 PM) asac: so lets keep our eyes open
(03:15:36 PM) asac: QUESTION: that new api is for gecko?
(03:15:56 PM) asac: yes, the API i referred to is ment to sit on top of gecko and provide a stable and easy to use contract
(03:16:28 PM) asac: ok back to xulrunner applications:
(03:16:52 PM) asac: firefox itself is a xulrunner application and if you are look at the code you will probably be impressed that its mostly javascript and XML
(03:17:12 PM) asac: though firefox is probably a bit tricky to start with as they use all kind of corner-cases
(03:17:25 PM) asac: anyway, i expect that new xulrunner applications pop up in the future
(03:17:32 PM) asac: one xulrunner app that is in the archive is prism
(03:17:49 PM) asac: which basically allows you to make standalone applications out of websites like gmail
(03:17:57 PM) asac: e.g. with a menu entry and in a window that has no navigation bar
(03:18:04 PM) asac: (just what the chrome folks just presented)
(03:18:26 PM) asac: if you want to try you can install prism-google-mail
(03:18:27 PM) asac: ;)
(03:18:29 PM) asac: a package
(03:18:51 PM) asac: ok ... so how does the mozillateam work.
(03:19:04 PM) asac: especially when it comes to code and package maintenance.
(03:19:25 PM) asac: for all the core things we do, we use bzr
(03:19:45 PM) asac: our bzr branches can be found here:
(03:19:46 PM) asac:
(03:20:16 PM) asac: usually whenever you wonder if there is a snapshot or trunk build available, its already done in bzr
(03:20:28 PM) asac: for instance we have branches that track firefox 3.1 and xulrunner 1.9.1 there
(03:20:51 PM) asac: and even though they are not yet in the archive, using those branches to build your own packages is usually just a matter of CPU power
(03:21:21 PM) asac: for our standalong applications - which have a huge source code base - we historically package the debian/ directory only
(03:21:38 PM) asac: so building is at best done using the bzr builddeb command
(03:22:07 PM) asac: if someone is instersted in building such branches you can just ask in #ubuntu-mozillateam.
(03:22:39 PM) asac: maybe a few words to branch naming. the branches that have a .head suffix usually track the development trunk
(03:22:54 PM) asac: we regularly bump the upstream date in changelog after we verified that the build still works
(03:23:19 PM) asac: when it comes to a new upstream release from that branch, we just merge that branch to the .dev branch
(03:23:25 PM) asac: which basically is our release branch
(03:23:38 PM) asac: e.g. everything that gets committed there has been somewhat QAed and will be uploaded
(03:24:09 PM) asac: for stable maintenance we suffix our branches with .<release> ... e.g. .hardy
(03:24:33 PM) asac: so what does that mean. when you want to get a feature into intrepid or want to add a new patch, just do it on top of the .head branch
(03:24:44 PM) asac: and propose your work for merging
(03:25:27 PM) asac: launchpad has quite a nice feature for "propose a merge". and those requests will get much faster attention and feedback then the "old" way of submitting debdiffs
(03:25:49 PM) asac: but maybe we can try the "propose a merge" in the next agenda point
(03:27:27 PM) asac: ok before we start, a few suggestions how developers can get started on mozilla in ubuntu
(03:27:55 PM) asac: 1. if you are not familiar with packaging or want to get more hands-on experience on bzr you can start helping on packaging extensions
(03:28:21 PM) asac: the main contact for extensions and plugins is Jazzva ... but you can also ask me obviously ;)
(03:29:02 PM) asac: 2. helping on universe mozilla packages:
(03:29:34 PM) asac: we get more and more universe mozilla packages and because of a lack of time it becomes harder to add more to the ubuntu repository
(03:30:00 PM) asac: main contact on this topic is fta or me
(03:30:09 PM) asac: 3. helping on security updates for universe:
(03:30:45 PM) asac: this is a regular task which requires rebuilding packages with new upstream tarball, QAing them and working with the ubuntu security team and me to get them it
(03:31:08 PM) asac: 4. bug forwarding ...
(03:31:31 PM) asac: if you wnat to know more about mozillas inner guts its usually a good thing to start seriously forwarding bugs
(03:31:55 PM) asac: because you need to understand in which component a bug is it will help you to get used to the structure of firefox applications
(03:32:10 PM) asac: which in the end helps you to get started on the real code
(03:32:23 PM) asac: ok thats it for the intro :)
(03:32:28 PM) asac: are there any questions?
(03:33:01 PM) asac: QUESTION: How do you build the branches?
(03:33:19 PM) asac: basically its just: bzr builddeb --merge
(03:33:24 PM) asac: but for that you need the orig.tar.gz
(03:33:38 PM) asac: so if you try to build a snapshot that isnt in any archive that you have in your sources.list
(03:33:49 PM) asac: (in which case bzr builddeb would automatically download it)
(03:33:53 PM) asac: you have to produce the tarball
(03:34:13 PM) asac: we have unified way to do that
(03:34:35 PM) asac: its ./debian/rules get-orig-source DEBIAN_DATE=20080818t1500
(03:34:49 PM) asac: this will get you a snapshot from 1808 at 1500 UTC
(03:35:05 PM) asac: the magic that does all this is shippd i mozilla-devscripts
(03:35:51 PM) asac: remember that for firefox-3.1 you also need xulrunner-1.9.1
(03:35:52 PM) asac: :)
(03:36:21 PM) asac: anyway. we also have regularly binaries built. in a semi-official archive
(03:36:38 PM) asac: but building from the branches is much more flexible and helps you to directly contribute ;)
(03:36:54 PM) asac: if you need the archive ask in the mozillateam channel ;)
(03:37:14 PM) asac: ok more questions or can we move on?
(03:37:56 PM) asac: 2. Ubufox 0.6 Beta
(03:38:23 PM) asac: i am proud to announce that ubufox 0.6 has finally reached beta state and that now the only thing left is to plumber a package from it
(03:38:41 PM) asac: one of the amazing features we have in their is the ability to switch plugins ;)
(03:38:59 PM) asac: e.g. adobe flash is crashy and you like to use gnash ...
(03:39:21 PM) asac: in the past you couldnt do that because there was some content that you couldnt use gnash for
(03:40:16 PM) asac: so now to get some hands on experience, lets get the latest ubufox upstream code from my development branch
(03:40:21 PM) asac: to do that you run:
(03:40:26 PM) asac:  bzr branch lp:ubufox
(03:40:53 PM) asac: and when you got that you can run
(03:40:57 PM) asac:   sh
(03:41:04 PM) asac: inside the ubufox directory to produce a .xpi
(03:41:27 PM) asac: let me know when you got that far ;)=
(03:41:54 PM) asac: when you did that you can just install the .xpi like you would install any .xpi
(03:42:01 PM) asac: like: firefox /path/to/ubufox.xpi
(03:42:09 PM) asac: (which should be in the directory after running
(03:42:22 PM) asac: so if you are in the ubufox directory you can just run
(03:42:23 PM) asac:  firefox ubufox.xpi
(03:43:06 PM) asac: when you have it installed, please visit youtube (as an example)
(03:43:27 PM) asac: whenever you visit a site with flash on it, you should now see a plugin icon (currently blue) in the right bottom status bar
(03:44:46 PM) asac: anyone not seeing that icon? when you click on it you theoretically can change amount plugins ;)
(03:45:00 PM) asac: requirements: a) you have the latest xulrunner from intrepid
(03:45:09 PM) asac: b) you have more than one plugin visible in about:plugins
(03:45:56 PM) asac: the other feature we have in the new ubufox are the safe upgrade feature (e.g. when you upgrade firefox you will get a restart notification in firefox)
(03:46:19 PM) asac: you should be able to test that by runnign:
(03:46:21 PM) asac: /var/lib/update-notifier/user.d/firefox-3.0-restart-required
(03:46:23 PM) asac: err
(03:46:26 PM) asac: sudo touch /var/lib/update-notifier/user.d/firefox-3.0-restart-required
(03:46:45 PM) asac: anyway. since time is running low, lets do the packging ;)
(03:47:07 PM) asac: for that you also need the packagin branch (next to the ubufox branch you just downloaded)
(03:47:16 PM) asac:  bzr branch lp:~ubuntu-core-dev/ubufox/ubuntu
(03:47:27 PM) asac: then cd into the ubuntu/ directory
(03:47:38 PM) asac: and create a new changelog entry to prepare the new upstream merge
(03:48:15 PM) asac: the mozillateam always keeps the changelog targetted for UNRELEASED ... so basically to add a new entry you do:
(03:48:26 PM) asac: dch -v0.6~b1-0ubuntu1 -DUNRELEASED
(03:48:33 PM) asac: and then safe that changelog without adding any entry
(03:48:40 PM) asac: then commit this:
(03:49:10 PM) asac: bzr commit -m "* open packaging tree for 0.6 beta 1 merge"
(03:49:50 PM) asac: everyone got that far?
(03:50:52 PM) asac: ok. lets do the merge ;)
(03:51:01 PM) asac: when you are in ubuntu you now just use bzr to merge ;)
(03:52:14 PM) asac: when you are in the ubuntu/ branch
(03:52:16 PM) asac: you just run:
(03:52:20 PM) asac: bzr merge lp:ubufox
(03:52:31 PM) asac: which will do some rumbling and the merge the latest upstream development
(03:52:54 PM) asac: i think there shouldnt be any conflict so you are basically done
(03:53:03 PM) asac: just document the merge in the changelog:
(03:53:11 PM) asac: add an entry like:
(03:53:19 PM) asac: * MERGE 0.6~b1 release from lp:ubufox
(03:53:23 PM) asac:   - adds feature 1
(03:53:27 PM) asac:   - adds feature 2
(03:53:36 PM) asac: ... (you dont need to add that feature list here now)
(03:53:45 PM) asac: when you added that to the debian/changelog yuo can just
(03:53:50 PM) asac: run:
(03:53:52 PM) asac: debcommit
(03:54:07 PM) asac: and that should commit the merge with a proper changelog entry (equal to what you added to debian/changelog)
(03:54:35 PM) asac: to test the branch you can now just build it with:
(03:54:39 PM) asac: bzr bd --native
(03:54:51 PM) asac: (note --native is wrong ... just easy to not neeed to produce a orig.tar.gz)
(03:54:59 PM) asac: and installing the .deb
(03:55:19 PM) asac: since time is running low: lets assume that you tested all this.
(03:55:28 PM) asac: so how to get that released?
(03:55:50 PM) asac: simple: you just push your branch to launchpad. lets assume your launchpad nick is "mynick" ... then you just do a:
(03:56:01 PM) asac: bzr push lp:~mynick/ubufox/ubuntu
(03:56:27 PM) asac: and when you have that up, you navigate to your branch and "propose it for merge" ;)
(03:56:47 PM) asac: the branch you should propose the merge into is:
(03:57:28 PM) asac: ok :) ... i hope you enjoyed this. and actually i hope i get a propose for merge on this ubufox release ;)
(03:57:51 PM) asac: unfortunately i cannot show you how easy its to write a webbrowser in xulrunner ;) ... but well. thats bad luck
(03:57:52 PM) sebner: asac: \o/
(03:57:56 PM) asac: if you have questions go ahead now
(03:58:14 PM) asac: or after this session: #ubuntu-mozillateam or (subscriptiuon required)
(03:59:30 PM) asac: ok no questions. hope my speed didnt take all energy from you
(03:59:32 PM) asac: thanks alot
(03:59:39 PM) asac: cu in #ubuntu-mozillatem

MeetingLogs/devweek0809/MozillaTeam (last edited 2008-09-05 04:20:56 by pool-68-238-87-204)