ljc conf open jdk betterrev bof
DESCRIPTION
An introduction to Betterrev at the LJC Unconference in London in 2013. Betterrev is a wrapper around the OpenJDK mercurial repos to enable a github like social coding experience.TRANSCRIPT
![Page 1: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/1.jpg)
Contributing to OpenJDK for the GitHub Generation
Daniel Bryant (@danielbryantuk)
Mani Sarkar (@theNeomatrix369)
Edward Yue Shong Wong (@arkangelofkaos)
London Java Community
![Page 2: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/2.jpg)
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!
![Page 3: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/3.jpg)
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…
![Page 4: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/4.jpg)
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!)
![Page 5: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/5.jpg)
Test Coverage Report
http://sticky.uwcs.co.uk/ojdk/coveragereport/Courtesy of John Oliver (@johno_oliver)
![Page 6: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/6.jpg)
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+!)
![Page 7: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/7.jpg)
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?
![Page 8: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/8.jpg)
Not quite social coding…
http://docs.joomla.org/Dvcs
![Page 9: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/9.jpg)
Is it anti-social???
http://www.rottenecards.com/card/32253/im-not-anti-social-im-se
![Page 10: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/10.jpg)
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
![Page 11: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/11.jpg)
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
![Page 12: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/12.jpg)
Architecture – Grand Vision
![Page 13: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/13.jpg)
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!
![Page 14: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/14.jpg)
Opening page
![Page 15: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/15.jpg)
Pull Review details
![Page 16: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/16.jpg)
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…
![Page 17: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/17.jpg)
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
![Page 18: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/18.jpg)
Please do get involved!
∙ Web Resources– http://openjdk.java.net/
– https://java.net/projects/adoptopenjdk/
– https://groups.google.com/forum/#!forum/adopt-https://groups.google.com/forum/#!forum/adopt-openjdk
∙ Contact Us:– Daniel Bryant (@danielbryantuk)
– Mani Sarkar (@theNeomatrix369)
– Edward Yue Shong Wong (@arkangelofkaos)
![Page 19: Ljc conf open jdk betterrev bof](https://reader035.vdocuments.site/reader035/viewer/2022062405/557cb74fd8b42abf328b50ce/html5/thumbnails/19.jpg)
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