Successfully reported this slideshow.
Your SlideShare is downloading. ×

Spring Projects Infrastructure

More Related Content

Spring Projects Infrastructure

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

Editor's Notes

  • Mentioning how distributed the teams are US, across Europe, Australia

×