This started me thinking about other meaningful ways I could contribute to the project. There were lots of improvements to Dart that I’d suggested over time (all of them awesome), so why not work on one of those, right? As it turns out, this isn’t as easy as it seems. The Dart core code moves fast and furious inside Google – and that’s a good thing. It also means that submitting something truly impactful requires one to keep up with the fast pace of change in the ‘bleeding edge’ branch; not such an easy task. And even if one were able to keep up with the change rate, any patch that would significantly alter the core language would come under heavy scrutiny, and rightly so. Such a contribution might not be considered at all.
After some dialog with Seth and other members of the Dart team on this topic, we (well mostly he) came up with a list of suggestions for folks who want to contribute to the Dart open source project. While some of the suggestions on the list aren’t “core” Dart programming tasks, they are important to the project, and would provide a way for Dart enthusiasts to get their own names listed as a contributor in the Dart AUTHORS document.
It is important to note that the items in the list below are merely suggestions. You can submit anything you like, and it is highly recommended that you familiarize yourself with the “How To Contribute - Guidelines” as your first step. It is also important to note that there are no guarantees that your submission will be accepted. In fact, you’ll probably go through some stringent, but ultimately satisfying, feedback cycles with the Google Dart team. I found the process to be both challenging and rewarding.
Contribution Suggestions (see ‘Resources’ below for reference material):
- Documentation (code docs, updated/comprehensive README’s, etc.)
- Better build instructions (full walk-throughs for each OS)
- Better “How To Contribute” docs (full walk-through, step-by-step)
- HTTPS support for Dart VM
- Libraries to unify HttpClient and XHR
- Libraries to unity FileSystem API and the File/Directories form dart:io
- Unified Logging API
- Move to true Element constructors in dart:html (from Element.tag(‘div’) to Element.div())
- Add or update samples (check existing samples first)
So what are you waiting for? Become a Dart project contributor today!