Open up the former core modules?
Last weekend I spend a rainy Sunday moving a number of (former core) DNN modules
from CodePlex to GitHub. My intention was to open up the source and the modules
for a larger group of community members. And GitHub seems a way of doing that for
Open Source projects.
Moving the projects to GitHub has some advantages:
The source can be easily forked and cloned:
So that everyone can have his or her own copy of the source to play with
Enhancements can be easily provided:
The pull request principle of GitHub is a boost in distributed development and
working together in distributed (both in time and location) teams
The documentation can be easily enhanced:
The Wiki is open to everyone to produce documentation. Any GitHub user can create
and edit pages to use for documentation, examples, support, or anything you
wish.
Microsoft is moving their open source projects to GitHub:
And who are we to question that move and do things completely different?
What did I do for the move?
There is a whole list of module projects that I moved to (duplicated on) GitHub.
What did I do? For every project that I moved, I
- created a new repository on GitHub in the group
DNNCommunity;
- initialised the repo with a default readme, a default gitignore related
to VisualStudio, a MIT license;
- downloaded the latest source from CP;
- tried to figure out the clean module source in the source zip that I obtained;
- added the latest source pack of the module as source start;
- improved the gitignore to the one used by DNNPlatform;
- created a development branch
- created a GitHub release for the latest release of the project using the latest
release files of the project on CodePlex;
- added release notes to the release on GitHUb (if the CP project had release
notes);
- added documentation on the front page of every CodePlex project pointing
the visitor to the right repo on GitHub;
- changed the title of the CP project, so it shows that the project has been
copied/moved to GitHub;
- removed all team members from the CodePlex project.
(The last thing was not a good idea, but I will come back on that further on).
Which module projects did I move?
I did this for the following projects:
DNN.Links,
DNN.Forum,
DNN.ActiveDirectory,
DNN.FormAndList,
DNN.Reports,
DNN.Announcements,
DNN.NewsFeeds,
DNN.IFrame,
DNN.XML,
DNN.Wiki,
DNN.Feedback,
DNN.Events,
DNN.FAQ. You
can find a list of the projects if you go to the
DNNCommunity group
account on GitHub. I have documented my steps
in the wiki in the DNNCommunity home page on GitHub.
There were also some disadvantages. In the process of moving the projects, I
cleaned the team of the CodePlex projects and removed all members. That upset some
of the team members that were still active for the CodePlex project. Looking back,
removing all team members was not the best thing to do, but as an excuse I have
to say that I found a whole bunch of team members that were not active at all, they
did not log in into CodePlex for years.
Nothing has been lost. If you think I have
done it wrong for you, tell me your CP id and project and I happily re-add you to the CP
project and you can do the things your way.
Interested in contributing?
Go to the repo on GitHub, fork, clone, correct, improve and enhance the module,
publish the result and, if possible, create pull requests for the original copy.
And if you are interested to do a bit more, become project member and handle all
enhancements directly on the GitHub module projects. Contact me if you are interested.