spring projects infrastructure

Post on 12-Jun-2015

251 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presented at the Atlanta Spring User Group, July 2012

TRANSCRIPT

© 2009 VMware Inc. All rights reserved

Spring Projects Infrastructure

Processes, Source Control, Builds, Community, and more!

2

About Us

Gunnar Hillert, SpringSource, VMwareSpring Integration@ghillertblog.springsource.org/author/ghillert/

Roy Clarkson, SpringSource, VMwareSpring for Android, Spring Mobile@royclarksonblog.springsource.org/author/rclarkson/

3

Agenda

History

New Tools

Process

Differences between projects

Community and how you can get involved

4

5

What is Spring?

Spring AMQP

Spring for Android

Spring Batch

Spring Data

Spring Framework

Spring Gemfire

Spring Hadoop

Spring Integration

Spring Mobile

Spring .NET

Spring Roo

Spring Security

Spring Shell

Spring Social

Spring Web Flow

Spring Web Services

And more …

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

8

github.com/SpringSource

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

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

11

Contributing

12

Sign the Contributor License Agreement

https://support.springsource.com/spring_committer_signup

13

Fork the Repository

Navigate to github.com/SpringSource/<project>

Select the button

Select your local GitHub account as the destination

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

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

16

Reviewing Code via Pull Requests

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

Contributors and Committers follow same process!

GitHub Pull Request = Code + Issue + Code Comments

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

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

20

Code Reviews @ Cloud Foundry

21

Code Reviews using Gerrit

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

23

24

Gradle Hello World

task hello {

doLast {

println 'Hello world!'

}

}

25

Building Spring

$ git clone git://github.com/SpringSource/spring-framework.git

$ cd spring-framework

$ ./gradlew build

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 …

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

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

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

30

build.springsource.org

31

Bamboo Features

Continuous Integration

Highly Configurable

Instant Feedback

Continuous Deployment

Release Management

JIRA Integration

Plugin Support

32

repo.springsource.org

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

34

SpringSource Repository

If you are using…

maven.springframework.org

You should update to…

repo.springsource.org

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

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>

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

38

sonar.springsource.org

39

Collecting Metrics using Sonar

40

jira.springsource.org

41

Found a bug or miss features?

Submit bug reports

Request features

Vote for issues

Provide feedback

Track status

Watch issues

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

43

Other Pieces in the Toolbox

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

45

Interact with the Community

Forum: http://forum.springsource.org

Stackoverflow: http://www.springsource.org

46

Jürgenization

47

Questions??

Thanks!!

top related