LJCConf 2013 "Contributing to OpenJDK for the GitHub Generation"
-
Upload
daniel-bryant -
Category
Technology
-
view
598 -
download
3
description
Transcript of LJCConf 2013 "Contributing to OpenJDK for the GitHub Generation"
Contributing to OpenJDK for the GitHub Generation
Daniel Bryant (@taidevcouk)
Mani Sarkar (@theNeomatrix369)
Edward Yue Shong Wong (@arkangelofkaos)
London Java Community
Tonight’s Agenda
OpenJDK – Java for the people!
Contributing to OpenJDK is easy… right?
The problem, and our planned solution
Progress so far…
Future work – we need your help!
This is a BOF session– We encourage questions and discussion!
What is OpenJDK?
Is everyone familiar with the OpenJDK?– Free and open source implementation of Java SE
– Reference Implementation for JDK since Java 7
– Code split into various Mercurial repos (jdk, Hotspot, nashorn…)
Has anyone built it locally?– On MS Windows…
Building OpenJDK
Java used extensively (and others… C++ etc)
Ensuring quality– We all Unit Test our code (…right?)
– Essential for a platform/SDK like Java
Jtreg - “Regression Test Harness”
– Think Unit (and Integration) Testing for the JDK
– TestNG / JUnit / Shell scripts
– Some good code coverage (some bad!)
Test Coverage Report
http://sticky.uwcs.co.uk/ojdk/coveragereport/Courtesy of John Oliver (@johno_oliver)
Contributing to OpenJDK is easy…
Sign OCA
Download the codebase
Find something interesting to work on– Bug database/tracker/Jira
– Write new tests
– Re-write old tests
– Get inspiration from the mailing lists (50+!)
Contributing to OpenJDK is easy…right?
Find a sponsor
Submit a patch– Include comments, code changes and jtreg tests
– Generate a “webrev”
– Wait for feedback…
This is a slow (and perhaps unintuitive) process– Why can’t I just fork and pull?
Not quite social coding…
http://docs.joomla.org/Dvcs
Is it anti-social???
http://www.rottenecards.com/card/32253/im-not-anti-social-im-se
The problems…
Doesn’t quite feel like “social coding” should…– You’re working on an island
– Modifications not visible to the world
– Discussions not close to code
Testing is difficult– Added complexity of working with a VM/SDK
– Does patch works across all platforms/permutations?
– Coding standards
Our Goals
“To encourage contributions to OpenJDK"
Streamline the whole process– More social…
Ensure (and assist with) quality– Lack of test coverage, incorrect code style
– Easier to test across platforms/permutations
Provide visible feedback for community
Architecture – Grand Vision
Progress so far…
“Betterev” web app nearing completion– Built in Play 2 framework (not ideal…)
Event-driven architecture– Utilising Akka to build event-bus
Planning Test Farm implementation– Servers aren’t free!
Personal Challenges– Large scope needs large time commitments
– Communication and organisation are vital!
Opening page
Pull Review details
Future Work
Deploy alpha release– Complete web app (what to do with Play??)
– Implement build farm (DevOps magic)
Start demonstrating this tool– Get some “buy in”…
LJC working hard to commit more time…
Please do get involved!
We need passionate Java developers like you!– What’s better than helping to make contributing to
your favourite language easier?
Find us on Bitbucket– https://bitbucket.org/adoptopenjdk/betterrev
Join our Google Group:– https://groups.google.com/forum/#!forum/betterrev
Please do get involved!
Web Resources– http://openjdk.java.net/
– https://java.net/projects/adoptopenjdk/
– https://groups.google.com/forum/#!forum/adopt-openjdk
Contact Us:– Daniel Bryant (@taidevcouk)
– Mani Sarkar (@theNeomatrix369)
– Edward Yue Shong Wong (@arkangelofkaos)
A shout out to the LJC and IBM…
Thanks to other LJC members for supporting this– Martijn Verburg
– Richard Warburton
Big thanks also to IBM
– Steve Poole