TinyMCE moved to GitHub

January 14th, 2010 by 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

16 Responses

  1. Richard Davies Says:

    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?

  2. Spocke Says:

    Yes, 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/

  3. Linus Says:

    Yeah that’s a shame, personally I like subversion but I can see why you would move away from sourceforge.

  4. Spocke Says:

    I 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.

  5. smurfd Says:

    From 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.

  6. Jason Axelson Says:

    I 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)

  7. Nate Murray Says:

    I’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

  8. Abdul-Jabbar Says:

    Cool. I’ve been waiting for this move … Nice work.

  9. Spocke Says:

    @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.

  10. Jeff Knipfel Says:

    So 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.

  11. Spocke Says:

    The 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.

  12. Richard Davies Says:

    So are you still using SourceForge as your bug/issue tracker? Or are you trying to move away from SF completely?

  13. Spocke Says:

    We 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.

  14. Richard Davies Says:

    Is 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.

  15. Spocke Says:

    I think the git repo needs to be subversion aware in order to commit it to a subversion repo.

  16. lopez gonzalez Says:

    This 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/

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.