Skip to content

Commit

Permalink
(WIP) First draft of contribution guide.
Browse files Browse the repository at this point in the history
  • Loading branch information
jtigger committed Nov 2, 2016
1 parent 361da2e commit b027e80
Show file tree
Hide file tree
Showing 5 changed files with 213 additions and 22 deletions.
132 changes: 110 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,80 +26,152 @@ We are working to improve this document, and if you find any part of it confusin
### ... on the website

* If you're having trouble figuring out how to do something on the website, jump in the [online support chat](https://gitter.im/exercism/support) and ask there.
- If the website has a bug, you can help by [filing a bug report]() in the [`exercism/exercism.io` repository](https://github.com/exercism/cli/issues/new).
- After reporting the problem, if you have the time and the desire, you can *really* help by [fixing it](#-web-programming).
- Check [`exercism/exercism.io`](https://github.com/exercism/exercism.io/issues?q=is%3Aissue+is%3Aopen+label%3Abug)'s repo for bugs; and while we might know there's an issue, any additional details sometimes can help.
- If the website has a bug, you can help by [filing a bug report](docs/filing-a-bug-report.md) in the [`exercism/exercism.io` repository](https://github.com/exercism/exercism.io/issues/new).
- After reporting the problem, if you have the time and the desire, you can help *even more* by [fixing it](#-web-programming).

-

### ... with the command-line client (CLI)

* If you're having trouble installing or working with the CLI, ask for help in our [online support chat](https://gitter.im/exercism/support).
- If the CLI has a bug, you can help by [filing a bug report]() in the [`exercism/cli` repository](https://github.com/exercism/cli/issues/new).
- After reporting the problem, if you have the time and the desire, you can *really* help by [fixing it](#-go).
- It may be a reported/known bug; check [`exercism/cli`](https://github.com/exercism/cli/issues?q=is%3Aissue+is%3Aopen+label%3Abug)'s repo for bugs.
- If the CLI has a bug, you can help by [filing a bug report](docs/filing-a-bug-report.md) in the [`exercism/cli` repository](https://github.com/exercism/cli/issues/new).
- After reporting the problem, if you have the time and the desire, you can help *even more* by [fixing it](#-go).

-

### ... getting started with a language

* If you're having trouble with the setup instructions, ask for help in our [online support chat](https://gitter.im/exercism/support).
- If you see a problem with the setup instructions, you can help by [filing a bug report]() in the "Issues" section of the [corresponding language repository](http://exercism.io/repositories).
- After reporting the problem, if you have the time and the desire, you can *really* help by [fixing it](#-organizing-stuff).
- If you see a problem with the setup instructions, you can help by [filing a bug report](docs/filing-a-bug-report.md) in the "Issues" section of the [corresponding language repository](http://exercism.io/repositories).
- After reporting the problem, if you have the time and the desire, you can help *even more* by [fixing it](#-organizing-stuff).

-

### ... with a specific exercise

* If a particular exercise is giving you grief, ask for help in our [online support chat](https://gitter.im/exercism/support).
- If there's a defect in the...
- **instructions** of the exercise, you can make a difference by [filing a bug report]() in the [`exercism/x-common` repository](https://github.com/exercism/x-common/issues/new).
- After reporting the problem, if you have the time and the desire, you can *really* help by [fixing it](#-organizing-stuff).
- **tests** or **starter code** of the exercise, you can help by [filing a bug report]() in the "Issues" section of the [corresponding language repository](http://exercism.io/repositories).
- **instructions** of the exercise, you can make a difference by [filing a bug report](docs/filing-a-bug-report.md) in the [`exercism/x-common` repository](https://github.com/exercism/x-common/issues/new).
- After reporting the problem, if you have the time and the desire, you can help *even more* by [fixing it](#-organizing-stuff).
- **tests** or **starter code** of the exercise, you can help by [filing a bug report](docs/filing-a-bug-report.md) in the "Issues" section of the [corresponding language repository](http://exercism.io/repositories).
- After reporting the problem, if you have the time and the desire, you can help *even more* by [fixing it](#-fluency-in-a-particular-programming-language).
- You can ask for help within the track:
1. `exercism submit` the code you have.
- View your new submission (the previous command hands you that link)
- In "Manage" pull-down (top-right), select "Request Help". Doing so highlights your submission in the Activity Stream.
1. `exercism submit` the code you have;
- Follow the link that the CLI returns to view your new submission on the website;
- In the "**Manage**" pull-down (top-right), select "**Request Help**".

When you do this, your submission is highlighted, letting others know you're stuck.

----

## I have an idea ...


| ... making the website better | ... improving the command-line client (CLI) | ... a brand-new exercise for Exercism | ... improving an existing exercise |
|:---:|:---:|:---:|:---:|
|[![Making the website better](docs/img/globe.png)](#-making-the-website-better) | [![Improving the command-line client](docs/img/prompt.png)](#-improving-the-command-line-client-cli) | [![A brand new exercise for Exercism](docs/img/target-a-track.png)](#-a-brand-new-exercise-for-exercism) | [![Improving an existing exercise](docs/img/computer-code.png)](#-improving-an-existing-exercise) |
| ... making the website better | ... improving the command-line client (CLI) | ... a brand-new exercise for Exercism | ... improving an existing exercise | ... how to make exercism a better tool for practice | ... how to improve the exercism community |
|:---:|:---:|:---:|:---:|:---:|:---:|
|[![Making the website better](docs/img/globe.png)](#-making-the-website-better) | [![Improving the command-line client](docs/img/prompt.png)](#-improving-the-command-line-client-cli) | [![A brand new exercise for Exercism](docs/img/target-a-track.png)](#-a-brand-new-exercise-for-exercism) | [![Improving an existing exercise](docs/img/computer-code.png)](#-improving-an-existing-exercise) | [![how to make exercism a better tool for practice](docs/img/mortarboard.png)](#-how-to-make-exercism-a-better-tool-for-practice) | [![how to improve the exercism community](docs/img/group-of-people.jpg)](#-how-to-improve-the-exercism-community)


### ... making the website better

Is it around a portion of the site we're currently talking about? Jump in!

Current specific discussions:

* User experience: [`exercism/discussions#34`](https://github.com/exercism/discussions/issues/34),
- solutions page: [`exercism/discussions#32`](https://github.com/exercism/discussions/issues/32),


Here are some helpful starter searches in the two repositories that contain ideas about the website:

* the home page: [`exercism/discussions?homepage`](https://github.com/exercism/discussions/issues?q=is%3Aissue+is%3Aopen+homepage+sort%3Aupdated-desc) / [`exercism/exercism.io?homepage`](https://github.com/exercism/exercism.io/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20homepage+sort%3Aupdated-desc),
- user's dashboard: [`exercism/discussions?dashboard`](https://github.com/exercism/discussions/issues?q=is%3Aissue+is%3Aopen+dashboard+sort%3Aupdated-desc) / [`exercism/exercism.io?dashboard`](https://github.com/exercism/exercism.io/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20dashboard%20+sort%3Aupdated-desc),
- user's profile page: [`exercism/discussions?profile`](https://github.com/exercism/discussions/issues?q=is%3Aissue+is%3Aopen+profile+sort%3Aupdated-desc) / [`exercism/exercism.io?profile`](https://github.com/exercism/exercism.io/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20profile%20+sort%3Aupdated-desc),
- user's account page: [`exercism/discussions?account`](https://github.com/exercism/discussions/issues?q=is%3Aissue+is%3Aopen+account+sort%3Aupdated-desc) / [`exercism/exercism.io?account`](https://github.com/exercism/exercism.io/issues?q=is%3Aissue+is%3Aopen+account+sort%3Aupdated-desc).

If the idea doesn't fit in one of those discussions, then if it relates to:

* a specific part of the site, start a new conversation in the [`exercism/exercism.io`](https://github.com/exercism/exercism.io/issues/new) repository.
- multiple aspects of the site, kick it off in the [`exercism/discussions`](https://github.com/exercism/discussions/issues/new) repository.

-

### ... improving the command-line client (CLI)

Current specific discussions:

* Overall user experience with the CLI: [`exercism/discussions#35`](https://github.com/exercism/discussions/issues/35).

Here are some helpful starter searches in the two repositories that contain ideas about the CLI:

* [`exercism/cli?`](https://github.com/exercism/cli/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)
- [`exercism/discussions?cli`](https://github.com/exercism/discussions/issues?q=is%3Aissue+is%3Aopen+cli+sort%3Aupdated-desc)

If the idea isn't being discussed yet, kick it off in the [`exercism/cli`](https://github.com/exercism/cli/issues/new) repository.

-

### ... a brand-new exercise for Exercism

New exercise ideas are definitely welcome! Here's how to ensure the idea lands in the right place:

*Note: the central library of exercises on Exercism is https://github.com/exercism/x-common.*

- Check to see if the exercise is listed: https://github.com/exercism/x-common/tree/master/exercises.
- If it is there, but not in the language you'd like to solve it in, put in a request in that particular language's repository: http://exercism.io/repositories.
- After making the suggestion, if you have the time and the desire, you can help *even more* by [implementing it](#-fluency-in-a-particular-programming-language).
- If it is not there, suggest it in [`exercism/x-common`](https://github.com/exercism/x-common/issues/new).
- After making the suggestion, if you have the time and the desire, you can help *even more* by [implementing it](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#implementing-a-completely-new-exercise).
- If you know of a good source of potential new problems, please share: [`exercism/x-common#107`](https://github.com/exercism/x-common/issues/107).


-

### ... improving an existing exercise



-

### ... how to make exercism a better tool for practice

We love the way you're thinking!

* Peek at the vision for what Exercism wants to be.
* Skim through the existing issues in [`exercism/discussions`](https://github.com/exercism/discussions/issues) repository to see if someone is talking about some part of the same idea.
* Either chime in on an existing conversation or start your own. Think of this repo as a kind of message board.

-

###... how to improve the exercism community


----


## I would like to help...

Terrific! While you are absolutely welcome to jump in anywhere you'd like, if you have some chops in...
Terrific!

| ... organizing stuff | ... fluency in a particular programming language | ... web programming | ... Ruby on Rails | ... Go | ... web design |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| | | | | | | |
You have (or want to improve your) skills in...

| ... organizing stuff | ... fluency in a particular programming language | ... web programming | ... Ruby on Rails | ... Go | ... web design | ... mentoring others
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| | | | | | | | |

### ... organizing stuff

-

### ... fluency in a particular programming language

Are you a language enthusiast? Help other people fall in love with your language by:

* getting involved with [one of the Exercism language tracks](http://exercism.io/repositories), or
- by [giving feedback](http://exercism.io/inbox) to people who submit solutions to a track.

-

### ... web programming
Expand All @@ -108,6 +180,8 @@ Terrific! While you are absolutely welcome to jump in anywhere you'd like, if y

### ... Ruby on Rails



-

### ... Go
Expand All @@ -116,6 +190,22 @@ Terrific! While you are absolutely welcome to jump in anywhere you'd like, if y

### ... web design

Do you love making enticing user experiences? Help us [rethink our user experience](https://github.com/exercism/discussions/issues/34) (UX)!

* the [profile](https://github.com/exercism/discussions/search?q=profile&state=open&type=Issues) or [account](https://github.com/exercism/discussions/search?q=account&state=open&type=Issues) pages.
- the [dashboard](https://github.com/exercism/discussions/search?q=dashboard&state=open&type=Issues).
- the [homepage](https://github.com/exercism/discussions/search?q=homepage&state=open&type=Issues).
- the [solutions page](https://github.com/exercism/discussions/issues/32).

-

### ... mentoring others

Do you like mentoring people?

* Hang out in the support chat [support chat](https://gitter.im/exercism/support), or
* submit an exercise so you can [give feedback to people who have submitted it, too](http://exercism.io/inbox).


----

Expand Down Expand Up @@ -621,9 +711,7 @@ X is a collection of scripts to organize and compile documentation for the many

## Future Roadmap

The focus of the development efforts at the moment are about making the core
experience good: smooth onboarding, rich conversations, high quality feedback,
and getting feedback quickly.
We focus our efforts on the [roadmap](docs/roadmap.md).

Sometimes we get suggestions for things that would be great, but they're not
part of locking down the core behavior of the app. In this case we'll close
Expand Down
68 changes: 68 additions & 0 deletions docs/filing-a-bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Writing an Actionable Bug Report

We're a work in progress. You reporting bugs in a clear and actionable format is a big help. Thanks!!

When writing a bug, please include:

1. the steps you took to get to the defect (number the steps using a little markdown, as shown below).
- what you *expected* to happen after the last step.
- what *actually* happened after the last step.
- information about your particular situation:
* if it's happening while you're using the CLI, include the **redacted** output of `exercism debug`.
* "redacted" meaning remove your API key from the output before including in the issue.
- if its' happening on the website, include your OS and browser versions.

## Example

1. I recently completed the Hello World for Java.
- I submitted the file (I got the success message).
- I went to the link provided by the CLI.
* **Expected:** to see my submission,
* **Actual:** I got a 404.

Here's my "exercism debug":
```
**** Debug Information ****
Exercism CLI Version: 2.3.0
Exercism CLI Latest Release: 2.3.0
OS/Architecture: darwin/amd64
Build OS/Architecture /
Home Dir: /Users/jtigger
Config file: /Users/jtigger/.exercism.json
API Key: *******
Exercises Directory: /Users/jtigger/workspace/exercism/exercises
Testing API endpoints reachability
* API: http://exercism.io [connected] 350.644953ms
* GitHub API: https://api.github.com/ [connected] 386.82533ms
* XAPI: http://x.exercism.io [connected] 796.511395ms
```

which formats to:

-

1. I recently completed the Hello World for Java.
- I submitted the file (I got the success message).
- I went to the link provided by the CLI.
* **Expected:** to see my submission,
* **Actual:** I got a 404.

Here's my "exercism debug":
```
**** Debug Information ****
Exercism CLI Version: 2.3.0
Exercism CLI Latest Release: 2.3.0
OS/Architecture: darwin/amd64
Build OS/Architecture /
Home Dir: /Users/jtigger
Config file: /Users/jtigger/.exercism.json
API Key: *******
Exercises Directory: /Users/jtigger/workspace/exercism/exercises
Testing API endpoints reachability
* API: http://exercism.io [connected] 350.644953ms
* GitHub API: https://api.github.com/ [connected] 386.82533ms
* XAPI: http://x.exercism.io [connected] 796.511395ms
```

-

Binary file added docs/img/group-of-people.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/mortarboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Roadmap

## Overview

Development efforts at the moment focus on making the core experience good:

* smooth onboarding,
- rich conversations,
- high quality feedback, and
- getting feedback quickly.

### Smooth Onboarding

From quickly/concisely conveying what a programmer (of various stripes) would get from participating in Exercism, to the actual path from zero to submitted exercise on any given track, it can be bumpy.

Let's hunt down bits of waste particularly along this path and flatten them: extraneous words and confusing flows should be substituted for clear instructions and intuitive/guided next steps.

The root of these efforts focus on User Experience (UX). The following are jumping-off points into those efforts.

* call for help with UX in general: [exercism/discussions#34](https://github.com/exercism/discussions/issues/34).
- conveying value and clear action on the homepage: [exercism/discussions#31](https://github.com/exercism/discussions/issues/31).

### Rich Conversations

Exercism is fundamentally a space that encourages programmers to talk about what's going on in their heads as they work and rework their code. That thinking bit is the heart of how individuals can become better.

What can we do to encourage more and richer conversations among Exercism users?




- supporting common workflows in profile, dashboard, and account pages: [exercism/discussions#33](https://github.com/exercism/discussions/issues/33)
- and the solutions page: [exercism/discussions#32](https://github.com/exercism/discussions/issues/32).


0 comments on commit b027e80

Please sign in to comment.