Get involved in Open Source

26
Contributing fixes to your favorite software Get involved in Open Source

description

Lots of developers would love to contribute to Open Source projects. The question many of them have is how. In this presentation, I walk through the steps needed to contribute to DNN, my favorite Open Source project.

Transcript of Get involved in Open Source

Page 1: Get involved in Open Source

Contributing fixes to your favorite softwareGet involved in Open Source

Page 2: Get involved in Open Source

2 DNN / Proprietary and Confidential. All Rights Reserved.

Where do you begin?

Page 3: Get involved in Open Source

3 DNN / Proprietary and Confidential. All Rights Reserved.

Start with something easy

Page 4: Get involved in Open Source

4 DNN / Proprietary and Confidential. All Rights Reserved.

Scratch your own itch

Page 5: Get involved in Open Source

5 DNN / Proprietary and Confidential. All Rights Reserved.

Read the docs on how to contribute

Page 6: Get involved in Open Source

6 DNN / Proprietary and Confidential. All Rights Reserved.

Make it easy for the team to say YES!

Page 7: Get involved in Open Source

The Four Steps

7DNN / Proprietary and Confidential. All Rights Reserved.

Page 8: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.8

Step 1. Document the Issue

dnntracker.atlassian.net

• Be thorough› Description› Steps to reproduce› Expected behavior› Actual behavior

• Include screen shots when possible

Page 9: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.9

Step 2. Get the Source Code

• Fork the code• Get a tool

› Git› GitHub for Windows› SourceTree

• Clone to local machine

Page 10: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.10

Sidebar: Version Control Systems

Client-Server

• TFS• SVN• VSS

Peer to Peer

• Git• Mercurial

SaaS solutions

• Sourceforge (SVN)

• CodePlex (TFS, SVN, Git)

• GitHub (Git)

Page 11: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.11

Sidebar: Version Control Systems

Client-Server

• TFS• SVN• VSS

Peer to Peer

• Git• Mercurial

SaaS solutions

• Sourceforge (SVN)

• CodePlex (TFS, SVN, Git)

• GitHub (Git)

Page 12: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.12

Sidebar: Version Control Systems

Client-Server

• TFS• SVN• VSS

Peer to Peer

• Git• Mercurial

SaaS solutions

• Sourceforge (SVN, Git, Hg)

• CodePlex (TFS, SVN, Git)

• GitHub (Git)

Page 13: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.13

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

Des

ktop

Page 14: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.14

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

Page 15: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.15

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

Page 16: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.16

Step 3. Make the fix

• Checkout correct branch• Open the DNN Solution

› Compile in Debug› Compile in Release› Perform install from browser

• Make code changes• Test your fix• Commit to your local repo

Page 17: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.17

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

Page 18: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.18

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

Dnn.Platform SolutionOpen

Edit

Page 19: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.19

Step 4. Submit a Pull Request

• Sync local repo to GitHub (Pull/Push)

• Verify Branch• Submit Pull Request

Page 20: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.20

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

Dnn.Platform SolutionOpen

Edit

Page 21: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.21

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

Dnn.Platform SolutionOpen

Commit

Edit

Page 22: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.22

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

Dnn.Platform SolutionOpen

Commit

Push

Edit

Page 23: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.23

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

Dnn.Platform SolutionOpen

Commit

Push

Pull Request

Edit

Page 24: Get involved in Open Source

24 DNN / Proprietary and Confidential. All Rights Reserved.

Congratulations!

You are part of the 1%

Page 25: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.25

What Next?B

igge

r con

tribu

tions • Enhancements

• Features• Community teams

Add

ition

al H

elp • Documentation

• Answer Questions• Create Extensions• Blog

Page 26: Get involved in Open Source

DNN / Proprietary and Confidential. All Rights Reserved.26

What Next?B

igge

r con

tribu

tions • Enhancements

• Features• Community teams

Add

ition

al H

elp • Documentation

• Answer Questions• Create Extensions• Blog