Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Introducing Contributions (github.com/blog)
302 points by jakebellacera on Jan 7, 2013 | hide | past | favorite | 89 comments


As a fanatical user of calendaraboutnothing in the past, I'm stoked to see the streak graph on the profile page. As others have mentioned, it can be extremely motivating!

However, I really don't care for most of my popular repos or some of the external ones I've contributed to. My ideal would be to hide repos that I don't care about and to highlight the ones that I want to showcase.

The "Contribution Activity" stuff is totally fine, but given how much the public repos reflect the "personality" of an individual, I am a little saddened that it's being lost in the sea of popularity. It'd be nice to be able to reclaim some control over that.

Edit: To clarify, two of my popular repos with a few hundred watchers between them are efforts I spent all of a few evenings on. I am as proud of them as some notes I scribbled last week. In contrast, I have repos which I've poured months of effort into which I would rather highlight.

Likewise, one of the repos to which I recently contributed is of such subpar quality that I'd rather not be publicly associated with it so prominently. Whilst I'm happy to help others out, knowing that it'd be displayed in such a prominent manner acts as an anti-incentive to partake in low quality projects.

So, if any GitHubbers are listening... please replace "Popular Repositories" with "Highlighted Repositories" and give us more control over what gets displayed with regards repos we've contributed to. And, oh, whilst I'm at it, perhaps "Most Recent Streak" would be more motivating than "Current Streak" which I imagine would be at an awe-inspiring 0 for many of us way too often.


