mozilla

Mozilla Nederland LogoDe Nederlandse
Mozilla-gemeenschap

Air Mozilla: A Swifty Internship

Mozilla planet - to, 14/07/2016 - 20:30

A Swifty Internship Tyler Lacroix has not yet given us a description of this presentation, nor any keyword tags to make searching for this event easier.

Categorieën: Mozilla-nl planet

Support.Mozilla.Org: What’s Up with SUMO – 14th July

Mozilla planet - to, 14/07/2016 - 20:20

Hello, SUMO Nation!

How have you been doing in July? Hopefully you’re getting some well deserved holidaying/AFK-ing done. I keep hearing chasing imaginary monsters around is fashionable nowadays… Any trainers out there?

Welcome, new contributors!

If you just joined us, don’t hesitate – come over and say “hi” in the forums!

Contributors of the week

We salute you!

Don’t forget that if you are new to SUMO and someone helped you get started in a nice way you can nominate them for the Buddy of the Month! Most recent SUMO Community meeting The next SUMO Community meeting
  • …is happening on the 20th of July!
  • If you want to add a discussion topic to the upcoming meeting agenda:
    • Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Wednesday (this will make it easier to have an efficient meeting).
    • Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda).
    • If you can, please attend the meeting in person (or via IRC), so we can follow up on your discussion topic during the meeting with your feedback.
Community Social Support Forum Knowledge Base & L10n
Firefox
  • for Android
    • Version 48 is still on track – release in early August.
  • for Desktop
    • Version 48 is still on track – release in early August.

Ah, yes… nearly forgot about this – congratulations to Portugal and their supporters for winning the Euro this year. So, what will keep you busy and excited in the coming week(s)? Let us know in the comments!

Categorieën: Mozilla-nl planet

Air Mozilla: Semaphor Overview and Demo - Zero Knowledge Collaboration Tool

Mozilla planet - to, 14/07/2016 - 19:00

Semaphor Overview and Demo - Zero Knowledge Collaboration Tool SpiderOak has been described as "Snowden's favorite cloud service". They've now added group chat and will provide an overview and demo of their new Semaphor...

Categorieën: Mozilla-nl planet

Mozilla Addons Blog: WebExtensions support on AMO

Mozilla planet - to, 14/07/2016 - 18:58

It’s been possible to submit WebExtensions add-ons to addons.mozilla.org (AMO) since February, but I wanted to take a moment to highlight some of the improvements we’ve made since then that make it much easier to get your Chrome or Opera add-on into AMO.

These features have all been deployed to AMO over the last couple of months and are available for use.

New linter

We are now using the add-ons linter for WebExtensions which means that when we parse a WebExtensions add-on, we are running through a new JavaScript-powered linter, instead of the Python one. This parsing occurs each time you upload a new add-on or a new version of an add-on.

It uses eslint to parse the JavaScript and a schema to verify that the WebExtensions manifest is correct. Because we’ve started to implement functionality in the new add-ons linter that didn’t exist in the old version, more things will be showing up as warnings.

As an example, if you request a permission in the manifest that Firefox doesn’t support, you’ll get a warning:

image00

Relaxed upload criteria

If you’ve developed and add-on for Chrome or Opera, we’d like you to upload it to AMO. For this reason, we’ve relaxed a few criteria around AMO. Once you’ve verified that an add-on works correctly using about:debugging, you should then be able to upload it to AMO quite easily. We’ve hopefully made this easier through the following steps:

Optional add-on id

If your WebExtension does not have an id specified in the manifest.json, then AMO will generate an id for your add-on and add it to the add-on signing process. You can then get the add-on id from AMO and re-use that in later API calls, if needed.

The command line tool web-ext also supports optional ids.

Uploads

AMO will now accept an add-on as a zip file or a crx file. It will still only emit xpi files that Firefox and other Mozilla projects can consume. In the case of a crx file, the extra data added by the Chrome store will be stripped out of the file.

We recommend using a tool like web-ext to generate the appropriate file for your add-on.

Comments in the manifest file

