Skip to content

Why DNN Community Extensions have Moved to GitHub

Ernst Peter Tamminga edited this page Aug 5, 2018 · 3 revisions

You may be wondering why we are further confusing things by moving DNN Extensions projects to GitHub when it’s already well established on CodePlex. Below is an outline of why projects are being moved, what it means to the project and what you can do to help.

Everyone would likely agree that projects are not moving forward as fast as anyone would like to see. The reality is that every project is big/complex enough that it would require one or more full time developers to make rapid progress. Most volunteer developers can’t devote a large amount time to open source projects like this on a regular basis. For this reason, it's essential that we spread the workload and get as many people involved and contributing as possible yet we need to do it in a way where it doesn’t create complete chaos in the project.

This is where Git and GitHub come into play.

Git itself is a distributed version control system that has gained an immense amount of popularity over the last few years. For those of you who aren't programmers, version control systems allow us to track and store changes that are made to the project in a way where nothing is ever lost and we can easily go back to previous versions to make or review changes, etc.

The distributed nature of git makes it so that anyone can easily grab their own copy of the project by “forking” and/or “cloning” the projects “repository”. They can then make changes and submit them back for inclusion into the main project. This is done by making what is knows as a “pull request”. Coordinators can then merge the submitted changes back into the code along with their own changes.

GitHub leverages git and adds a UI layer that promotes social collaboration. Using the tools that GitHub provides developers and non-developers can submit changes to the project and/or comment on changes that others are submitting. It's worth noting that CodePlex also supports Git. However, its social collaboration features currently lag behind those availabe on GitHub.

It's this "ease of collaboration" that makes GitHub so attractive for a project like DNN. The more people actively involved, the better.

There is still one thing that CodePlex offers that GitHub doesn’t: Integration with DNN's extension gallery. We will continue to post major releases to Codeplex so that they appear in the gallery. However, all other project activity should now occur in our GitHub repository.

How You Can Help!

  1. If there are existing bugs or feature requests that you would like to see addressed, please take a few minutes to add them to the issues page on our GitHub repository. It will not be practical for us to import all of the old issues from CodePlex and many of them are duplicates, fixed or outdated anyway.

  2. Rather than starting a new discussion thread on CodePlex, consider entering a new issue on GitHub and marking it as a question. GitHub doesn’t really provide a separate discussion section. However, marking an issue as a question essentially serves the same purpose. This approach makes a lot of sense because “issues’ and “discussions” often contain the same types of information.

  3. The projects are very short on documentation right now. If you know of/have information that is helpful to users, please consider adding it to the project Wiki on GitHub.

  4. Take a few minutes to learn about Git/GitHub. You may be surprised how easy it is to contribute changes to the project even if you aren’t a programmer. For example, lets say find a typo in the project. You can then use the search tool to find where the typo occurs in the source. You can then correct the typo in your own “fork” of the source and then submit the change back to the project. All of this can be done via the GitHub web ui without having to have any source code or developer tools on your own computer. It sounds a bit scary, but it’s actually quite simple.

Helpful Links

Here are a few links that can help you get up to speed with using Git & GitHub.

Git

GitHub

Note: This content was borrowed liberally from this page.