Giter Club home page Giter Club logo

codetriage's Introduction

CodeTriage

Main View performance data on Skylight Code Helpers Badge

What is Triage?

When patients come into the emergency room, they don't see a doctor immediately, they go to a triage nurse. The nurse knows enough about medical problems to properly assign that person to the doctor that can help them the quickest. Since the doctors are the most limited resource, triage nurses help to assign them as effectively as possible. Triage in open source means looking at open issues and adding useful information for maintainers. While you might not maintain a repository, you can help those who do by diagnosing issues, reviewing pull requests.

Why Triage?

Triage is an important part of open source. It can be difficult to keep up with bugs and assess the validity of contributions. Code introduced to fix one problem can easily generate more problems than it solves, so it's important for maintainers to look closely at bug reports and code contributions. Unfortunately as the size of a project grows, the demands placed on the maintainers grow. This means they are forced to choose between spending enormous amounts of time reviewing each GitHub issue, only skimming over issues, or worse, ignoring issues.

As a non-maintainer, you can help an open source project by triaging issues. When issues come in, they are assigned out to triage. If you get assigned an issue, you should look closely at it, and provide feedback to make a maintainer's life easier. If there is a bug reported, try to reproduce it and then give the results in the issue comments. If code is included in the issue, review the code, see if it makes sense. Code submitted should have a clear use case, be in the same style as the project, and not introduce failures into the test system. If the code is good, leave a comment explaining why you believe it is good. +1's are great, but leave no context and don't help maintainers much. If you don't like an issue you need to explain why as well. Either way leave a comment with the issue.

How Does it Work?

You sign up to follow a repository, once a day you'll be emailed with an open issue from that repository, and instructions on how to triage the issue in a helpful way. In the background we use Sidekiq to grab issues from GitHub's API, we then use another background task to assign users who subscribe to a repository one issue each day.

See CONTRIBUTING.md for details about contributing and running the project locally.

Contact

Richard Schneeman

Licensed under MIT License. Copyright (c) 2012 Schneems. See LICENSE.txt for further details.

codetriage's People

Contributors

andrew avatar arthurnn avatar avcwisesa avatar baxter2 avatar chancancode avatar ck3g avatar corincerami avatar davidragone avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar elliotthilaire avatar gabrielrmuller avatar gazay avatar gregmolnar avatar greysteil avatar hbontempo-br avatar hone avatar jroes avatar kylefiedler avatar lostapathy avatar maclover7 avatar mattzollinhofer avatar mwitek avatar nateberkopec avatar neilmiddleton avatar parndt avatar prathamesh-sonpatki avatar rodrigosaito avatar schneems avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codetriage's Issues

How should I triage rspec/rspec-core#616?

A process question:

I received rspec/rspec-core#616 for triage today. As of this question, the latest comment is two months old. That feels stale to me. On the other hand, there was a meaningful conversation going, so it's not that the issue was simply ignored.

Things I can do as a triager:

  1. Bump the thread by saying, "So, where are we on that?" That just seems annoying, although perhaps the maintainers would find it useful.
  2. Contribute something interesting to the conversation, only I happen to have nothing interesting to say about this.
  3. Ignore the issue and risk letting it get lost. It'll come up again for triage, but the next triager will probably also ignore it, unless it's really, really old by then.

So my questions are:

  • What is the right thing to do in this case?
  • Is the answer to that question dependent on the project and maintainers, or is there an across-the-board rule of thumb?
  • Can we change the triage instructions so the next person doesn't have this question? Or, if it's project-dependent, will custom triage instructions (#31) solve this for the next person?

I'm raising this as an issue not so much because I need help triaging this one RSpec issue, but because I want to make sure the triaging process is as clear as possible for new people.

/cc @dchelimsky on the theory he'll have some insight.

Send daily emails in a digest instead of individually

Thinking Stack Overflow newsletter style with an issue for each of the repos a user is subscribed to, as well as maybe some metadata about each issue like up to x words from the description, comment count etc.

Thinking will have to move triage email sending into User model, find_each users, then add an issue to the email for each repo_sub for given user.

I'll happily submit a PR for this when I have time later this month if everyone is happy with it.

Validating email - worth the effort?

Greetings,

I had a similar problem to issue #96 Can't Sign in. The sign up only checks for the email in your github profile to be non-blank.

flash[:error] = no_email_error if request.env["omniauth.auth"].info.email.blank?

Would it be worth the effort to add a check for a non blank but invalid email address? The validation of the email string is potentially a non trivial task with limited returns.

Is this a task worth investigating further? or is effort better spent elsewhere?

As an OSS maintainer, can I see who is subscribing to the project I maintain?

I'm really interested to see who is subscribing to hotsh/rstat.us. I'm trying to put into words why... I might just be curious :)

