Recently we announced that DNN joined the .NET Foundation and since then there’s been a lot of energy and momentum in the ecosystem. The renewed focus on open source has people talking about OSS (open source software) contributions. It recently occurred to me that some are unsure of the path to contributing their open source extensions.
Contributing Your OSS DNN Project
Do you have a module, theme, provider, or some DNN project already in existence that you want to contribute it to the community? If so, what do you do? How do you get started? That’s the subject of this blog entry.
Post Your Project on GitHub
If you’ve been working on a DNN project for a while it’s most likely in your source control repository whatever that may be. If you’re new to GitHub, it’s a very popular version control system. DNN has recently switched to using GitHub as it offers a lot of features that are great for open source solutions.
If you don’t have a GitHub account, the first step is to create one. Once your account is created you should then create a new repository and ensure that it’s public, that you select the appropriate license, and post the code for your OSS project to the newly created repository.
GitHub makes it really easy to engage other OSS contributors and the greater DNN Community. Once on GitHub, developers can download your project, test it out, make suggestions, and even submit enhancements or bug fixes to you. GitHub makes issue tracking and conversations about the code of your project very simple. On top of all that by being open source, you’re opening the doors to the contributions of anyone else who is passionate about your project.
If your project is popular it can grow over time and sub-communities can form around it. DNN itself is a repository on GitHub!
Promote Your Project Online
With your project now on GithHub, it’s time to let people know about it! As you can imagine, there are tons of public repositories on GitHub, so getting the word out is critical to the success of your project. Though, you don’t have to go at it alone.
Below are some ideas for promoting your project online and some ways we at DNN can assist:
Make a Website
One obvious way to promote your project is to make a website about it. As an example, http://www.nvquicksite.com is a DNN related OSS project that has a 1-page website with links to it’s location on GitHub. A website can serve as a marketing tool for your OSS project. It can house any content you like such as instructional videos, forums, guides, or any other relevant info that you’d like to have on the site vs. hosting on GitHub.
Another way to let people know about your project is to create Twitter and/or Facebook accounts for your project or simply promote from your personal accounts. With Twitter or Facebook you can follow influential DNN ecosystem members, jump in hashtag streams, and follow or @ mention DNN developers who you think may be interested in your project. And don’t forget to mention @DNN! We love OSS contributions and will do our best to share your project(s).
The DNN Digest is the DNN ecosystem’s monthly newsletter that is sent to everyone in the ecosystem. If your project is gaining momentum in the community it could be featured in DNN Digest. As DNN Digest editor, I’m constantly looking for new content and would love to know about your OSS contributions to the DNN ecosystem. Promoting your newly contributed DNN project to the masses won’t hurt your chances at exposure!
Not every OSS contribution will get a webinar, but for those that are really popular in the ecosystem we’ll consider it. Once your project becomes the “buzz” of the community we’ll help you share your project in a live webinar so that everyone in the ecosystem has a chance to see your project in action, participate in polls, and ask you questions. A DNN webinar can really help get some energy behind your project.
Present on Your Project
Another way to help get energy behind your project is to present your project at conferences, user groups, and meetups. In the DNN ecosystem you can reach out to the crew at Southern Fried DNN to present at one of their monthly meetings or submit your project as a speaking session at DNN Summit or DNN-Connect. Meetups and conferences are great launching pads for your OSS contributions. You never know who might see your project in action and become a superfan!
The Prompt Example
Recently we had an awesome OSS contribution that got so popular it worked its way into the core of the DNN platform! “Prompt” is a command line tool for DNN that makes the life of DNN administrators much easier. It doesn’t just stop there as developers can even leverage the goodness of Prompt.
Let’s look at the journey of Kelly Ford’s DNN Prompt...
Kelly Ford, creator of Prompt, had a vision and started writing code. He developed his project until it got to the point to where he felt it was ready to be shown to the public. In the early stages, he and Peter Donker discussed and strategized integrations in DNN. After more development, Kelly went public with his project around the time of DNN Summit. There was a lot of buzz about the project and several conversations at DNN Summit were around DNN Prompt.
Not too long after DNN Summit, Kelly decided to open source Prompt. He posted the project to a public GitHub page and the project was accessible to anyone who wanted to be involved. Community members took notice and before long Kelly was presenting on Prompt at Southern Fried DNN and over time more people got involved with the project. Community members got active, helped build out wiki articles, new extension points and integrations, created blogs and videos, and the project gained momentum in the community. It gained so much popularity that it won “2017 DNN Champion” at last year’s DNN-Connect Conference.
DNN Corp took notice and then conversations took place about integrating Prompt into the core of the solution. After months of development work Prompt has been enhanced more, integrated into the core, and is available to everyone in the community. Several blogs have posted about Prompt and Prompt is even being featured in a webinar on November 30th. (Join us!).
Don’t Have an Already Existing Project… No worries, You Can Still Contribute
The focus of this blog was for those who already have projects in existence and want to open source them, but you don’t have to already have a project contribute! If you don’t have an already existing project just get active on GitHub with any DNN core or DNN related project that you’re passionate about.
You don’t even have to write code. You can create documentation, create training materials, perform testing, or just whatever you’re passionate about. Just remember that if you’re making code changes to the DNN Platform just ensure you have a signed CLA in place as denoted on the Contributing page on GitHub.
I hope you find this info helpful and we hope to see your OSS contribution soon!