Although comments are not valid in a JSON file, Chrome supports comments in the manifest.json file. To keep compatibility with Chrome, the addons-linter and hence AMO now support comments in the manifest file, but only comments starting with a double slash (//).

Translations

Finally, AMO now supports translations in the manifest. This again follows the Chrome standard, so that:

//in manifest.json: "default_locale": "en", "name": "__MSG_appName__", //in _locales/en/messages.json: { "appName": { "message": "My Add-on", "description": "The name of the add-on." } } //in _locales/de/messages.json: { "appName": { "message": "Mein Add-on" } }

The manifest will be parsed and the translations automatically entered into AMO. You need to ensure that default_locale is set in the manifest for the localisations to be activated. On the first upload, AMO will process the translations:

Screenshot 2016-07-14 09.44.11

If you’d like to get involved then join our mailing list or check out our repositories on Github.

Categorieën: Mozilla-nl planet

Mozilla Localization (L10N): Localization Hackathon in Riga

Mozilla planet - to, 14/07/2016 - 18:33

Stas and I met in Riga with the Baltic and Polish l10n communities to do a hackathon. We gathered Latvian, Lithuanian, and Polish. Sadly, nobody from the Estonian community could attend due to conflicting schedules, but Merike Sell joined us on Saturday morning via Skype. We also had Dainis Šantars and Rūdolfs Mazurs join for a few hours each to work on Latgalian.

On Friday evening, we kicked things off warm and dry. That’s worth noting, as there wasn’t any weather like that for the rest of the weekend. Anyway, we grabbed some dinner, and ventured a few places to get a first feeling for Riga.

University of Latvia, Riga
Saturday morning we met at the University of Latvia, and started the actual hackathon with the obligational introductions, and some “spectrograms”. We got some insights on testing, and which versions of Firefox our community uses. Reminder, Developer Edition or Nightly are the right versions. Use the version you work on. We also talked about the web and software in local languages. Seems that using localized versions becomes normal. We also got more insights into contribution patters that people like.

I really like the conversations about contribution patterns. We start the discussion with the question on how often people would like to localize. The answers quickly lead into discussions about localization quality, and which context localizers prefer to get that. But also to the role that Mozilla plays in people’s lives. Getting a better understanding of both are critical as we’re trying to make localization at Mozilla better.

Afterwards, stas and I gave some general project updates. The Mozilla firehose is overwhelming, so it’s good to give an update on the things that matter to the people in the room. In particular, stas covered L20n, which was well received. I talked about how we want to do Firefox l10n less bound to aurora and beta release channels, which people also liked.

We also talked about MQM, a standard of classifying issues found around localization. Once again we learned that it’s hard to explain them.

As usual, we let people work within their teams for half the time. We did help out with accounts, and persuaded folks to do reviews of suggestions. We heard they also used the time to strategically set up their team, and to learn from each other.

Last but not least, huge thanks to Raivis Dejus for organizing this event. He made us all feel welcome, and as warm as it gets, and always had an anecdote about Riga to share. He turned out to be my inspiration for the Berlin hackathon.

Categorieën: Mozilla-nl planet

Mozilla WebDev Community: Extravaganza – June 2016

Mozilla planet - to, 14/07/2016 - 18:29

Once a month, web developers from across Mozilla get together to talk about the work that we’ve shipped, share the libraries we’re working on, meet new folks, and talk about whatever else is on our minds. It’s the Webdev Extravaganza! The meeting is open to the public; you should stop by!

You can check out the wiki page that we use to organize the meeting, or view a recording of the meeting in Air Mozilla. Or just read on for a summary!

Shipping Celebration

The shipping celebration is for anything we finished and deployed in the past month, whether it be a brand new site, an upgrade to an existing one, or even a release of a library.

Okta SSO Fix Add-on

First up was shobson, who shared MoCo SSO Tweaks, a Firefox add-on that makes the Okta SSO flow better. Among other things, it auto-focuses the verification code field, makes Enter submit the verification code form, and optionally automatically checks the “Remember Device” checkbox.

ViewSourceConf.org

Next was hoosteeno, who shared viewsourceconf.org, the website for the 2016 edition of View Source, a conference for the web that Mozilla runs. The site is statically generated by Metalsmith and takes advantage of several plugins include the model plugin and the template plugin for Swig templates.

shobson worked on the frontend for the site. It intentionally avoids using jQuery and uses SVGs for small image filesizes and easy Retina support. In the future the site will be using Service Workers to enable offline access for the site, and particularly the schedule.

Air Mozilla Timenails

peterbe stopped by to talk about the timenail support he added to Air Mozilla. A timenail is a single screenshot from a video at a specific timestamp; a series of timenails is generated by the transcoding process and made available in the chapter editing interface for each video to help aid in finding good transition points for marking chapters in the video.

The site also calculates the difference between timenails and lets users filter the timenail list to only show thumbnails that have a difference between the previous timenail above a given threshold.

DXR

Next up was ErikRose, sharing a bunch of new changes that landed in DXR:

  • Case-sensitivity is now inferred based on whether the search text is mixed case or not.
  • Support for XPIDL
  • 20% lower memory use
  • Improved C++ analysis, including template support.

Thanks to new_one and Tom Klein for contributing these improvements!

Peep 3.1.2

Erik also mentioned that peep 3.1.2 is out, with support for pip 8.1.2.

Fathom

Erik’s last mention was Fathom, which is an experimental framework for extracting meaning from webpages. You provide it declarative rules that score and classify DOM nodes, and in return it will parse a webpage and rank DOM nodes in the page based on the given rules. You can then extract nodes from this ranking in various ways, such as finding the highest-ranked nodes for a specific attribute, or finding clusters of similarly-classified nodes that are close to each other.

Readable Bug Statuses in Bugzilla

emceeaich and dylan wanted to share (in absentia) the news that the Readable Bug Status package that emceeaich has been working on has been deployed on bugzilla.mozilla.org for bugs in the Firefox, Core, Toolkit, and BMO products. Readable Bug Status helps summarize the status of a bug using information from several fields.

Bedrock + Gulp

Next was pmac who shared the news that Bedrock has switched to using gulp to help manage their frontend build and development process. The site previously relied on django-pipeline completely to manage its static assets, but ran into issues with slow builds during development, as django-pipeline doesn’t watch for which files have changed and simply triggers a full build on each pageview. Switching to gulp allows the site to only rebuild frontend files that have changed, and it builds them as soon as they change instead of building them on-demand.

For more details, pmac wrote a blog post describing the switch.

Open-source Citizenship

Here we talk about libraries we’re maintaining and what, if anything, we need help with for them.

Google Analytics Pageviews on Non-Web Requests

peterbe shared a blog post he wrote describing how to use Raven to send pageview data to Google Analytics. This is useful for tracking usage of endpoints that don’t return webpages but are still considered part of your site’s public API.

Domainswitcher

peterbe also shared Domainswitcher, and add-on that lets you easily switch between domains while preserving the current path. The add-on is useful for web developers working on sites that want to switch between prod, staging, development, and locally-hosted instances of the site.

New Hires / Interns / Volunteers / Contributors

Here we introduce any newcomers to the Webdev group, including new employees, interns, volunteers, or any other form of contributor.

Name Role Work Benton Case Intern – Web Developer Add-on Recommendation

If you’re interested in web development at Mozilla, or want to attend next month’s Extravaganza, subscribe to the dev-webdev@lists.mozilla.org mailing list to be notified of the next meeting, and maybe send a message introducing yourself. We’d love to meet you!

See you next month!

Categorieën: Mozilla-nl planet

Air Mozilla: Web QA Team Meeting, 14 Jul 2016

Mozilla planet - to, 14/07/2016 - 18:00

Web QA Team Meeting They say a Mozilla Web QA team member is the most fearless creature in the world. They say their jaws are powerful enough to crush...

Categorieën: Mozilla-nl planet

Air Mozilla: Reps weekly, 14 Jul 2016

Mozilla planet - to, 14/07/2016 - 18:00

Reps weekly This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

Categorieën: Mozilla-nl planet

Asa Dotzler: Firefox Roadmap

Mozilla planet - to, 14/07/2016 - 17:40

I posted an update to the Firefox Roadmap.

Firefox will deliver a rock solid browsing experience with world-beating customization and a first of its kind recommendation engine that gets you the content you want when you want it, whether at home or on the go.

Categorieën: Mozilla-nl planet

Rumbling Edge - Thunderbird: 2015-02-15 Calendar builds

Thunderbird - mo, 16/02/2015 - 08:22

Common (excluding Website bugs)-specific: (36)

  • Fixed: 603933 – outlook 2007 invitation reply wrong sender
  • Fixed: 1009894 – Update internal timezone database from version 2014b to version 2015a
  • Fixed: 1070491 – Today pane/sidebar: Month and year always “Jan 5555″ on startup
  • Fixed: 1070881 – Running xpcshell tests failing because Lightning directory missing from dist/bin/extensions/
  • Fixed: 1083374 – Calendar xpcshell and mozmill tests failing after OS X signing changes
  • Fixed: 1095119 – Remove Promise.defer usage
  • Fixed: 1101175 – Accepting inviations doesn’t work as expected (403 forbidden)
  • Fixed: 1110881 – Google login popup gives no context
  • Fixed: 1116227 – String shims are defined incorrectly
  • Fixed: 1116305 – Lightning 3.3.2 still speaks only English in TB 31.3.
  • Fixed: 1116882 – calRecurrenceRule tries to set a non-numeric BYMONTHDAY rule
  • Fixed: 1117339 – Thunderbird 24 doesn’t support using Promise as a constructor
  • Fixed: 1117340 – Task lists don’t work for calendar entries without a calendar
  • Fixed: 1117341 – Outdated client message shown when using obsolete token
  • Fixed: 1117540 – useDefault not correctly set if there are no default alarms
  • Fixed: 1117541 – Fix and run xpcshell tests for the provider
  • Fixed: 1120163 – Warning: Property contained reference to invalid variable
  • Fixed: 1120258 – Saving an item in the event dialog fails with MODIFICATION_FAILED if the item has been modified elsewhere
  • Fixed: 1120669 – Details button in imipBar is not always reset
  • Fixed: 1121156 – Converting to event broken for locales without an alphabet
  • Fixed: 1121373 – “Other month” day label in month view have a different color
  • Fixed: 1121415 – Replace timezones.sqlite with a non-binary format
  • Fixed: 1123088 – Label for calendar alarm preview button should be “play”
  • Fixed: 1123207 – Sea Monkey Calendar has disappeared
  • Fixed: 1124152 – Move shims from gdataUtils to shim/ subdirectory
  • Fixed: 1124154 – Wait for parsing to complete before completing synchronization
  • Fixed: 1124640 – Excessive drop-downs and other widths in Lightning’s options – Calendar pane tabs
  • Fixed: 1126338 – Cannot create Google event with addItem() with attendees and no organizer
  • Fixed: 1127247 – Typo in timezone JSON property
  • Fixed: 1128105 – Meeting Accept/Decline buttons not appearing on incoming meeting invitations
  • Fixed: 1128258 – Error in attendee invitation dialog
  • Fixed: 1128293 – TEST-UNEXPECTED-FAIL | xpcshell-icaljs.ini:calendar/test/unit/test_alarmservice.js | test_addItems – [test_addItems : 12] false == true
  • Fixed: 1129094 – [Error: ics-service doesn’t recognize own tzid: floating] [TypeError: aComponent is null] in calTimezoneService.js
  • Fixed: 1129857 – Update timezones to 2015a
  • Fixed: 1130841 – Fix the TodayLabel color for systemcolors
  • Fixed: 1130902 – Notifications are not sent when modifying events

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

Categorieën: Mozilla-nl planet

Rumbling Edge - Thunderbird: 2015-02-15 Thunderbird comm-central builds

Thunderbird - mo, 16/02/2015 - 08:21

Thunderbird-specific: (27)

  • Fixed: 325458 – Recipient Autocomplete: Nickname does not get highest precedence for matching address book entries, for searchphrase==nickname [To, CC, addressing field/area, toplisted, priority, results]
  • Fixed: 526429 – Theme preview should be made branding-aware or branding-agnostic
  • Fixed: 588759 – Make sure status bar messages have proper punctuation
  • Fixed: 742248 – Cannot scroll message window from the input area
  • Fixed: 790539 – Participant list does not update properly while chat tab is inactive
  • Fixed: 926181 – Thunderbird 24 OSX freezes on startup with profile on network drive (AFP)
  • Fixed: 986978 – Add Data Choices Tab to preferences, with GUI option to enable/disable Crash Reporter
  • Fixed: 1084653 – Recipient autocomplete: Increase maximum default number of result entries immediately visible in dropdown from current limit of 4 contacts
  • Fixed: 1085382 – unable to create the phishing warden: [Exception… “Not enough arguments [nsIUrlListManager.registerTable]” nsresult: “0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)” location: “JS frame :: file:///REF-OBJ-DIR/objdir-tb3/dist/bin/components/nsPhishingProtec
  • Fixed: 1100330 – ReferenceError: reference to undefined property this._actualWorker in gloda/indexer.js
  • Fixed: 1108251 – Review styling for threadpane icons/columns on all platforms
  • Fixed: 1113863 – Windows 7 Debug failing all tests | Exception: Sorry, cannot connect to jsbridge extension, port 24242
  • Fixed: 1117060 – remove deprecated let expressions in comm-central
  • Fixed: 1117496 – The Chat toolbar don’t use the inverted icons on dark LW-themes
  • Fixed: 1117526 – Selected tab shows bottom border when using LW-theme
  • Fixed: 1118395 – “create filter from message” message header context menu for non-address should trigger only for right click
  • Fixed: 1120136 – C-C: mailnews/local/src/nsPop3Sink.{h,cpp} variable m_inboxOutputStream is no longer used.
  • Fixed: 1120179 – [in-content preferences] orange stripe is missing on main navigation
  • Fixed: 1120181 – [in-content preferences] jumping icon when switching preference category
  • Fixed: 1120183 – [in-content preferences] titles of subcategories are underlined, not in Firefox
  • Fixed: 1121107 – Consider patching mozmill to be able to run in the mozharness virtualenv
  • Fixed: 1121143 – onFolderRemovedFromQ “canceled” undefined (wrong scope)
  • Fixed: 1121566 – TEST-UNEXPECTED-FAIL | dom/presentation/tests/xpcshell/test_presentation_device_manager.js | xpcshell return code: 0
  • Fixed: 1124736 – Move PREF_JS_EXPORTS to moz.build in c-c
  • Fixed: 1126859 – comm-central compilation error: ‘PL_DHashTableLookup’ was not declared in this scope, etc.
  • Fixed: 1127199 – getValidRFC5322Date returns wrong date in some instances.
  • Fixed: 1133022 – Error: …\installer\package-manifest:151: Missing file(s): bin/components/imgicon.xpt

MailNews Core-specific: (22)

  • Fixed: 479823 – archive filter rules: when Archive function is used a special set of filters marked to activate at ‘Archive time’ should be invoked, not the built-in archive function
  • Fixed: 498814 – “Compact Folder” silently fails and deletes .msf, if mail folder file is opened by other software (in the worst case, generates null mail folder file or deletes mail folder file)
  • Fixed: 558659 – Support IMAP LIST SPECIAL-USE (RFC 6154) to autoconfigure Sent, Trash, Draft folders on IMAP servers
  • Fixed: 675448 – “Save as …” multiple mails fails because of long pathnames and doesn’t notice the user
  • Fixed: 771643 – deleting or moving messages doesn’t delete messages from the filesystem when using Maildir Lite(IMAP. No way to expunge/delete files under cur as offline-store file when maildirstore, because “Compact” is completely killed by maldirstore even though IMAP)
  • Fixed: 847183 – After new account has been added in the account manager, it doesn’t show up there until closing and reopening it, only directly visible in folder pane
  • Fixed: 854798 – Compacting Berkeley Mbox file changes messageKey (to new MsgOffset after compact), causing dataloss/privacy problems (bug 817245 / bug 799450, bug 766495) due to current design problem of MsgKey=MsgOffset (for Berkeley Mbox files)
  • Fixed: 894012 – convert expungedBytes to 64bit
  • Fixed: 912216 – Temporarily disable CONDSTORE support for many “GMail IMAP + Thunderbird/SeaMonkey” users
  • Fixed: 934170 – mozilla/mach xpcshell-test does not work for comm-central
  • Fixed: 964024 – mozTXTToHTMLConv should never convert content inside <style>, <script>, <head> tags
  • Fixed: 1113275 – Make tests dependent on imapPump work with maildir
  • Fixed: 1117199 – reset mailnews.send_default_charset and mailnews.view_default_charset if they had values no longer supported
  • Fixed: 1118027 – fix some compile warnings in compose/src/nsMsgSend.cpp
  • Fixed: 1120067 – RSS (2.0?) feeds not updating and not being added.
  • Fixed: 1121482 – Remove PL_DHashTableOperate from comm-central
  • Fixed: 1121488 – port changes from bug 1120476 and bug 1121304 to comm-central
  • Fixed: 1122346 – Check if draft message is in db before deleting
  • Fixed: 1123117 – fixIterator should support for-of iteration
  • Fixed: 1124118 – Follow up nsIProgressEventSink.onProgress and nsITransport.onTransportStatus changes by bug 1116867
  • Fixed: 1125672 – PROCESS-CRASH | mailnews/imap/test/unit/test_mailboxes.js | application crashed [@ nsWeakReference::Release()]
  • Fixed: 1132271 – Port bug 1001332 to comm-beta to allow xp to work in Thunderbird beta 36

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

Categorieën: Mozilla-nl planet

Meeting Notes: Thunderbird: 2015-02-10

Thunderbird - wo, 11/02/2015 - 05:00

Thunderbird meeting notes 2015-02-10. Previous meetings: https://wiki.mozilla.org/Thunderbird/StatusMeetings#Meeting_Notes

Attendees

aceman, cloep, florian, jcranmer, Jorg K, mkmelin, Paneglab, rkent, Roland, sshagarwal, wsmwk, MakeMyDay

Action items from last meetings
  • wsmwk to get in touch with Standard8 re: beta.
    • done – bkerensa and sylvestre are on it
  • rkent to work with Standard8 (and Fallen) on issues of 1.management of tracking flags and 2. pushing into aurora and beta for TB 38. (meeting generally agreed that mkmelin and rkent would be appropriate to manage pushing patches forward into aurora and beta).
Critical Issues

Critical bugs. Please leave these here until they’re confirmed fixed.

  • Auto-complete improvements – some of those could go into esr31

Release Issues

  • Current beta blocked due to Windows XP failures. rkent has try server configuration that can test a beta build, and will try Standard8’s suggestions.
Upcoming
  • Thunderbird 38 moves to Earlybird ~ February 24, 2015

We need people to commit to being mentors.

Lightning to Thunderbird Integration

See https://calendar.etherpad.mozilla.org/thunderbird-integration

  • As underpass has pointed out repeatedly (thanks for your patience!) , we need to rewrite / heavily modify the lightning articles on support.mozilla.org. let me know irc: rolandtanglao on #tb-support-crew or rtanglao AT mozilla.com OR simply start editing the articles
Round Table JosiahOne
  • So I started a new job recently, but because of that plus school, my time for TB stuff is very, very low. I will continue doing ui-reviews and reviews, but implementing anything has pretty much come to an end until summer break.
wsmwk
  • release management https://etherpad.mozilla.org/XxBwrpMHKz
  • disable HWA for 38? it has been suggested by someone in support to disable because “3d acceleration … does little or nothing for Thunderbird but messes menus, font and causes crashes (the kind with no crash reporter reports).” bug 1131879
rkent
  • Hot bugs
    • bug 1125577 – startup crash in NSSCryptoContext_FindCertificateByEncodedCertificate (and similar bug 1128614)
    • bug 1124015 – Add UI to select maildir for storage when creating accounts
    • bug 1119529 – Sending message succeeds but Error “error while running message filters on it.”
  • Unfortunately a long review queue that I will be looking at for the next few days.
  • I now have access to Thunderbird ADI data. Our ADI reached a new peak last month (in spite of SlashDot assuming “Thunderbird usage is dropping”) and Japan has now surpassed US as #2 country (after Germany).
jcranmer
  • Hopefully going to work down my review queue by this weekend
  • Main jsmime perf regression fixes are r? rkent
  • I have a non-promisified version of OAuth2, but still no UI hookup
  • Mozharness-based mozmill tests: I’ve updated the runner, need to make updates to three or four repositories to make it work
    • Trying to get this in progress for Thunderbird 38, so we don’t need to maintain the old mozmill buildbot stuff for ESR
  • I’ve been doing some work with the emailjs team to add functionality to their SMTP libraries (specifically with regards to SASL) that we could share between TB/Whiteout.io/Gaia email teams.
TheOne Jorg K

I have an XP machine (32 bit), I could run (not build) and debug (with WinDbg) the beta, if that’s of any help. I’d need to know where do download it … and the mentioned suggestions to try. (Contact via e-mail to start off).

mkmelin
  • autocomplete:
    • the critical regressions fixed
    • 3 prominent complaints still not done: the “tab too quickly doesn’t complete”, “show as red even if found”, “insert link missing paste url in context menu”
    • ordering: now landed on esr, some complaints still, need to investigate
Question Time

I’d like to know what happened to the “Thunderbird Discussions with Mozilla”, ie. the letter that was meant to be sent to the Mozilla management, re. funding, donations, staffing, etc. There was a lively discussion on the tb-planning mailing list in early January 2015.

  • won’t happen before 38 branching
Support team
  • As underpass has pointed out, we need to rewrite all the Lightning articles, they are out of date whether or not we finish the integration for TB 38. email me or irc roland or just edit the articles (see above under “Lightning to Thunderbird integration”. Tonnes do you have time to write some of these Lightning articles in English?
Other
  • Note – meeting notes must be copied from etherpad to wiki before 5AM CET next day so that they will go public in the meeting notes blog.

(Extra) Meeting next Tuesday, Feb 17.

Action Items

-none-

Retrieved from “https://wiki.mozilla.org/index.php?title=Thunderbird/StatusMeetings/2015-02-10&oldid=1055270

Categorieën: Mozilla-nl planet

Bryan Clark: If writing is a muscle

Thunderbird - ti, 10/02/2015 - 08:07

I haven’t been to the gym in a long time.

David Eaves, a person I have immense amounts of respect for, has been using a tag line related to this title/intro on his blog for quite a while, probably longer than I’ve known him.  And I honestly never gave much thought to the idea that writing really is a muscle until recently. I’ve taken a break from being a designer (or a programmer) to work as a product manager for over a year now. Designing and coding require a set of skills I’m very familiar with, code is an interpretive language that people use to communicate with each other about the details of commands they issue a computer. While design is a more visual language of storytelling, heavily using imagery and some text to convey the journey of a user to the team intent on correctly interacting with that user.  Both pursuits are about communication but each uses written language in a very different way.  As a product manager I’m forced to lean on my skills as a writer and I don’t think I had much in the way of skills previously but whatever bedridden muscles have been dormant are reawakening as I realize how young and foolish I really was to ignore this essential form of communication.

I’m hoping there is more to come, perhaps starting with some tech posts about recent projects while I try to grapple with this idea of writing more than a tweet.

Categorieën: Mozilla-nl planet

Mark Banner: Firefox Hello Desktop: Behind the Scenes – Flux and React

Thunderbird - mo, 09/02/2015 - 21:49

This is the first of a few posts that I’m planning regarding discussion about how we implement and work on the desktop and standalone parts of Firefox Hello. We’ve been doing some things in different ways, which we have found to be advantageous. We know other teams are interested in what we do, so its time to share!

Content Processes

First, a little bit of architecture: The panels and conversation window run in content processes (just like regular web pages). The conversation window shares code with the link-clicker pages that are on hello.firefox.com.

Hence those parts run very much in a web-style, and for various reasons, we decided to create them in a web-style manner. As a result, we’ve ended up with using React and Flux to aid our development.

I’ll detail more about the architecture in future posts.

The Flux Pattern

Flux is a recommended pattern for use alongside React, although I think you could use it with other frameworks as well. I’ll detail here about how we use Flux specifically for Hello. As Flux is a pattern, there’s no one set standard and the methods of implementation vary.

Flux Overview

The main parts of a flux system are stores, components and actions. Some of this is a bit like an MVC system, but I find there’s better definition about what does what.
Diagram of Example flow in a Flux patternAn action is effectively a result of an event, that changes the system. For example, in Loop, we use actions for user events, but we also use them for any data incoming from the server.

A store contains the business logic. It listens to actions, when it receives one, it does something based on the action and updates its state appropriately.

A component is a view. The view has a set of properties (passed in values) and/or state (the state is obtained from the store’s state). For a given set of properties and state, you always get the same layout. The components listen for updates to the state in the stores and update appropriately.

We also have a dispatcher. The dispatcher dispatches actions to interested stores. Only one action can be processed at any one time. If a new action comes in, then the dispatcher queues it.

Actions are always synchronous – if changes would happen due to external stimuli then these will be new actions. For example, this prevents actions from blocking other actions whilst waiting for a response from the server.

What advantages do we get?

For Hello, we find the flux pattern fits very nicely. Before, we used a traditional MVC model, however, we kept on getting in a mess with events being all over the place, and application logic being wrapped in amongst the views as well as the models.

Now, we have a much more defined structure:

  • Components/views are a place for displaying, there’s some logic about what to display, but it isn’t business logic.
  • The business logic exists in the stores, and is triggered by actions.
  • You can follow an action through and find out which stores listen for it, and what they do.
  • Actions themselves are well-defined with specified parameters.

React provides the component structure, it has defined ways of tracking state and properties, and the re-rendering on state change gives much automation. Since it encourages the separation of immutable properties, a whole class of inadvertent errors is eliminated.

There’s also many advantages with debugging – we have a flag that lets us watch all the actions going through the system, so its much easier to track what events are taking place and the data passed with them. This combined with the fact that actions have limited scope, helps with debugging the data flows.

Simple Unit Testing

For testing, we’re able to do unit testing in a much simpler fashion:

  • Components/Views are tested by setting up their state and/or properties and ensuring the correct elements are displayed:
it("should render a muted local audio button", function() { var comp = TestUtils.renderIntoDocument( React.createElement(sharedViews.MediaControlButton, { scope: "local", type: "audio", action: function(){}, enabled: false })); expect(comp.getDOMNode().classList.contains("muted")).eql(true); });
  • Stores are tested by setting an initial state, sending an action, and checking the resultant state:
it("should set the state to READY", function() { store.setupRoomInfo(new sharedActions.SetupRoomInfo(fakeRoomInfo)); expect(store._storeState.roomState).eql(ROOM_STATES.READY); });

We therefore have many tests written at the unit test level. Many times we’ve found and prevented issues whilst writing these tests, and yet, because these are all content based, we can run the tests in a few seconds. I’ll go more into testing in a future post.

References

Here’s a few references to some of the areas in our code base that are good example of our flux implementation. Note that behind the scenes, everything is known as Loop – the codename for the project.

Conclusion and more coming…

We’ve found using the flux model is much more organised than we were with an MVC, possibly its just a better defined methodology, but it gave us the structure we badly missing. In future posts, I’ll discuss about our development facilities, more about the desktop architecture and whatever else comes up, so please do leave questions in the comments and I’ll try and answer them either direct or with more posts.

Categorieën: Mozilla-nl planet

Pages