I suppose I'd like to be able to do outreach if people have been subscribed to rstat.us for a while but haven't contributed at all-- they showed interest in contributing but haven't for some reason, and I'd like to know if I could do anything to help get them involved.

I'm very very interested in bringing new people into open source and would love this as a potential way to reach out to people :)

Nonexistent page "/users"

When clicking the "Back" button on my user profile page, I get an error saying that the page does not exist.

Clicking the "Back" button leads to /users

Show flash message or redirect after saving email change

I changed my email, and the data was updated, but there was no acknowledgement. From a UX perspective, I either wanted the submit button to redirect to the show view, or to flash a message that my update was saved. But here's the update method from the controller:

def update
    @user = current_user
    @user.update_attributes(params[:user])
    redirect_to :back
  end

Shouldn't redirect_to :back go back? It's not working.

Make starred (and watched) repos easy to add.

At http://www.codetriage.com/repos/new, in addition to seeing your own repos, it would be nice to see repos you've starred on GitHub, as you're likely to be interested in triaging them.

The same may be true of watched repos, though perhaps you're already so engaged that you don't need to use Code Triage. Opinions?

I'm up for writing the code; this is a placeholder for early discussion.

As an OSS maintainer, can I be more engaging?

Hi, I'm one of the maintainers of hotsh/rstat.us, currently #10 on the most issues list ;) I LOVE this project, and I love new contributors!

Have you considered having a way that maintainers can say that they're open and welcoming to these kinds of contributions? I've heard and had the experience that jumping into an OSS project that you're not familiar with can be intimidating when you're not sure of the project's culture.

Maybe a note from maintainers on the page? Perhaps even allow maintainers to customize the email with instructions? I totally understand if this is out of scope of this project though :)

I've been occasionally working on and thinking about how to get more people into OSS, and I really like the concept of this project :)

500 error when logging in

Hi

I'm having some problems logging in to codetriage.com. When I click the sign in button I just get a standard Rails 500 error ("We're sorry, but something went wrong."). It doesn't matter if I'm logged in to GitHub or not.

redirect_uri_mismatch when signing up

If you head to http://codetriage.com, sign out if you're signed in already, then click "Sign up" from the nav bar, you'll get redirected to http://issuetriage.herokuapp.com/?error=redirect_uri_mismatch

I think the callback URL for the Github Application has to be updated to codetriage.com, but maybe it's something else.

I cannot unsubscribe from code triage

Both unsubscribe links in the email do not seem to work at all. They just take me to a blank page that doesn't seem to have anything on it.

Email Links:

screen shot 2013-07-09 at 10 16 10 am

Blank Page:
screen shot 2013-07-09 at 10 28 45 am

This is really frustrating, as it is just a dead end and I cannot successfully unsubscribe.

Show indicator for being signed in

Once you have signed in there is nothing that indicates you are signed in. Sign Up still appears in the top banner, and the page still asks you to sign in using github, but the buttons don't do anything.

Can't Sign In

I've tried this in a wide variety of browsers, but even after clearing cookies/cache and re-authenticating with Github. I can't see to sign in.

Is there some step about authorizing codetriage as a Github app or something that I'm missing?

Allow users to select email frequency

Discussion about this started in #80

May be users can choose between :

  • actual default email behavior #98
  • daily digest mail
    • only a list of link to issues per repo
  • weekly digest mail ?
    • same as above but weekly \o/

repo_subscriptions tests fail

Just run rake

  1) Error:
test_the_issue_for_triage!_for_new_user(RepoSubscriptionsTest):
NoMethodError: undefined method `issue_for_triage!' for #<RepoSubscription:0x007fa64543ba50>
    /Users/parndt/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.6/lib/active_model/attribute_methods.rb:407:in `method_missing'
    /Users/parndt/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/attribute_methods.rb:149:in `method_missing'
    /code/issue_triage/test/unit/repo_subscriptions_test.rb:16:in `block in <class:RepoSubscriptionsTest>'

  2) Error:
test_the_issue_for_triage!_for_user_with_existing_issue_assignments(RepoSubscriptionsTest):
NoMethodError: undefined method `issue_for_triage!' for #<RepoSubscription:0x007fa6447afd68>
    /Users/parndt/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.6/lib/active_model/attribute_methods.rb:407:in `method_missing'
    /Users/parndt/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/attribute_methods.rb:149:in `method_missing'
    /code/issue_triage/test/unit/repo_subscriptions_test.rb:41:in `block in <class:RepoSubscriptionsTest>'

Routing Bug on subscribers page

Error on: http://www.codetriage.com/hotsh/rstat.us/subscribers

Looks like a routing bug?

2012-12-04T00:38:05+00:00 app[web.2]: ActionController::RoutingError (No route matches [GET] "/hotsh/rstat.us/subscribers"):
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.8/lib/rails/rack/logger.rb:26:in `call_app'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.8/lib/rails/rack/logger.rb:16:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/request_id.rb:22:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/runtime.rb:17:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lock.rb:15:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/static.rb:62:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:245:in `fetch'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call'
2012-12-04T00:38:05+00:00 app[web.2]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.8/lib/rails/engine.rb:479:in `call'

users.name doesn't exist

User references #name attribute at one point, but it doesn't exist for the model. Assuming we want to stick with it, just needs a migration.

limit total issues per day

can there be an option to limit the TOTAL issues per day? I signed up for a bunch of stuff expecting 1 per day and got 15

Keep selected tab selected when returning to list.

When I select a tab (say Ruby), and I look at the repos and I go to one and press back, the tabs reset (to Python). Is there a way to save state on that? It's frustrating to try to get back to your place.

For example, is there a way to add a an anchor to the URL when you click a tab, so that when you go back, that tab is still selected?

Not getting daily email?

Hello,

I subscribed to triage Kaminari and got the first email instantly. But it's been a few days one and I didn't get any new email. Is there a reason for that?

Thanks

Subscribe to more than 1 issue a day

I added the ability to get more than 1 email a day per repo. Change the email_limit field in a RepoSubscription. I set mine to 9 for rails/rails and now I get 9 new rails issues every day.

I haven't made a UI for it. A PR would be appreciated.

Implement easing for "Missing you" emails

Being emailed weekly when you've decided to temporarily not be involved in code triage is irritating and likely to lead to people deleting their account and forgetting about the product.

After the first couple of weeks, it should leave longer between reminder emails.

Manually checking for repo issues

I notice that after adding a new repo there is no issues listed even when the projects has some issues. So is there a way to manually trigger the check of issues for a particular project or after the project get added that the application retrieve them?

Duplicate users/repos allowed to triage

To recreate: submit a repo that you're already subscribed to. I used one of my own, if it matters.

This results in some weird behavior: you'll see the repo show up twice under "Repos you are currently helping", and you'll see yourself show up twice under that repos subscribers.

Provide repo specific triage instructions

Love this idea! After playing with it for a little while, I feel like I need to have some specific triage instructions from the repo maintainers. Each project has its own sub-community and without this per-project "induction", it feels a little intimidating blindly engaging with a sub-community I'm not really familiar with.

Thanks! πŸ˜ƒ

Find additional Repos paging

The paging is not working properly.

When the list is filtered by a type of repo, and you change pages, it retrieves the full page and then filters, instead of filtering and then paging. It leads to some strange behavior.

Subscribe to a Language

Sign up to receive a random issue from a random repo from a specified language

We may need a new thing in addition to RepoSubscriptions to store this since a language isn't a repo. Also need a way of adding these issues to the daily email.

cc @DanielleSucher

Allow Users to choose to be assigned to issues

I don't think it's a good thing to assume Users are happy to be assigned to some issue just because it was emailed to them.

Perhaps have a button in the email next to the issue that allows the user to accept the assignment, otherwise assume they're not taking any action.

Another option is to check the comments on the issue on GitHub. If no comments, pretty safe to assume they didn't accept the issue.

Is the worker required for local development?

README says to run app with foreman start which will read the Procfile and try to spawn a worker, which then requires a Redis instance. Is the worker required for local development / testing, or is just for tasks in Production?

If it's relevant to local development then we should add to the README instructions to run Redis as well. If not, we could change the instructions to use bundle exec rails server or something instead.

Thoughts here?

Website broken?

Upon clicking on Sign in, it displays the standard Rails 500 page: "We're sorry, but something went wrong." I've signed up with this github account.

Thanks!

make emails informative

Goals of Triage
Encourage productive communication

I wouldn't call it productive when I still need to click and open issue in order to get what it says.

Instead of including bulk of text "Goals of Triage" and "How To Triage?" into every email, I suggest you to include short or full description of the issue. Also would be nice to see last few comments with gravatars of users.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.