Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting Involved with Spring 101

Getting Involved with Spring 101

As presented at SpringOne/2GX 2011 in Chigago, IL.


Chris Beams

October 27, 2011


  1. Getting Involved with Spring 101 Chris Beams SpringSource, VMware

  2. Hello!

  3. Chris Beams Committer, core Spring Framework

  4. goals broad overview getting involved today sneak preview of next

    gen processes
  5. the spring landscape today

  6. what is Spring?

  7. a framework?

  8. a collection of projects?

  9. a community?

  10. Yes.

  11. spring-framework

  12. spring-framework spring-integration spring-batch spring-data-* spring-roo spring-webflow spring-social spring-amqp spring-hadoop

  13. None
  14. None
  15. many projects, one goal:

  16. provide infrastructural support for enterprise applications

  17. (and there's a lot of infrastructure out there)

  18. many projects, common resources.

  19. springsource.org completely redesigned

  20. issue tracking jira.springsource.org

  21. source control http://fisheye.springsource.org Subversion, e.g http://src.springframework.org/svn/spring-framework Git http://git.springsource.org GitHub http://github.com/SpringSource

  22. continuous integration build.springsource.org

  23. quality control sonar.springsource.org

  24. artifact management Maven Central search.maven.org SpringSource S3 maven repositories (more

    on all that in a bit)
  25. forums forum.springsource.org

  26. how we manage our projects

  27. "benevolent dictator" model relatively small teams strong leadership community input

  28. how we design deep subject matter expertise internal peer review

    feedback from R&D, consultants, sales engineers distilling jira issues, forum posts conservative releases solve for real-world problems
  29. how we test proper unit testing, integration testing use by

    other project teams use by our engineers in the field feedback from users against milestones and RCs
  30. who commits meritocracy typically employees typically strong users we've hired

    increasing number of external committers
  31. how we release snapshot->milestone->RC->GA relatively long release cycles plenty of

    feedback mostly successful model over time
  32. every project is a little different

  33. every project is a little different share process where it

    makes sense but do what's right for each team build systems are a good example
  34. Example spring-framework issue management

  35. Managing SPR JIRA https://jira.springsource.org/browse/SPR 8800+ issues Daily triage Backlog versions

  36. </overview>

  37. ways to get involved

  38. ways to get involved Use the projects! Report issues Help

    other users Track and test latest features Participate in user groups Contribute code and other fixes
  39. first things first using Spring projects

  40. quick start (for the impatient)

  41. demo STS template projects

  42. read the documentation http://www.springsource.org/documentation

  43. grab the artifacts via distribution zips http://www.springsource.com/download/community via Maven Central

    (preferred) http://search.maven.org
  44. learn from samples and reference applications

  45. samples http://www.springsource.org/samples

  46. reference applications greenhouse live app http://greenhouse.springsource.org home http://www.springsource.org/greenhouse code https://github.com/SpringSource/greenhouse

  47. Spring Roo http://www.springsource.org/spring-roo rapid application development Spring best practices built

  48. tutorials http://www.springsource.org/tutorials

  49. stay informed

  50. blogs team blog http://blog.springsource.org news feed http://springsource.org RSS for both

  51. newsletter http://www.springsource.com/newsevents/newsletter-registration

  52. Twitter http://twitter.com/springsource http://twitter.com/springsource/projects http://twitter.com/springsource/employees

  53. Twitter http://twitter.com/springframework http://twitter.com/springframework/team

  54. report issues

  55. improvements & new features share use cases vote!

  56. bugs steps to reproduce are critcal but reproduction projects get

    you ♥
  57. repro projects simple as possible self-contained built with Maven or

  58. spring-framework-issues https://github.com/SpringSource/spring-framework-issues repro projects, streamlined especially helpful for web application

  59. help other users (and get help when you need it

  60. forum.springsource.org thousands of users great way to build a presence

    in the community
  61. stackoverflow.com

  62. None
  63. None
  64. track and test the latest features

  65. snapshots, milestones, RCs http://maven.springframework.org/snapshot http://maven.springframework.org/milestone http://maven.springframework.org/release

  66. all based on Amazon S3 resolvable from Maven but not

    browseable http://shrub.appspot.com
  67. participate in user groups google for 'spring user group' in

    your area java user groups often have spring content if they don't, consider giving a talk! interested in starting a group? contact afitzgerald@vmware.com
  68. contribute code and other fixes

  69. first: why contribute? scratch your own itch get to know

    Spring really well improve your skills street cred, yo.
  70. demo contributor attribution in git projects

  71. kinds of contribution typo fixes, documentation, cosmetic minor bug fixes

    and improvements major stuff
  72. how to do it and what to expect

  73. the small stuff typo? doco? just submit a patch or

    pull request (we'll talk about pull requests shortly)
  74. the bigger stuff

  75. it's about communication create/comment on the issue express interest, start

    a conversation discuss possible implementations build trust
  76. study previous patches and pull requests what kinds of submissions

    have been accepted before? code quality, formatting, etc
  77. demo spring-integration pull requests https://github.com/SpringSource/spring-integration/pulls https://github.com/SpringSource/spring-integration/pull/153

  78. grab the source $ svn checkout https://github.com/cbeams/spring-framework.git ... $ git

    clone https://github.com/cbeams/spring-framework.git ...
  79. git || svn

  80. git && svn GitHub supports both! https://github.com/blog/966-improved- subversion-client-support your choice

  81. look at the commit log plan to emulate it

  82. demo spring-framework commit log http://progit.org/book/ch5-2.html#commit_guidelines

  83. get to know the project build system Ant ("spring-build") Gradle

    ("spring-build-gradle") Maven (individual to each project) S2 team blog: building Spring 3
  84. give it a shot! stay in communication with project team

    not every contribution will necessarily make it process should be rewarding in any case
  85. (and don't forget tests!)

  86. in any case expect your code to be changed

  87. "Juergenization"

  88. legal stuff You may be asked to sign our CLA

    SpringSource Contributor License Agreement
  89. contributing through external projects Example: Spring Social core & Spring

    Social Foursquare https://github.com/springsource/spring-social https://github.com/mattupstate/spring-social-foursquare
  90. sneak preview getting involved 2.0

  91. source control improvements everything on GitHub

  92. pull requests are...

  93. the new patch

  94. the new code review

  95. demo pull request / fork and edit

  96. next steps complete the migration of projects spring-framework post 3.1

    GA only a few remaining after that
  97. integrate pull requests into our JIRA workflow http://seam-framework.2283336.n4.nabble.com/git-pull-request-JIRA-workflow-td3272708.html http://community.jboss.org/wiki/GuideToUsePullRequestsWithGitHubAndJIRA

  98. improved artifact management Artifactory http://repo.springsource.org

  99. demo: repo.springsource.org unified search put a watch on anytihng license

    information transitive resolution migration path from s3 repos
  100. streamline CLA process deep integration via GitHub hooks API CLA

    database revised CLA agreement, web-only form
  101. Thanks! @cbeams this presentation on the web: http://cbeams.github.com/spring-community- 101