SlideShare a Scribd company logo
1 of 47
Download to read offline
Spring Projects Infrastructure
Processes, Source Control, Builds, Community, and more!




                                                          © 2009 VMware Inc. All rights reserved
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
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 World




task 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

More Related Content

What's hot

Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Michael Plöd
 
GitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comGitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comB1 Systems GmbH
 
Version control with git
Version control with gitVersion control with git
Version control with gitPurav Gandhi
 
EclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heavenEclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heavenmsohn
 
Self Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersSelf Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersPurav Gandhi
 
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...Edureka!
 
Gerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 minsGerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 minsLuca Milanesio
 
GitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewGitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewLuca Milanesio
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productiveKarsten Dambekalns
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011thkoch
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administrationShawn Doyle
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction TutorialThomas Rausch
 
Git and github fundamental
Git and github fundamentalGit and github fundamental
Git and github fundamentalRajesh Kumar
 
How we scaled git lab for a 30k employee company
How we scaled git lab for a 30k employee companyHow we scaled git lab for a 30k employee company
How we scaled git lab for a 30k employee companyMinqi Pan
 
Writing Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future SelfWriting Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future SelfAll Things Open
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?Weaveworks
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabShinu Suresh
 

What's hot (20)

Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3
 
GitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comGitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.com
 
Version control with git
Version control with gitVersion control with git
Version control with git
 
EclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heavenEclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heaven
 
Self Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersSelf Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository Managers
 
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
 
Gerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 minsGerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 mins
 
GitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewGitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code Review
 
Migrating To GitHub
Migrating To GitHub  Migrating To GitHub
Migrating To GitHub
 
Git
GitGit
Git
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productive
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administration
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
 
Git and github fundamental
Git and github fundamentalGit and github fundamental
Git and github fundamental
 
How we scaled git lab for a 30k employee company
How we scaled git lab for a 30k employee companyHow we scaled git lab for a 30k employee company
How we scaled git lab for a 30k employee company
 
Writing Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future SelfWriting Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future Self
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLab
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 

Viewers also liked

Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects InfrastructureRoy Clarkson
 
Native Android Development Practices
Native Android Development PracticesNative Android Development Practices
Native Android Development PracticesRoy Clarkson
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5Roy Clarkson
 
รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...
รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...
รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...ณรงค์ พร้อมบัวป่า
 
амангельдинов амир+туризм+предприниматели
амангельдинов амир+туризм+предпринимателиамангельдинов амир+туризм+предприниматели
амангельдинов амир+туризм+предпринимателиAMIR240495
 
Extending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScriptExtending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScriptRoy Clarkson
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapRoy Clarkson
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with SpringRoy Clarkson
 

Viewers also liked (8)

Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Native Android Development Practices
Native Android Development PracticesNative Android Development Practices
Native Android Development Practices
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...
รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...
รูปแบบการบริหารการป้องกันนักเรียนกลุ่มเสี่ยง ในโรงเรียนขยายโอกาส สังกัดสำนักง...
 
амангельдинов амир+туризм+предприниматели
амангельдинов амир+туризм+предпринимателиамангельдинов амир+туризм+предприниматели
амангельдинов амир+туризм+предприниматели
 
Extending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScriptExtending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScript
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGap
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with Spring
 

Similar to Spring Projects Infrastructure

S2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureS2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureGunnar Hillert
 
Digital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesDigital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesMassimo Menichinelli
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedHoward Greenberg
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubScott Graham
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersDeepikaRana30
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHubCuong Ngo
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024Cloud Native NoVA
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Vadym Kazulkin
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentMatthew Farina
 
What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondLuca Milanesio
 

Similar to Spring Projects Infrastructure (20)

S2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureS2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects Infrastructure
 
Digital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesDigital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: Files
 
Giddy Up on GitHub
Giddy Up on GitHubGiddy Up on GitHub
Giddy Up on GitHub
 
Git_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdfGit_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdf
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub Explained
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginners
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
 
GitHub for partners
GitHub for partnersGitHub for partners
GitHub for partners
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 
Git Training
Git TrainingGit Training
Git Training
 
GIT By Sivakrishna
GIT By SivakrishnaGIT By Sivakrishna
GIT By Sivakrishna
 
What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyond
 

Recently uploaded

IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
The Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementThe Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementNuwan Dias
 
UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5DianaGray10
 
Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Alexander Turgeon
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 

Recently uploaded (20)

IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
The Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementThe Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API Management
 
UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5
 
Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 

Spring Projects Infrastructure

  • 1. Spring Projects Infrastructure Processes, Source Control, Builds, Community, and more! © 2009 VMware Inc. All rights reserved
  • 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. 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
  • 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
  • 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 World task 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
  • 31. Bamboo Features  Continuous Integration  Highly Configurable  Instant Feedback  Continuous Deployment  Release Management  JIRA Integration  Plugin Support 31
  • 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
  • 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

Editor's Notes

  1. Mentioning how distributed the teams are US, across Europe, Australia