Github really needs a "deprecated" flag for repositories (maybe it has one already? I don't know of one). This wouldn't solve your specific issue with the weekend projects (assuming the code is still serviceable), but would really help the signal-to-noise ratios in these lists and on other areas of the site.


I guess you could check them into a new repo and delete the old one to lose the watchers... Or even create an archive account.


> And, oh, whilst I'm at it, perhaps "Most Recent Streak" would be more motivating than "Current Streak" which I imagine would be at an awe-inspiring 0 for many of us way too often.

Not to mention, give it a day of leeway. I pushed code yesterday, but none yet today (it's still first thing) and my streak is 0.


Terrible.

There's a good idea buried somewhere in this, but they managed to completely miss the mark.

1. It needs an off-switch (globally and per repo). How did this feature get out the door without that switch? Does Zuckerberg manage product at github now?

2. The data is useless. What does it tell me that ednapiranha "contributed" to X during the last month, without any quantification? Nothing.

3. The data is useless. For most people the "popular repositories"-box shows 5 popular projects that they have forked...

4. The data is useless. When I want to see what a user (or myself) has contributed to then I want to see all of it, not the last 1 month.

Github appeals to the self-improvement, tomato-timer, fitbit crowd here. Those people will start blogging in no time about how "commit-streak tracking changed my life", from their barefoot standing desks. For everyone else these vanity-stats are worse than wasted space; they are visual noise that pretends to convey useful information but doesn't.


> Github appeals to the self-improvement, tomato-timer, fitbit crowd here.

What a bunch of bullshit. It's a tool. Thousands upon thousands of people use it daily because it helps them get stuff done.

If you don't happen to like the way it's presented, fine, but that's a personal preference, not a lifestyle choice.


I'm sure you also wanted to say something about the points I made but alas your tomato timer rang before you got to it, right?


No not really, I wanted to say something about the attitude.

I didn't think the points merited response, because it's self-evident that the blanket statement of 'the data is useless' simply isn't the case.

Anyway, let me be specific:

1. I can see why folks might want to be able to turn it on or off, but introducing visual inconsistency between different user profiles would feel pretty wonky to me.

2. Keeps the information dense. I don't need to know exactly what was committed in order for the information to be broadly useful.

3. Incorrect.

4. Recent = relevant.

That's not to say that I think it's perfect - for example, the 'current streak' will tend to 0 days for most users as noted by other comments, but overall I think it hangs together pretty well.


> Introducing visual inconsistency between different user profiles would feel pretty wonky to me

If GitHub made the default tab your repos instead (as it was before), all profiles would be consistent.

The default tab on projects is source—and projects can have optional wiki and issues tabs if they want. I think it should be the same with profiles' contributions tab.


You missed the word 'here'. The parent is talking about this one new feature, not GitHub as a whole.

GitHub is great, but I agree with moe. This seems like gamification, and GitHub's magic is in collaboration and communication. This turns me off a bit, as it smells like GitHub is trying to hook me rather than providing a tool I want to use.


For number 3, no they aren't for forked repos. See mine - https://github.com/deanperry - my popular repos aren't ones I've forked. I have quite a few forked repos which have been starred loads of times.


Hm, it seems I stand corrected, the list doesn't work like I thought it does.

However, I still don't understand what it's supposed to tell me. See for example (randomly chosen): https://github.com/peterb

According to Github his fork of "carrierwave" is his repo with "the most stars and watchers".

Well, it has 1 star. And I apparently can't see the number of watchers.

Neither can I see the list of commits/issues/pulls that peterb made to this repo, or which of his commits were merged (if any). Github shows me absolutely nothing that would let me gauge the quality or quantity of his contribution(s). Perhaps he's on the core-team of carrierwave, or he just corrected a typo in the README at some point - I'm none the wiser.

The key mistake here is to rank the contributions by the popularity of the project that was contributed to. Fix a typo in the README of Rails and that will likely remain your "top contribution" forever [unless I'm still misunderstanding how the list works]. It's the definition of vanity-stats; figures that can make you feel good but are ultimately misleading.

PS: If peterb is reading here: Sorry for using you as an example, I just clicked a random name on the list of rails-forks.


> The key mistake here is to rank the contributions by the popularity of the project that was contributed to.

That's not the case. Repositories Contributed To are ranked based on the impact an individual had on them (recency, # commits, # issues, etc). The popularity of the project has no effect on it.


Well, on just about every profile I tried there was Rails, JQuery or such front and center, on both sides ("Popular repos" and "Contributed to"). I still can't make out a pattern, it looks like a fairly random mix between the repos by the user and forked repos that they never contributed anything to.

Perhaps it'd become understandable if github displayed the actual metrics that lead to the ranking (commits#, issues, etc.).

Until then these new profiles remain sourceforgesque to me...


> Does Zuckerberg manage product at github now? I liked it.. No I loved it :D

I feel they're trying to address the general audience. It's good to configure the number of popular projects. but he popularity must be calculated automatically based on the user's contribution. But it's pretty good deal at least the for the sake of showing it at LinkedIn :)


I've wanted this for a very long time. I'm in search of a summer internship, so I've been hoping for a way for potential employers to quickly see what I've been working on. Not just my own projects, but also my pull requests to other projects.

Thumbs up for GitHub, this is a welcomed feature. Very attractive, too.


Indeed. It used to be that the only way to glean such information (for an arbitrary user) would be to crawl all the projects and sift through the data yourself.

I'm hoping that they make this info available through the API, and allow us to see contributions over all time, instead of just in the last year / month.


Even more so. The majority of my work is in organizations. Before it was difficult to see what I was doing. Unless someone is really interested in my emacs settings.


I'm not sure I like this.

It's generally considered that there's no effective way to measure productivity[0]. Whenever you introduce metrics, programmers end up gaming it: pay them by lines of code, they write too many lines of code; pay them by commit, and they're going to start committing too much.

These graphs are going to just cause programmers to both commit in too small chunks (or splitting up a commit into several), or delaying some overnight so that they have a longer streak. I know that the data was there already, but now it's made visible, people are going to start commenting on how much I'm coding.

[0]: http://stackoverflow.com/questions/324399/what-is-a-fair-pro...


I think it works really nicely. I wouldn't necessarily treat it as a measure of productivity, but it does help give an indication of consistency and trend.

I also like the idea of annotating it (perhaps that'll come as a feature sometime) It'd be nice to be able to mark on coding sprints & events.


Hm, I'm divided on this. It's cool to be able to see what someone works most on... But at the same time, there's the privacy concern of being able to see what someone works most on. I'd like the ability to turn it off—hell, you can already decide what repos you expose to the public, so why not activity?

Of course, I realize that your activity on GitHub is public anyway—but it's never been so obvious.


The privacy concern here seems just like the debate over the introduction of Facebook's newsfeed - that information was public, but not _obvious_.


It'd be enough to get me to switch to bitbucket. There wasn't really a Facebook alternative.


If you visit your "contributions" page while you are logged out, you will notice that all non-public activity is hidden.

I feel that you've raised a valid concern -- for the sake of privacy it would be best to have the option to deactivate this feature.


> If you visit your "contributions" page while you are logged out, you will notice that all non-public activity is hidden.

This wasn't immediately clear to me, so I had to test it out with Incognito. As it is, my own view of my profile is dominated by repositories from my prior business for which I no longer have access to on GitHub.

In general, I'd really prefer to be able to see my public profile. I guess it makes sense to let people know how much I contribute privately, but I want to be able to audit my public persona in much the same way Facebook has "View Profile As ____".


Maybe just a simple "View Public?" checkbox on the page itself would do. I agree - I have to check incognito if I want to see what I've actually done the most work on that everyone sees.


you are right to be concerned tho - despite the data originally being public, a collected view of public data (that wasn't easy to collect previously) can give new information.

The best way to solve this is if via some sort of toggle to turn off the view. Or, with more engineering effort, toggle each individual contributions that you don't want in the collated view.


I don't think I'll be using github for anything else. There's too much stuff which can't be disabled, deleted, or otherwise hidden.

I don't like their idea of "sharing".


I don't know whether I'm pleased that it hides my private activity or whether -- because almost all my activity is in private repos -- to be upset by that :D

Anyhow. Very pretty.


Would be good to have some options to expose private activity for aggregation then also another option to expose the repo name you are committing to.


Sounds dangerous - I don't think my employer would be okay with me exposing how frequently I contribute to our repositories, not due to any crazy paranoia but simply because they haven't thought about the potential outcomes or abuses yet.

To add this feature, GitHub would probably additionally have to add the ability to disable it on an organizational basis, and and that point a simple-sounding feature is transformed to a pointy-haired-boss "organizational matrix" level of potentially conflicting settings.


True, I guess I am thinking more from a personal interest perspective, like you would glance down a rescue time breakdown, rather than a telling the world. So one possibility would be to have your personal profile view show both.


> Sounds dangerous - I don't think my employer would be okay with me exposing how frequently I contribute to our repositories,

Easy fix: the owner of the repository (ie, the organization) can {en,dis}able the feature per-repo.


Heck no. Private is private. I don't want to have to manage another setting.


Another setting is not a problem, as long as they give it sane default value.


Maybe. I imagine they'll progressively roll this sort of stuff out, but why hold up the overall feature for the subset like me?


For whatever it's worth, I'm in this subset with you. I use github for all my work now, but > 98% of what I do is in private repos.


Maybe because it could draw unwanted attention of the presses - you want bloggers to write about awesome new feature, not about the potential implications of a hidden switch and what would happen if it's default state was different. It's easier to roll out such changes after people are already accustomed with the general idea.


I love this. I was not crazy about some of the changes Github had been making lately, but this is great! Way easier to see what someone has done at a quick glance vs having to scroll through a long list of repos.

The only thing I would suggest is like @tav said. They should change "Popular repositories" to "Featured repositories" and give users the option to edit the list. It could offer sort options (show 5 most recently active, show 5 most popular, show 5 most recently created) and also give an option to manually select which 5 to showcase and put them in a specific order.

In my case popularity works fine, but considering this is a way to showcase yourself offering some additional control is not the end of the world in my opinion.


Very cool! I used calendaraboutnothing /extensively/ - it was a hugely important motivational tool for me.

Unfortunately, it doesn't look like this counts contributions to non-master branches? I work mostly in branches and my calenderaboutnothing streaks were much longer.


Your commits will count for the day they were committed once they're merged to master. i.e., It's the date on the commit that matters, not the date it's eventually pushed to master. A little weird since it means past days can fill in later but we wanted to make sure they were counted.


What is this calendaraboutnothing of which you speak? Google wasn't very helpful here. I'm looking for a "streak-based calendar/motivational tool", and I gather that's what you are talking about.


It used to be at http://www.calendaraboutnothing.com/ which seems to be down now. You can get an idea from the archives: http://web.archive.org/web/20110716142534/http://calendarabo...


Yep, we don't count contributions until they hit a repository's default or gh-pages branch.


Hmm, but once they hit master they will be back-dated as contributions for that time period?


Yup, exactly.


Get those pull requests merged! :)


FINALLY. I've been wanting a summary page for all the projects I'm working on. I don't get the streak thing though


The streak is just the number of consecutive days that you've contributed at least 1 thing to a project on GitHub.


I have daily commits to a main branch of several of my projects but I'm on a 0 current streak.

Also, damn, the disparity between my public and private profile is huge. Imma gonna commit more to open source!


Looks like this is doing exactly what it's supposed to, then!


Certainly makes github more recruiter friendly and more and more the techys' CV site.

"Can I program and work in a team? am I active? Check out my github profile"


Looks great. How can I disable this for my account?


Ha, if you look at a GitHub profile with a current streak of 0 days, the date range is "Rock - Hard Place" :)


Nice! A link to your gists (e.g. https://gist.github.com/username) would also be nice to have on your profile page.


As long as it's just the public ones. I have a ton of private gists that I really don't want exposed.

(Admittedly, I need to get around to deleting them, too.)


(For what it's worth, we'll never publicly list out your private gists or otherwise make them known.)


I love the idea of Github as a resume, and this is easily one of the best features that push it in that direction. It allows for a quick glance at what an author contributes the most to, which can be a quick way of identifying the most successful projects they work on.

It really fixes the problem that organizations always had of visibility. My commits to an org repo usually weren't visible on profile except in the feed and as a link to the organization. This is a big improvement.


omg that's me.


Look at that! Let's all give unrequested feedback on your crypto implementation. [puts on neckbeard]


She should also add comments...


shut up tim!


Did GitHub notify you ahead of time or ask for permission to use your likeness to promote their company? :)


woah woah


I love it overall, but it would be great if the user could fine tune it a bit. An example: Under "Repositories contributed to" on my page, I see two repos from a place I worked. Those repos are private, and after I left, I had my commit rights revoked (reasonably enough!). But the odd upshot is this: those two repos show up on my page, and yet if I follow the links, I get a 404 page (which is how GH handles this situation: "you're trying to look at a private repo where you are not a collaborator".).

Since that's the case, it would be great if I could manually remove those two repos. (Note: if I logout, those repos no longer appear. So I'm not complaining about what others see - which I think is handled very well. I'm just wishing that I had more control over what I saw.)


If those repos are private repos, they show up to you and others that can see the repos but not to other users. I jsut checked that on my profile and half of my repos changed!


Having taken a few seconds to look at my (meager) contributions, it took me a while to understand the vertical axis of the field of boxes.

Then it hit me: it's happily US-centric, with weeks starting with Sunday. Aaargh. This should really be a user setting, since in my mind weeks start with Mondays.


Seems this has been some what divisive looking over the comments already posted here. Kudos for GitHub trying something different, it's a small tool that might help motivate people to keep going, in the same way fitness trackers do.


Wow this is great GitHub. One of my fave features so far. It was always a pain to see my most popular repositories and to view the repos that I have contributed to!


Like the idé , But don't know if it's that useful cause, It changes depending on who you are. Example if your Anonymous you went see much. If your a member of same Organization as the User your viewing , you will see different stats. And you self will also see other stats. So not sure whats the use-fullness of the feature.


I sent a support email suggesting this feature on the 17th of December - that's either a good turnaround time or they were already working on this!

I think it's great for people who mostly contribute to others' projects, rather than starting their own - which is arguably a better way to get involved in open source.


A dream for someone looking at a github profile with the purpose of see if he/she should be hired or not.


Hmm, doesn't seem to be connecting all the dots. None of the committers to Cassandra show Contributions there on their profiles: https://github.com/apache/cassandra/graphs/contributors


When I read this news I was expecting something like this http://www.ohloh.net/accounts/Stefan (show all repos that this person had done any commits/opened issues). Kinda sad.


As someone that's been working to wrap my head around how to work with and develop d3.js visualizations, this provides a great example of what's possible. Looks good, and the source definitely gives me a few things to investigate!


There's a repo that I am co-own, but since it was originally created by my colleague, it's shows up as he's the owner. Wish there was a way to make a repo equally credited on multiple profiles..


Awesome work dudes, I've been wanting something like this for a while.


It's interesting to see where GitHub is heading these days. The combination of software collaboration and showcasing projects / recruiter friendly profile pages is pretty compelling...


That's an interesting visualization of every day in the year. Anybody know if there is a standard name for them and/or any good tools for generating them in JS?


It looks a lot like the d3 calendar view example: http://bl.ocks.org/4063318 http://mbostock.github.com/d3/talk/20111018/calendar.html

Layout inspired by Rick Wicklin and Robert Allison (http://stat-computing.org/dataexpo/2009/posters/)


Very cool! It's interesting how much mine changes when I am logged in and can see all the private repositories I've contributed to at work.


Q: can you get these visualizations per project?


Try "Graphs".


Is it just me or does this only count commits to master? Nothing in branches seems to show up for me.


It only counts commits made to a master (or default) branch. Once your branch gets merged, we'll backfill all of your contributions.


Streak? C'mon, what is this, Xbox Live?

Not all commits are created equal and I don't find this new 'contributions' calendar/graph at all useful.

You still cannot get a good snapshot of contributions for users that are members of organizations.


Agreed - it's great to see what people have been contributing to and working on - but the number of commits and days in a row with a commit seem like meaningless data.


Well, measuring the quality of commits is an AI-complete task, so we need some proxies. Number of commits seems to encourage more small commits, which AFAIR is what is preferred in Git. Days in a row is an old "don't break the chain" trick.

> Streak? C'mon, what is this, Xbox Live?

Most likely, yes. I guess it's not about what that data means, it's more about what it does to you. I dread to use this word, but it's gamification.


> I dread to use this word, but it's gamification.

Which is the problem. I already enjoy writing code, and I don't need it to be gamified in order to give me an incentive to do so.

Worse, gamifying it skews the incentives, reducing overall code quality in the process.




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

Search: