Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Effective Development With Eclipse Mylyn, Git, ...
Search
Chris Aniszczyk
April 11, 2011
Technology
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Presented at JAX London 2011
Chris Aniszczyk
April 11, 2011
More Decks by Chris Aniszczyk
See All by Chris Aniszczyk
Open Source Under Attack (FOSDEM 2020)
caniszczyk
1
670
Bringing an open source project to the Linux Foundation
caniszczyk
0
90
Rise of Open Source Programs
caniszczyk
0
89
The Open Container Initiative (OCI) at 12 Months
caniszczyk
0
490
Creating an Open Source Office: Lessons from Twitter
caniszczyk
0
210
Mesos: Ignite Talk at #DevopsDaysAustin 2015
caniszczyk
0
140
The Open Source... Behind the Tweets
caniszczyk
0
110
Apache Mesos at Twitter
caniszczyk
3
200
#OSS2014
caniszczyk
0
260
Other Decks in Technology
See All in Technology
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
440
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
150
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
460
20260912_スクラムにジェネラリストは必要か
ryugen04
0
290
Tab5をRubyで動くパソコンにする
kishima
2
280
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
240
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
160
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
330
AIで仕事のやり方を変える
matsu7874
3
1k
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
150
Reactの設計論
uhyo
14
7.4k
2026/09/10 Spring_Bootから_Jakarta_EE_MicroProfileへの移行
megascus
0
290
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
YesSQL, Process and Tooling at Scale
rocio
174
15k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
Into the Great Unknown - MozCon
thekraken
41
2.7k
Code Review Best Practice
trishagee
74
20k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
Transcript
Effective Development with... Eclipse, Mylyn, Git, Gerrit and Hudson (Jenkins)
Chris Aniszczyk (Red Hat) Principal Software Engineer
[email protected]
http://aniszczyk.org
About Me Hack on Eclipse, OSGi, Git and other things
at Red Hat Member of the Eclipse Board of Directors Member in the Eclipse Architecture Council I like to run! (2 minutes over of Boston qualifying ;/) Co-author of RCP Book (www.eclipsercp.org) Starting a new book on Git and Gerrit... Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Introduction - Mylyn Reloaded Hudson (Jenkins) and Mylyn Distributed Version
Control (DVCS) Code Review with Git, Gerrit and Mylyn Conclusion Q&A Agenda Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
What is Mylyn? Mylyn is the task and application lifecycle
management (ALM) framework for Eclipse. It provides... The task-focused interface that realigns the IDE around tasks so that you see only the code that's relevant A task management tool for developers A broad ecosystem of Agile and ALM integrations. There are dozens of extensions integrate Mylyn with ALM and developer collaboration tools Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn Integrates within the IDE Mylyn reduces context switching... Effective
Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn History 2004: Task-focused interface ideas on UBC whiteboard 2006:
v1.0, early adopters help evolve the UI 2007: v2.0, API grows from integration needs, increasing 2008: v3.0, API solidifies, extensions increase 2009: v3.3, de facto ALM integration for Eclipse, dozens of extensions 2010: Expansion of participation and new project creation 2011: Mylyn 3.5 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn 3.4 Tasks Bugzilla Trac OSLC Context Versions Docs Java
C/C++ CVS WikiText Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn 3.5 – Restructured Tasks Bugzilla Trac OSLC Context Reviews
Builds Versions Docs Java C/C++ CVS Git Hudson WikiText RichText OSLC OSLC IEEE Tasks Gerrit Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Introduction Hudson (Jenkins) and Mylyn - What is Hudson (Jenkins)
- Mylyn Builds The Rise of Distributed Version Control (DVCS) Code Review with Git, Gerrit and Mylyn Conclusion Q&A Agenda Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
What is Hudson (Jenkins)? Hudson is an extensible continuous integration
server Easy to use Tons of plug-ins Very popular within the Java community Recently forked by the community via Jenkins Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn Builds “The scope of the Mylyn Builds project is
integration of continuous integration and build systems (eg., Hudson) within Eclipse. In addition to the seamless access to software build and assembly technologies. Mylyn users will be able to access continuous integration processes, control build execution and associate build results with tasks and context.” http://eclipse.org/mylyn/builds You'll find yourself leaving Eclipse less! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn Builds Demo Effective Development with Mylyn, Hudson, Git and
Gerrit | © 2011 by Chris Aniszczyk
Introduction Hudson (Jenkins) and Mylyn Distributed Version Control (DVCS) -
Why DVCS? Why Git? - Lessons learned at Eclipse moving to Git - Mylyn Versions and EGit Code Review with Git, Gerrit and Mylyn Conclusion Q&A Agenda Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Version Control Version Control Systems manage change “The only constant
is change” (Heraclitus) Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Why Version Control? VCS became essential to software development because:
They allow teams to collaborate They manage change and allow for inspection They track ownership They track evolution of changes They allow for branching They allow for continuous integration Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
“Hey, get back to work!” … “My code's merging” -
remember those days you spent merging in changes in CVS/SVN? Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Version Control: The Distributed Every client has a copy of
the full repository locally All repository operations are local (except sharing) Intelligent network operations when sharing content A very non linear revision history Large online communities to share changes Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Software Trends and Revolution Most major open source projects use
some form of DVCS Git, Hg, Bazaar Linux MySQL OpenJDK Android JQuery Gnome Fedora Bugzilla and so on... But why? Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Benefits of Distributed Version Control Can collaborate without a central
authority Disconnected operations Easy branching and merging Define your own workflow Powerful community sharing tools Easier path to contributor to committer Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Collaboration Developers can easily collaborate directly without needing a central
authority or dealing with server administration costs Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Disconnected operations rule! Developers can still be productive and not
worry about a central server going down... remember the days of complaining that CVS was down and you couldn't work? Also, there's a lighter server load for administrators! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Branches everywhere Creating and destroying branches are simple operations so
it's easy to experiment with new ideas Very easy to isolate changes Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Define your own workflow Define your own workflow to meet
your team needs. Different workflows can be adopted as your team grows without changing VCS toolsets! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
DVCS and Building Community Developers can easily discover and fork
projects. On top of that, it's simple for developers to share their changes “Distributed version control is all about empowering your community, and the people who might join your community” - Mark Shuttleworth Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Version Control at Eclipse Eclipse defined a roadmap to move
to Git in 2009 CVS/SVN are deprecated now Each project is moving to Git on its own timeline... So why did Eclipse.org choose Git? Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
#1: Git-related projects at Eclipse.org … both the core Git
library (JGit) and tooling (EGit) are actively developed at Eclipse.org by a diverse set of committers and contributors with a common goal Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
#2: Git is fast … Git is fast and scales
well *whyisgitbetterthanx.com Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
#3: Git is mature and popular … Git is widely
used and is the most popular distributed version control system Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
#4: Git community tools … interested in taking advantage of
such Git tools like Gerrit Code Review (used by the Android community) and GitHub Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Convincing management and peers was tough - At first, everyone
is resistant to change The learning curve of DVCS systems is high - Initially, the Eclipse tooling was “alpha” - People refuse to drop to the CLI Legacy is a pain in the ass! - 200+ projects at Eclipse used CVS/SVN - The existing VCS tooling was high quality Eclipse.org: Challenges moving to a DVCS Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
No free lunch! … trust me, the only way to
learn DVCS is to start using it... there is a learning curve, you need to rewire your brain! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
EGit Demo Effective Development with Mylyn, Hudson, Git and Gerrit
| © 2011 by Chris Aniszczyk
Introduction Hudson (Jenkins) and Mylyn Distributed Version Control (DVCS) Code
Review with Git, Gerrit and Mylyn - What is Code Review? - Introduction to Gerrit - Mylyn Reviews Demo (Gerrit) Conclusion Q&A Agenda Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
What is Code Review? When one developer writes code, another
developer is asked to review that code A careful line-by-line critique Happens in a non-threatening context Goal is cooperation, not fault-finding Often an integral part of coding process Debugging someone else's broken code – Involuntary code review: Not so good; emotions may flare [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Code Review Benefits Four eyes catch more bugs § Catch
bugs early to save hours of debugging Enforce coding standards § Keep overall readability & code quality high Mentoring of new developers § Learn from mistakes without breaking stuff Establish trust relationships § Prepare for more delegation Good alternative to pair programming § asynchronous and across locations [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Gerrit Code Review Gerrit is a Code Review system based
on JGit http://code.google.com/p/gerrit/ Also serves as a git server adding access control and workflow Used by • Android https://review.source.android.com/ • JGit, EGit http://egit.eclipse.org/r/ • Google, Red Hat, SAP, … Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
History: Google and code review tools Mondrian (Guido van Rossum)
• based on Perforce, Google infrastructure • Google proprietary Rietvield (Guido van Rossum) • based on Subversion • Open Source hosted on GoogleApp Engine Gerrit (Shawn Pearce) • started as a fork of Rietvield • based on JGit and GWT • Open Source (Android) • Apache 2 license Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
One Branch One Feature Master branch contains only reviewed and
approved changes • master moves from good to better state after each (approved) change Each feature branch is based on master branch • stable starting point A change can really be abandoned because • no other approved change can depend on a not yet approved change • Gerrit will automatically reject a successor change of an abandoned change Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Gerrit – Lifecycle of a Change a master topic 1
• create local topic branch • commit change • push it for review • do review • automated verification Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Gerrit – Lifecycle of a Change c b a 1
2 master topic 3 a master topic 1 • create local topic branch • commit change • push it for review • do review • automated verification • refine based on review • push new patchsets until review votes ok Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Gerrit – Lifecycle of a Change c b a 1
2 master topic 3 a master topic 1 • create local topic branch • commit change • push it for review • do review • automated verification • refine based on review • push new patchsets until review votes ok c b a 1 2 master topic 3 d • Submit may lead to server-side merge • or merge / rebase before push Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Gerrit Workflow Effective Development with Mylyn, Hudson, Git and Gerrit
| © 2011 by Chris Aniszczyk
Gerrit http://egit.eclipse.org/r/ - change,825 Effective Development with Mylyn, Hudson, Git
and Gerrit | © 2011 by Chris Aniszczyk
Gerrit and Mylyn Reviews Demo http://egit.eclipse.org/r/ - change,825 Effective Development
with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
History of Version Control (VCS) Hudson (Jenkins) and Mylyn Distributed
Version Control (DVCS) Code Review with Git and Gerrit Conclusion Q&A Agenda Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Conclusion The Mylyn project restructuring is a sign of maturity
The future of version control is distributed! Mylyn Builds works great with Hudson (Jenkins) Gerrit enables a nice code review workflow Mylyn Reviews integrates with Gerrit Developing with Mylyn saves time! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Git Resources http://git-scm.com/documentation is your friend Watch Linus' talk at
Google http://www.youtube.com/watch?v=4XpnKHJAok8 Read the Pro Git book - http://progit.org/book/ Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Q&A Evolution of Version Control in Open Source | ©
2010 by Chris Aniszczyk Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk