Should I switch to GitHub? Should I mirror?

I’m in a dilemma.  Enough Mozilla community members have asked me, “why don’t you switch to GitHub?  There’s a larger JS community over there.”  I can’t exactly ignore that, considering that I really do need help.  And yet… I like SourceForge.  But not enough to be alone in the desert.

What do you think, Mozillians?  I know you’re busy, but how strongly do you prefer GitHub or SourceForge over the other?

UPDATE:  I just discovered comments were broken… fixed.

8 thoughts on “Should I switch to GitHub? Should I mirror?”

  1. I’m not sure how much I count as a Mozillian, but as an end user and someone who has had projects on both SourceForge and GitHub, I’ll try to explain why using SourceForge is a huge disincentive to participation. (It all comes down to GitHub being a code-hosting site while SourceForge is a site that happens to host code.)

    1. From the UI, it’s very clear that SourceForge isn’t a project hosting site. It’s a site that happens to host projects in order to draw users for the things they actually make money on. (“Solution Centers”, jobs board, ads, and other related money-making technologies) GitHub is a code-hosting site through and through and you can feel it.

    2. While the Allura refresh has improved integration, the SourceForge public UI is still cluttered, ugly, distracting, and lacking in visual direction. The feature set it emphasizes also makes it feel more like it’s trying to compete with software indexes like AlternativeTo, Ohloh, and FreeCode than with code hosting sites like GitHub and BitBucket.

    (To expand on the “ugly” part, it feels like they rebased it on Twitter Bootstrap 2.x without actually understanding the aesthetic behind it so you still get ugly layout and typography… but now with gradients.)

    3. SourceForge’s issue tracker UI has such a history of bad design that a lot of people aren’t even willing to take the time to check whether Allura is better. If it’s on SourceForge, all they can think of is the bug tracker that’s got a bigger learning curve than Bugzilla, only a few more features that GitHub Issues, and tons of weird ideosyncracies.

    (Things like encouraging CADT design by auto-closing bugs after a year of inactivity, making the “attach file” button so hard to find that I’m still not sure it was possible for files to be attached after the initial report was submitted, sending you e-mail notification of your own comments, and starting projects off with some placeholder issue categories that only confused users because nobody bothered to change them from the sample defaults.)

    4. Most people are still so turned off by their memories of ViewVC that they don’t know SourceForge’s “view source” system has caught up to 2003 and are keeping it at arm’s length.

    5. Did I already mention the horrible web design in Allura? Word-wrap AND ellipsization in commit messages so it wraps just enough to make the listing harder to read. A fixed-width layout in areas where more horizontal space would be a huge help. Sidebar buttons that obviously neither specify a web font nor were tested with many system fonts because they are just a few pixels too narrow to avoid word-wrap.

    All in all, it feels like someone took 1990s SourceForge (or one of those online magazines which needlessly paginate their articles and stick ads everywhere) and tried to keep it relevant by slapping a new coat of paint on it rather than hiring someone who actually knows how to design a UI.

    By contrast, GitHub actually feels like a state of the art site where the project and its code are the primary focus. (Which makes sense. They get their money by selling the same UI to businesses, not by packing it full of ads and “value-added services”)

    It’s reached the point where, even for projects like LXDE which I use every day, if it’s hosted on SourceForge and they don’t let me bend the rules and report bugs via their GMane-published mailing list, I don’t bother. (Luckily, as part of their move to merge with Razor-Qt, LXDE is investigating a move to RedMine, so that probably won’t be a problem much longer.)

  2. Given a choice between sourceforge and github I’d definitely go for github. It’s more modern, has a vibrant community and seems to be continuously updated with new features. I can’t even get access to my old sourceforge account because the various password reset options don’t work for me.

    For me though the question is between github and bitbucket. bitbucket has less of a community and trails behind github in features … except it gives free private repos and allows you to use mercurial and I vastly prefer mercurial to git. In the end I think github is going to be my choice (I already host much of my stuff there) purely because everyone knows where to find you.

  3. I know I won’t solve your problem at all, but let’s go anyway. 🙂

    From community, UI and technical point of view, GitHub is definitely a great tool, I really love what the team has done there (except for the latest UI update, but that’s another story), and I use it everyday.

    But it is always funny to see that we always seem to loose focus about one important thing : freedom.

    We do FLOSS. Despite all of this, we are always talking about switching from one PROPRIETARY forge to one another. Isn’t it a long-term problem? Have we lost faith in the “open”? What are the risks of putting not only all our code — which is not a problem by itself considering the decentralized nature of git — but also all the heart of the project : its community, through the PRs, issues and so on? What if suddenly GitHub takes a wrong decision, and I want to instantly extract all my data into a new service that works the same way?

    There are two things to consider : loyalty of the hosted service (which may not be economically viable in the long run), and its availability as Free Software.

    I don’t say I have the solutions. I am not saying “Github is baaad because it is proprietary”. There is currently no good hosted open source alternative (Gitorious lags several years behind GitHub for example), and even GitHub is like an “open core”, releasing most of their internal technologies but still not what makes the added value of the site.
    I just want to point out this obvious contradiction between what we, as FLOSS community, and specifically Mozilla community, build and what we relie upon.

    So, if you want to know what I personally plan to do: switch all my code to a self-hosted gitlab (which seems to have a fork allowing anonymous view), with mirror everywhere, including GitHub. There is still the “community” problem, where it is really easy to developers to track a project when it is in github.

    1. As long as you disable the integrated issue tracker and point people at an open-source issue tracker elsewhere (which you could write a Pull Requests plugin for), I don’t see why you’d have a problem with GitHub on data portability grounds.

      The repo hosting, wiki, and GitHub Pages offerings are all backed by git repositories which can be anonymously cloned to migrate the entire history out of GitHub in a single shell command.

      I can’t think of any other provider which forces the project website and wiki content to be that easy to fork, backup, or migrate out.

  4. To Me, It really isn’t about which is better. But more about which one has larger community of software developers.

    Mozilla is the underdog when it comes to Web Browsers. To continue to succeed and compete with Giants like Apple on WebKit, Google and Opera on Chrome / Blink, Microsoft on IE. It will need all the help it can get. And hosting it on Github is one of those step that should be taken earlier rather then later.

    And since hosting on GitHub is free. Why not do it?

    1. *nod* The other big benefit on the “available resources” front is that, if you don’t have access to the mozilla build infrastructure, a huge ecosystem of “free for open-source, paid for everyone else” services have popped up which generally make “must be hosted on GitHub” a requirement. (Usually because they feel it’s too much extra complexity to support OAuth login from additional sites)

      For example, open-source projects on GitHub get free continuous integration, code coverage reporting, and continuous deployment via Travis-CI and Coveralls.

      (I’m slowly retrofitting my Python projects with Travis-CI configs which run flake8 for simple static analysis and PEP8 style compliance followed by the unit test suite and then an ePyDoc docstring syntax check.)

      The SauceLabs free Selenium testing for open-source web apps offer does support SourceForge, but Travis provides a nice integration helper to simplify automatically firing them from GitHub commit hooks as part of your normal unit test run.

      …plus other language-specific services like the CodeClimate automated code review service for Ruby on Rails and Javascript. (The only option their “add an open-source project for free” form gives is to fill in a GitHub repo name.)

      1. Oh, and I forgot to mention that “programmer resumé/CV” sites like StackOverflow Careers and MasterBranch generally list GitHub and BitBucket but not SourceForge in their “import your open-source projects” wizards.

Comments are closed.