Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Projects that power GitHub (github.com/showcases)
164 points by waffle_ss on March 25, 2014 | hide | past | favorite | 37 comments


Is there a reason why Github runs on it's own fork of Rails (I believe it's 2.3 or something), when they could just upgrade to Rails 4, from the official Master (which is faster and probably more stable AND most importantly with most security bugs fixed)??

Pardon me if I sound stupid, I'm just trying to understand why.


From my perspective, there have been a few different reasons why we haven't just upgraded:

1. Time spent upgrading Rails is time not spent building awesome things for our customers to use. We're extremely customer focused.

2. Performance is also a huge concern of ours. Over the past few years we've driven response times down dramatically. Upgrading Rails not only presents a slower framework (Rails 3/4 is not faster than 2.3), but a different architecture — changing where our performance chokes are. We'd have to do a ton of work on this front just to keep performance steady. Again, time spent here is time not spent making our existing infrastructure faster.

3. We've spent the past three years working on upgrading the stack. It's not so black and white — we have many of the benefits of newer rails without needing to upgrade everything. There has been a lot of effort here.

In my own personal experience, upgrading frameworks is generally the fastest way to create bugs and work on the opposite of customer impact. I don't think you should feel like you have to be on the bleeding edge.


As per number 2, are these GH specific or can they be sent upstream?


Not completely sure all the blockers but I think it may have to do with 2.3 being in maintenance mode (may even be unsupported at this point).

Either way, being able to contribute back is definitely one of the things people are looking forward to about being on a current version. I've heard a few mention they'd love to be able to send any Rails performance bits upstream much like we see with the Ruby patches lately.


Thank you, that was informative :)


"Just upgrade to Rails 4." Five words, months and months of hair loss.

There is a lot less radical change and a lot more focus on compatibility in Rails nowadays, and yet upgrading a substantial app to a new version of Rails is still a shaky proposition. For a lot of companies, the gigantic leap from 2.3 to 3 was more trouble than just paying somebody to maintain 2.3.


The Rails 2.3 -> 3 upgrade is not exactly a walk in the park.


I believe they have upgraded to 3, thanks to @tmm1. It was mentioned in some talk, probably by Zach Holman.


Significant work has been done by tmm1, rsanheim and a host of others, but it's not complete yet.

Basically, the work is on-going and pretty amazing to watch!


Missing something? :)

https://github.com/git/git


Actually, they use https://github.com/libgit2/libgit2 to create and manage Git repos. "libgit2 is a portable, pure C implementation of the Git core methods"

(You can find that listed on the page)


No, GitHub primarily uses regular git on the backend. It powers all fetches and pushes, diffs, and most of the history traversals. Some functionality is provided by libgit2, and it's ever-increasing because libgit2/Rugged is often more natural to call from ruby code (though a lot of it is replacing old Grit code, not git itself).

libgit2 powers much of GitHub's desktop apps, with regular git mostly filling in any functionality still missing from libgit2.


Since libgit2 is not yet feature complete when compared to git core, I'm quite certain that they use both. (For example, libgit2 did not have merge until relatively recently, so they could not be using it to power pull requests.)


Last I heard (couple months ago) it was used for a couple or three pieces of functionality only.

Based on my experience with it (master incredibly stale, not recommended, and the recommended "development" brittle and buggy), that's not surprising at all...


I'm sorry if you've found the development branch to be buggy - we strive for a high-level of stability there, so we'd be very pleased if you would open issues there.


Hey thx for the reply!

I was working closely (via IRC, email) with somebody (I forget whom) who discouraged work on master and suggested "development" -- is that still the case?

The more I delved into git, the more I realized what a large delicate job it seems to be (which is a matter for a different discussion). Regardless -- apologies if I came across to harsh -- I haven't looked at it in months... will re-pull, give it another look.

Good luck w/ the development!!!


No, you did not come across as harsh, your criticism is very accurate. The master branch tracks the latest release and is stable, but unfortunately we do not release with great frequency. We work in the development branch and - while we try to keep it stable - there's not a strong guarantee that it is. Especially when there's ongoing work in an area, it may become somewhat destabilized. This is regrettable but, I hope, understandable.

We should certainly be better about more frequent releases. As it is, we tend to overreach. Thanks for the feedback.


No mention of Resque. Is Github still using it, or moved on?

https://github.com/resque/resque/tree/1-x-stable

[edit -- thanks, I see that it is on the list now.]


We still use resque.


Is it true that Github runs a custom Rails fork? And if so, which version is it forked from?


Yes it's true (AFAIK). It's a fork of 2.3, and you can find it here:

https://github.com/github/rails


I can't find the post right now but I believe it's 2.3 with 3.x features put in, like asset pipeline.


What could I do to get my JavaScript game engine[1] listed on the JavaScript game engines showcase page[2]?

Or my music player server[3] on the music showcase[4]?

[1]: https://github.com/andrewrk/chem [2]: https://github.com/showcases/javascript-game-engines [3]: https://github.com/andrewrk/groovebasin [4]: https://github.com/showcases/music


GitHub has also posted some of the projects that power GitHub for Windows: https://github.com/showcases/projects-that-power-github-for-... and GitHub for Mac: https://github.com/showcases/projects-that-power-github-for-...


Is there a special library used to power the comments editor? I'd love to have a library that let me do drag and drop images into markdown.


So happy PJAX made the list. With all the JS frameworks out there I think this is the least appreciated.


What about any DB? MySQL, or Postgres? Is it all Elastic Search?


They use MySQL and the MySQL Project use Bazaar.


Hey Github peeps! Hubot apparently occasionally looses his brain. Yes, it _looses_ its brain occasionally. That is all.


I'm actually surprised at how short the list is. Presumably they use a lot more open-source projects than this?!


Wonder if they manually curate these lists or if they initially populated them with some sort of machine learning?


These are manually curated at the moment.

Though the selections may be inspired by machines. Or rabbits. Hard to say.


Does anybody know why they didn't go sidekiq instead of resque?


Sidekiq wasn't around when they made resque.


Curious to know if proxymachine is still used, anyone know?


thanks for letting me know what should I learn beforehand to work at Github!





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: