Spring Projects Infrastructure

  • 224 views
Uploaded on

Presented at the Atlanta Spring User Group, July 2012

Presented at the Atlanta Spring User Group, July 2012

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
224
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
11
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Mentioning how distributed the teams are US, across Europe, Australia

Transcript

  • 1. Spring Projects InfrastructureProcesses, Source Control, Builds, Community, and more! © 2009 VMware Inc. All rights reserved
  • 2. 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
  • 3. Agenda History New Tools Process Differences between projects Community and how you can get involved 3
  • 4. 4
  • 5. 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. 6
  • 7. 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
  • 8. github.com/SpringSource 8
  • 9. 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
  • 10. 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
  • 11. Contributing 11
  • 12. Sign the Contributor License Agreement https://support.springsource.com/spring_committer_signu p 12
  • 13. Fork the Repository Navigate to github.com/SpringSource/<project> Select the button Select your local GitHub account as the destination 13
  • 14. 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
  • 15. 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
  • 16. Reviewing Code via Pull Requests 16
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. Code Reviews @ Cloud Foundry 20
  • 21. Code Reviews using Gerrit 21
  • 22. 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. 23
  • 24. Gradle Hello Worldtask hello { doLast { println Hello world! }} 24
  • 25. Building Spring$ git clone git://github.com/SpringSource/spring-framework.git$ cd spring-framework$ ./gradlew build 25
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. build.springsource.org 30
  • 31. Bamboo Features Continuous Integration Highly Configurable Instant Feedback Continuous Deployment Release Management JIRA Integration Plugin Support 31
  • 32. repo.springsource.org 32
  • 33. 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
  • 34. SpringSource Repository If you are using… maven.springframework.org You should update to… repo.springsource.org 34
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. sonar.springsource.org 38
  • 39. Collecting Metrics using Sonar 39
  • 40. jira.springsource.org 40
  • 41. Found a bug or miss features? Submit bug reports Request features Vote for issues Provide feedback Track status Watch issues 41
  • 42. 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
  • 43. Other Pieces in the Toolbox 43
  • 44. 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
  • 45. Interact with the Community Forum: http://forum.springsource.org Stackoverflow: http://www.springsource.org 45
  • 46. Jürgenization 46
  • 47. Questions?? Thanks!! 47