Spring Projects Infrastructure
Upcoming SlideShare
Loading in...5

Spring Projects Infrastructure



Presented at the Atlanta Spring User Group, July 2012

Presented at the Atlanta Spring User Group, July 2012



Total Views
Views on SlideShare
Embed Views



1 Embed 5

http://lanyrd.com 5



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • Mentioning how distributed the teams are US, across Europe, Australia

Spring Projects Infrastructure Spring Projects Infrastructure Presentation Transcript

  • Spring Projects InfrastructureProcesses, Source Control, Builds, Community, and more! © 2009 VMware Inc. All rights reserved
  • About UsGunnar Hillert, SpringSource, VMware Spring Integration @ghillert blog.springsource.org/author/ghillert/Roy Clarkson, SpringSource, VMware Spring for Android, Spring Mobile @royclarkson blog.springsource.org/author/rclarkson/ 2
  • Agenda History New Tools Process Differences between projects Community and how you can get involved 3
  • 4
  • What is Spring? Spring AMQP  Spring Shell Spring for Android  Spring Social Spring Batch  Spring Web Flow Spring Data  Spring Web Services Spring Framework  And more … Spring Gemfire Spring Hadoop Spring Integration Spring Mobile Spring .NET Spring Roo Spring Security 5
  • 6
  • History Spring Framework • Subversion Repository • Remember http://src.springframework.org/svn/spring-framework ? • Ant based build Some projects on internal Git repository (e.g. Spring Integraton) • http://git.springsource.org • Maven 7
  • github.com/SpringSource 8
  • SpringSource on GitHub Spring Integration moved August 2011 Spring Framework moved December 2011 Spring Web Flow recently moved All major projects now on GitHub 9
  • Benefits of GitHub Accessible UI built around Git Well known open source code repository Code browsing View history of changes, commits, and comments Community contributions are encouraged through Pull Requests Issue tracking Wiki pages 10
  • Contributing 11
  • Sign the Contributor License Agreement https://support.springsource.com/spring_committer_signu p 12
  • Fork the Repository Navigate to github.com/SpringSource/<project> Select the button Select your local GitHub account as the destination 13
  • Local Development Environment$ git clone git@github.com:<username>/<project>.git$ cd <project>$ git remote add upstream git@github.com:SpringSource/<project>.git$ git fetch --all$ git remote show$ git branch -a 14
  • Submitting a Pull Request Create a new topic branch based on issue number • $ git checkout -b <project>-123 Complete your changes Push your branch to origin • $ git push origin <project>-123 Select when you are ready to submit your code to the project lead for review Please note that all pull requests must be able to be cleanly merged with the upstream master’s current state Recommended: Rebase with Master 15
  • Reviewing Code via Pull Requests 16
  • Reviewing Code via Pull Requests Comment on each commit or on individual lines Markdown supported Comments trigger notifications (Can address individual users) Pull Requests can be comprised of multiple commits Compare code between commits or branches GitHub Pull Request = Code + Issue + Code Comments Contributors and Committers follow same process! 17
  • More Information Spring Framework Contributor Guidelines https://github.com/SpringSource/spring-framework/wiki/Contributor-guidelines Spring Integration Contributor Guidelines https://github.com/SpringSource/spring-integration/wiki/Contributor-Guidelines GitHub Help: Fork a Repo https://help.github.com/articles/fork-a-repo GitHub Help: Using Pull Requests https://help.github.com/articles/using-pull-requests 18
  • More Information Pro Git: Contributing to a Project http://git-scm.com/book/ch5-2.html Pro Git: Rebasing http://git-scm.com/book/ch3-6.html McCullough and Berglund on Mastering Git http://shop.oreilly.com/product/0636920017462.do 19
  • Code Reviews @ Cloud Foundry 20
  • Code Reviews using Gerrit 21
  • Code Reviews using Gerrit Originally developed at Google http://code.google.com/p/gerrit/ Authorized Gerrit users can trigger merges Good for larger teams Recommendation: Try GitHub first, use Gerrit if needed 22
  • 23
  • Gradle Hello Worldtask hello { doLast { println Hello world! }} 24
  • Building Spring$ git clone git://github.com/SpringSource/spring-framework.git$ cd spring-framework$ ./gradlew build 25
  • Projects using Gradle Spring Framework (since Jan 2012) Spring Integration (since Oct 2010) Spring AMQP (since Jun 2012) Spring for Android (since May 2011) Spring Mobile (since Nov 2010) Spring Social (since Oct 2010) And more … 26
  • Gradle Details Version 1.0 released 12-June-2012 Version 1.1-rc-1 released 24-July-2012 Gradle Wrapper Maven-like defaults More concise than Maven Scripting capabilities like Ant Supports multi-project builds Dependency management based on Apache Ivy Build scripts written in Groovy 27
  • Common Gradle Tasks for Spring Projects clean – Deletes the build directory build – Assembles and tests this project dist – Creates Zip with Jars, Reference + Api Doc, Schema Files api – Generates aggregated Javadoc API documentation reference – Generates HTML and PDF reference documentation install – Install archives artifacts into local .m2 cache sonarAnalyze – Gather Sonar Metrics eclipse – Generates all Eclipse files idea – Generates IDEA project files 28
  • Gradle IDE Support IntelliJ IDEA 11  http://www.jetbrains.com/idea/webhelp/gradle-2.html  http://confluence.jetbrains.com/display/IDEADEV/News SpringSource Tool Suite  Support since 2.7.0  Using 2.9.x works great  Import Gradle projects directly into STS  http://static.springsource.org/sts/docs/latest/reference/html/gradle 29
  • build.springsource.org 30
  • Bamboo Features Continuous Integration Highly Configurable Instant Feedback Continuous Deployment Release Management JIRA Integration Plugin Support 31
  • repo.springsource.org 32
  • SpringSource Artifactory Replaces previous Maven repositories GA releases still available in Maven Central Unified search Put a watch on anything License information Transitive resolution Release process 33
  • SpringSource Repository If you are using… maven.springframework.org You should update to… repo.springsource.org 34
  • SpringSource Repository Local Repositories • libs-snapshot-local • libs-milestone-local • libs-release-local Virtual Repositories • snapshot • milestone • release Virtual Repositories with Third-Party Support • libs-snapshot • libs-milestone • libs-release 35
  • SpringSource Repository<repository> <id>springsource-release</id> <name>SpringSource Release Repository</name> <url>http://repo.springsource.org/release</url></repository><repository> <id>springsource-milestone</id> <name>SpringSource Milestone Repository</name> <url>http://repo.springsource.org/milestone</url></repository><repository> <id>springsource-snapshot</id> <name>SpringSource Snapshot Repository</name> <url>http://repo.springsource.org/snapshot</url></repository> 36
  • More Information Spring Repository FAQ https://github.com/SpringSource/spring-framework/wiki/SpringSource-repository- FAQ Downloading Spring Artifacts https://github.com/SpringSource/spring-framework/wiki/Downloading-Spring- artifacts 37
  • sonar.springsource.org 38
  • Collecting Metrics using Sonar 39
  • jira.springsource.org 40
  • Found a bug or miss features? Submit bug reports Request features Vote for issues Provide feedback Track status Watch issues 41
  • The Lifecycle of an Issue Lifecycle Phases  Unassigned  Waiting For Triage  Triaged  In Progress  Resolved  Closed More information: https://github.com/SpringSource/spring-framework/wiki/The-Lifecycle-of-an-Issue 42
  • Other Pieces in the Toolbox 43
  • News and Announcements SpringSource blog: http://blog.springsource.org News: http://www.springsource.org Twitter: http://twitter.com/springsource Twitter: http://twitter.com/springframework 44
  • Interact with the Community Forum: http://forum.springsource.org Stackoverflow: http://www.springsource.org 45
  • Jürgenization 46
  • Questions?? Thanks!! 47