Get involved in Open Source

Preview:

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.

Citation preview

Contributing fixes to your favorite softwareGet involved in Open Source

2 DNN / Proprietary and Confidential. All Rights Reserved.

Where do you begin?

3 DNN / Proprietary and Confidential. All Rights Reserved.

Start with something easy

4 DNN / Proprietary and Confidential. All Rights Reserved.

Scratch your own itch

5 DNN / Proprietary and Confidential. All Rights Reserved.

Read the docs on how to contribute

6 DNN / Proprietary and Confidential. All Rights Reserved.

Make it easy for the team to say YES!

The Four Steps

7DNN / Proprietary and Confidential. All Rights Reserved.

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

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

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)

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)

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)

DNN / Proprietary and Confidential. All Rights Reserved.13

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

Des

ktop

DNN / Proprietary and Confidential. All Rights Reserved.14

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

DNN / Proprietary and Confidential. All Rights Reserved.15

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

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

DNN / Proprietary and Confidential. All Rights Reserved.17

Understanding Git & GitHubG

itHub

dnnsoftware/Dnn.Platform

jbrinkman/Dnn.PlatformFork

Des

ktop

/documents/github/Dnn.PlatformClone

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

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

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

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

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

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

24 DNN / Proprietary and Confidential. All Rights Reserved.

Congratulations!

You are part of the 1%

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

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