{"action":"opened","issue":{"url":"https://api.github.com/repos/exercism/xracket/issues/58","repository_url":"https://api.github.com/repos/exercism/xracket","labels_url":"https://api.github.com/repos/exercism/xracket/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/exercism/xracket/issues/58/comments","events_url":"https://api.github.com/repos/exercism/xracket/issues/58/events","html_url":"https://github.com/exercism/xracket/issues/58","id":171998993,"number":58,"title":"Update config.json to match new specification","user":{"login":"kytrinyx","id":276834,"avatar_url":"https://avatars.githubusercontent.com/u/276834?v=3","gravatar_id":"","url":"https://api.github.com/users/kytrinyx","html_url":"https://github.com/kytrinyx","followers_url":"https://api.github.com/users/kytrinyx/followers","following_url":"https://api.github.com/users/kytrinyx/following{/other_user}","gists_url":"https://api.github.com/users/kytrinyx/gists{/gist_id}","starred_url":"https://api.github.com/users/kytrinyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kytrinyx/subscriptions","organizations_url":"https://api.github.com/users/kytrinyx/orgs","repos_url":"https://api.github.com/users/kytrinyx/repos","events_url":"https://api.github.com/users/kytrinyx/events{/privacy}","received_events_url":"https://api.github.com/users/kytrinyx/received_events","type":"User","site_admin":true},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-08-18T20:57:20Z","updated_at":"2016-08-18T20:57:20Z","closed_at":null,"body":"For the past three years, the ordering of exercises has been done based on gut feelings and wild guesses. As a result, the progression of the exercises has been somewhat haphazard.\n\nIn the past few months maintainers of several tracks have invested a great deal of time in analyzing what concepts various exercises require, and then reordering the tracks as a result of that analysis.\n\nIt would be useful to bake this data into the track configuration so that we can adjust it over time as we learn more about each exercise.\n\nTo this end, we've decided to add a new key _exercises_ in the config.json file, and deprecate the `problems` key.\n\nSee exercism/discussions#60 for details about this decision.\n\nNote that we will **not** be removing the `problems` key at this time, as this would break the website and a number of tools.\n\nThe process for deprecating the old `problems` array will be:\n\n* Update all of the track configs to contain the new _exercises_ key, with whatever data we have.\n* Simultaneously change the website and tools to support both formats.\n* Once all of the tracks have added the _exercises_ key, remove support for the old key in the site and tools.\n* Remove the old key from all of the track configs.\n\nIn the new format, each exercise is a JSON object with three properties:\n\n* _slug_: the identifier of the exercise\n* _difficulty_: a number from 1 to 10 where 1 is the easiest and 10 is the most difficult\n* _topics_: an array of strings describing topics relevant to the exercise. We maintain\na list of common topics at https://github.com/exercism/x-common/blob/master/TOPICS.txt. Do not feel like you need to restrict yourself to this list;\nit's only there so that we don't end up with 20 variations on the same topic. Each\nlanguage is different, and there will likely be topics specific to each language that will\nnot make it onto the list.\n\nThe _difficulty_ rating can be a very rough estimate.\n\nThe _topics_ array can be empty if this analysis has not yet been done.\n\nExample:\n\n    \"exercises\": [\n      {\n        \"slug\": \"hello-world\" ,\n        \"difficulty\": 1,\n        \"topics\": [\n            \"control-flow (if-statements)\",\n            \"optional values\",\n            \"text formatting\"\n        ]\n      },\n      {\n        \"difficulty\": 3,\n        \"slug\": \"anagram\",\n        \"topics\": [\n            \"strings\",\n            \"filtering\"\n        ]\n      },\n      {\n        \"difficulty\": 10,\n        \"slug\": \"forth\",\n        \"topics\": [\n            \"parsing\",\n            \"transforming\",\n            \"stacks\"\n        ]\n      }\n    ]\n\nIt may be worth making the change in several passes:\n\n1. Add the _exercises_ key with the array of objects, where _difficulty_ is 1 and _topics_ is empty.\n2. Update the difficulty settings to reflect a more accurate guess.\n3. Add topics (perhaps one-by-one, in separate pull requests, in order to have useful discussions about each exercise)."}}
{"actor":{"display_login":"kytrinyx"}}