You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Oct 5, 2018. It is now read-only.
My main goal for the coming weeks and months is to launch v2 of Exercism.
The TL;DR is that v1 (http://exercism.io) happened by mostly accident and has not benefitted from product thinking and user experience design. We aim to fix this with v2 (https://v2.exercism.io).
The two biggest blockers to launching v2 are the interactive walkthrough for installing the command line client, and the rewrite of the command-line client itself.
If you haven't tried out Exercism before, I'd recommend starting the day by going to http://exercism.io, picking a language you're interested in or know, installing the command line client, and doing one or two exercises, just to get a feel for the platform.
Things to contribute to
Interactive Command-Line Client Walkthrough
Technologies required:This uses some command line tools to sew together text files into a decision tree.
You can see the Interactive CLI Walkthrough as follows:
Select an available track (it doesn't matter which one)
Click "Join the $LANGUAGE track" (where language is the one you picked)
Click "continue" in the popup
Click on the first exercise
Look for the "Getting Started" box on the right hand side -- this is the walkthrough
As you'll see, it currently only has "mac"—we want to also support Linux and Windows.
The repository has an extensive CONTRIBUTING guide that goes through the purpose of the project and how to set it up and compile the text files into the decision tree so you can test it locally in the browser (without any of the fancy design).
The v1 command-line client grew organically. We're doing a complete reboot to have a cleaner set of commands and interactions.
The MOST important things we can do for v2 launch are to have a seamless experience for the two most important commands:
exercism download
exercism submit
Seamless means two things:
good error messages
interactive configuration where necessary
The development for nextercism (as we've codenamed the project) happens in the exercism/cli repository on the nextercism branch, which is currently the default branch. Any fixes to the existing CLI go on master.
We have a pretty extensive CONTRIBUTING guide which should be enough to get up and running.
In order to make this not-a-pain-in-the-butt to work on, I think adding verbose logging throughout the package would be incredibly helpful (I added a global verbose flag, and a way to add messages that only show up in verbose mode, but I've mostly not added any actual debug output). I've opened an issue about that here: exercism/cli#525
While we do have open issues, I think the easiest way to get started would be to start by actually joining a track on v2.exercism.io and trying to download an exercise.
Technologies Required: language of your choice to write scripts with, github/hub command-line tool
The v2 site has some key differences when it comes to the language tracks themselves... in particular, v1 has a linear list of exercises for each track. This means that to get to "done" you basically have to do all the exercises, whether you need them or not. Also, it means that as we add more exercises, we're moving the goal post. This is not cool. In v2 we've changed this to have a core set of 15-20 exercises, and each exercise unlocks several optional exercises. If you want to read more about the change I've written about it here.
Additionally, the new site will let you filter all the exercises available to you by topic and difficulty.
This means that each of the track configurations need to be updated to have the core/optional distinction for exercise, as well as which optional exercise is unlocked by which core exercise, as well as topics and difficulties.
I have a few open issues that are mostly "janitorial" for getting the tracks sorted out:
Things that don't require changing the track's config:
Updating formatting in ABOUT.md for Nextercism - this one might be mostly done... here I'd love some help figuring out what's left, and if there is anything left, submitting PRs so we can close the issue
Submit issue to all tracks about having correct test command - another scripting task using github/hub -- once you have a draft issue written up, holler so I can take a look, also to test your script you may want to create an org with some dummy repos to play around with
Some things do touch the track's config, and we can't do them until the configs are normalized. The open issue for this is #95 but it's long and full of drama so the TL;DR is that we have a tool, configlet, that just got a new release which will correctly normalize the track config so that subsequent PRs don't include noisy, spurious whitespace changes.
Once the tracks are normalized, there are two more config things that both involve writing scripts that rely on github/hub. Mislav, one of today's coaches, is the maintainer of github/hub in case you have questions :)
Stalemate -- in progress... helps provide a mechanism for letting maintainers see only issues that haven't already been dealt with by other maintainers
Technologies required:Plain text, maybe a bit of JSON
We have 45 active tracks on the site, and most of them rely on the same set of problem descriptions, which they implement a test suite for. There are a ton of low-hanging fruit in the problem specifications repository:
My main goal for the coming weeks and months is to launch v2 of Exercism.
The TL;DR is that v1 (http://exercism.io) happened by mostly accident and has not benefitted from product thinking and user experience design. We aim to fix this with v2 (https://v2.exercism.io).
The two biggest blockers to launching v2 are the interactive walkthrough for installing the command line client, and the rewrite of the command-line client itself.
If you haven't tried out Exercism before, I'd recommend starting the day by going to http://exercism.io, picking a language you're interested in or know, installing the command line client, and doing one or two exercises, just to get a feel for the platform.
Things to contribute to
Interactive Command-Line Client Walkthrough
Technologies required: This uses some command line tools to sew together text files into a decision tree.
You can see the Interactive CLI Walkthrough as follows:
As you'll see, it currently only has "mac"—we want to also support Linux and Windows.
The repository has an extensive CONTRIBUTING guide that goes through the purpose of the project and how to set it up and compile the text files into the decision tree so you can test it locally in the browser (without any of the fancy design).
V2 Command-Line Client (code name: nextercism)
Technologies required: Go.
The v1 command-line client grew organically. We're doing a complete reboot to have a cleaner set of commands and interactions.
The MOST important things we can do for v2 launch are to have a seamless experience for the two most important commands:
exercism download
exercism submit
Seamless means two things:
The development for
nextercism
(as we've codenamed the project) happens in the exercism/cli repository on thenextercism
branch, which is currently the default branch. Any fixes to the existing CLI go on master.We have a pretty extensive CONTRIBUTING guide which should be enough to get up and running.
In order to make this not-a-pain-in-the-butt to work on, I think adding verbose logging throughout the package would be incredibly helpful (I added a global verbose flag, and a way to add messages that only show up in verbose mode, but I've mostly not added any actual debug output). I've opened an issue about that here: exercism/cli#525
While we do have open issues, I think the easiest way to get started would be to start by actually joining a track on v2.exercism.io and trying to download an exercise.
Open Issues:
Preparing Tracks for V2
Technologies Required: language of your choice to write scripts with, github/hub command-line tool
The v2 site has some key differences when it comes to the language tracks themselves... in particular, v1 has a linear list of exercises for each track. This means that to get to "done" you basically have to do all the exercises, whether you need them or not. Also, it means that as we add more exercises, we're moving the goal post. This is not cool. In v2 we've changed this to have a core set of 15-20 exercises, and each exercise unlocks several optional exercises. If you want to read more about the change I've written about it here.
Additionally, the new site will let you filter all the exercises available to you by topic and difficulty.
This means that each of the track configurations need to be updated to have the core/optional distinction for exercise, as well as which optional exercise is unlocked by which core exercise, as well as topics and difficulties.
I have a few open issues that are mostly "janitorial" for getting the tracks sorted out:
Things that don't require changing the track's config:
Some things do touch the track's config, and we can't do them until the configs are normalized. The open issue for this is #95 but it's long and full of drama so the TL;DR is that we have a tool, configlet, that just got a new release which will correctly normalize the track config so that subsequent PRs don't include noisy, spurious whitespace changes.
Once the tracks are normalized, there are two more config things that both involve writing scripts that rely on github/hub. Mislav, one of today's coaches, is the maintainer of github/hub in case you have questions :)
Bots!
Technologies required: JavaScript
These are all JavaScript, and they all use the 🤖 Probot framework which is written explicitly for writing GitHub bots.
Language-independent problem specifications
Technologies required: Plain text, maybe a bit of JSON
We have 45 active tracks on the site, and most of them rely on the same set of problem descriptions, which they implement a test suite for. There are a ton of low-hanging fruit in the problem specifications repository:
https://github.com/exercism/problem-specifications/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
The text was updated successfully, but these errors were encountered: