TinyMCE moved to GitHub
Spocke
It’s now official, the source code for TinyMCE has been moved to GitHub. There are many reasons why we decided to move TinyMCE from SourceForge and Subversion to GitHub and Git and I explain them in detail below. Many other popular JavaScript libraries has already moved over to GitHub so we are not alone in this decision.
Community
One important feature of TinyMCE is it’s active community. We get a lot of patches and code contributions from the community a problem with this is that it’s hard to handle these patches. They might come in different formats and needs to be applied in specific orders etc. A distributed version control system solves a lot of these problems it’s easier for users to fork the project do their modifications and for us to then pull those changes back in to the main trunk.
Speed
A major problem with SourceForge has been it’s performance. It sometimes runs at modem speeds when we try to commit contents to their hosted Subversion. We could have moved the Subversion repository to our own servers but that would mean that we would have to pay for the bandwidth and also have to setup a web based source browser. So since we where to move somewhere we might as well look for other alternative SCM system as well.
Ease of access
One thing we really like about GitHub is that it’s focused on the source code. The source is not tucked away in some corner, it’s the central thing of the project. GitHub has a very easy to use interface and we are very impressed with it so far.
Flexibility
An important feature of Git and it’s distributed nature is that it gives us much more flexibility. We can now push the repository to different locations so we can host the most recent version from us at multiple locations. That means that we are not tied to use GitHub we could also host it as our own servers as an alternative and just push to both of those. We can also setup our own hierarchy for handling code contributions. We don’t need to add all users to the central subversion repository if they are core commiters.
Drawbacks
Switching to Git has also it’s own set of drawbacks. For example it might be difficult for some developers to grasp the Git concept, the learning curve is currently a bit steep. There are very few or limited visual clients available for Git. Some users has external references to our repository in theirs.
Posted in Development
I’m sorry to hear this… I really liked the way I was able to use svn-externals to “import” TinyMCE into our web site’s working copy and update TinyMCE with a Subversion update command.
I looked into Git briefly, but was put off by it’s complexity, steep learning curve, and lack of GUI/modern tools.
Does anyone know if there is a Git plugin for Eclipse? Or any kind of Git=>SVN translator that would allow us to continue to pull TinyMCE updates from Git into our SVN repo?
January 14th, 2010 at 23:26Yes, some of the current drawbacks of Git right now is the lack of simple to use clients there are some promising ones but it’s still behind.
Git is fairly simple unless you do complex things. Also you normally don’t need to use the console version unless you do these complex tasks.
You can export your git repo right into your subversion project and setup for example a cron task doing it automatically.
There seems to be a Git client for Eclipse: http://www.eclipse.org/egit/
January 14th, 2010 at 23:36Yeah that’s a shame, personally I like subversion but I can see why you would move away from sourceforge.
January 15th, 2010 at 00:32I think in the long run Git or other distributed SCM systems like Mercurial will be the defacto standard for Open Source projects it’s so much easier to manage patches and contributions something you don’t have in closed source projects.
Subversion is not really suitable for open projects since you have restrictive access control which is perfectly fine for internal and closed source projects. For example we will most likely still use Subversion internally for our commercial products.
January 15th, 2010 at 00:51From Git @ wikipedia
# The TortoiseGit, Git-Cheetah and Git Extensions are Windows Explorer extension clients, as well as a standalone GUI and a Visual Studio 2008 Plug-in.
January 15th, 2010 at 09:41I second the idea that you should publish a SVN branch (should be easy to automate) that will make it easier for users used to SVN (won’t work as well for developers, but that’s okay)
January 17th, 2010 at 00:49I’m really surprised at the comments above criticizing the move to github. I, for one, am ecstatic about the move. TinyMCE is a great product and the move to github is only going to make it that much easier for the community to contribute and make it that much better.
Thanks for moving to github, I can guarantee we’ll see a spike in contributions to this project.
Nate
January 18th, 2010 at 00:05Cool. I’ve been waiting for this move … Nice work.
January 18th, 2010 at 07:36@Nate: Git and GitHub hasn’t really spread to the PHP and .NET developers yet. But I think this will be a snowball effect once enough projects switch over to Git.
I remember that it took a while before everyone switched over from CVS to SVN too so it’s seems that history is repeating it’s self.
January 18th, 2010 at 14:50So does this mean that the SVN branch is officially done and will no longer be updated, or is the completed 3.3 going to be the final branch released?
Just for those of us working with 3.3b1.
January 19th, 2010 at 22:59The SVN branch is no longer updated. We push all changes to git now we will setup a nightly build system soon but we need to restructure the server farm a bit before that so it might take a few weeks.
Then there will be an alternative for those who for some odd reason can’t checkout the git repository.
January 19th, 2010 at 23:11So are you still using SourceForge as your bug/issue tracker? Or are you trying to move away from SF completely?
January 20th, 2010 at 21:46We are still using SourceForge for downloads and issue tracking. But we will most likely move the issue tracker to our own servers, downloads might remain there since they have a pretty good cdn.
January 20th, 2010 at 23:12Is anyone familiar with the git-svn tool? http://maymay.net/blog/2009/02/24/how-to-use-git-svn-as-the-only-subversion-client-youll-need/
It looks like you might be able to use this to provide a “SVN mirror” of the GIT repo. But I’m not sure if it’s something that would be run by Moxiecode to update a central SVN repo from which we could synchronize, or if it’s something that I would run locally to synchronize my SVN working copy with the TinyMCE GIT repo.
January 21st, 2010 at 00:59I think the git repo needs to be subversion aware in order to commit it to a subversion repo.
January 21st, 2010 at 14:16This is a great help, ties things together for me. Looking forward to trying it out. Thanks.
http://bygsoft.wordpress.com/2010/01/18/howto-argouml-and-archgenxml/
January 22nd, 2010 at 14:21