From f02d778de58243cd7e184bd3cbd643db3c0cbb71 Mon Sep 17 00:00:00 2001 From: Katrina Owen Date: Sun, 10 Jun 2018 13:32:12 -0600 Subject: [PATCH 1/5] Reformat config files This runs the configlet fmt command, which normalizes the contents and ordering of keys in the track config and maintainers config. This will let us script changes to the config files without having unnecessary noise in the diffs when submitting pull requests. --- config.json | 208 ++++++++++++++++++++-------------------- config/maintainers.json | 32 +++---- 2 files changed, 122 insertions(+), 118 deletions(-) diff --git a/config.json b/config.json index 3c01fc46..6ec11c41 100644 --- a/config.json +++ b/config.json @@ -1,213 +1,217 @@ { + "language": "Racket", "active": true, + "blurb": "", "exercises": [ { + "slug": "hello-world", + "uuid": "4fb471fc-4e6d-486d-abf5-939e89f028fc", "core": false, + "unlocked_by": null, "difficulty": 1, - "slug": "hello-world", "topics": [ "optional_values", "text_formatting" - ], - "unlocked_by": null, - "uuid": "4fb471fc-4e6d-486d-abf5-939e89f028fc" + ] }, { - "core": false, - "difficulty": 1, "slug": "grains", - "topics": null, + "uuid": "b5b537d0-7c5d-45e5-af1d-b4da4f32514b", + "core": false, "unlocked_by": null, - "uuid": "b5b537d0-7c5d-45e5-af1d-b4da4f32514b" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "leap", - "topics": null, + "uuid": "e84ac1ee-6e7e-40b4-826a-ed3d41890b83", + "core": false, "unlocked_by": null, - "uuid": "e84ac1ee-6e7e-40b4-826a-ed3d41890b83" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "difference-of-squares", - "topics": null, + "uuid": "a3d9a2bb-a80a-487f-b529-64e20f7cf9b5", + "core": false, "unlocked_by": null, - "uuid": "a3d9a2bb-a80a-487f-b529-64e20f7cf9b5" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "perfect-numbers", - "topics": null, + "uuid": "72b2c36b-fcd5-4c8c-89e7-98bf24faaa3e", + "core": false, "unlocked_by": null, - "uuid": "72b2c36b-fcd5-4c8c-89e7-98bf24faaa3e" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "gigasecond", - "topics": null, + "uuid": "c7550977-bc29-47e9-9aeb-9e3ee34032b2", + "core": false, "unlocked_by": null, - "uuid": "c7550977-bc29-47e9-9aeb-9e3ee34032b2" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "bob", - "topics": null, + "uuid": "3e5e67fa-991b-4120-abf0-6f10f9dfaca8", + "core": false, "unlocked_by": null, - "uuid": "3e5e67fa-991b-4120-abf0-6f10f9dfaca8" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "collatz-conjecture", - "topics": null, + "uuid": "28102e69-dad0-4f3c-8cdf-5a18a73178a4", + "core": false, "unlocked_by": null, - "uuid": "28102e69-dad0-4f3c-8cdf-5a18a73178a4" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "hamming", - "topics": null, + "uuid": "f0a6e55d-6702-4043-bdcf-2ed99bf60645", + "core": false, "unlocked_by": null, - "uuid": "f0a6e55d-6702-4043-bdcf-2ed99bf60645" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "scrabble-score", - "topics": null, + "uuid": "74d67f30-1f31-4289-a9bc-1bf69ec54ae2", + "core": false, "unlocked_by": null, - "uuid": "74d67f30-1f31-4289-a9bc-1bf69ec54ae2" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "roman-numerals", - "topics": null, + "uuid": "c5a747dc-f283-4cf6-8435-fde885f63089", + "core": false, "unlocked_by": null, - "uuid": "c5a747dc-f283-4cf6-8435-fde885f63089" + "difficulty": 1, + "topics": null }, { + "slug": "meetup", + "uuid": "72ac5f36-ec1b-465e-b359-1cc49efc262d", "core": false, + "unlocked_by": null, "difficulty": 1, - "slug": "meetup", "topics": [ "conditionals", "dates", "parsing", "pattern_recognition", "strings" - ], - "unlocked_by": null, - "uuid": "72ac5f36-ec1b-465e-b359-1cc49efc262d" + ] }, { - "core": false, - "difficulty": 1, "slug": "anagram", - "topics": null, + "uuid": "67b41645-7a02-4c45-af55-86401db69eee", + "core": false, "unlocked_by": null, - "uuid": "67b41645-7a02-4c45-af55-86401db69eee" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "rna-transcription", - "topics": null, + "uuid": "2936d930-2359-44ea-8342-656016d3ec79", + "core": false, "unlocked_by": null, - "uuid": "2936d930-2359-44ea-8342-656016d3ec79" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "etl", - "topics": null, + "uuid": "7c1cdc16-30c8-460f-aa6a-cc0655436f22", + "core": false, "unlocked_by": null, - "uuid": "7c1cdc16-30c8-460f-aa6a-cc0655436f22" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "word-count", - "topics": null, + "uuid": "b931f727-b5b1-4f42-9799-faca692dd32e", + "core": false, "unlocked_by": null, - "uuid": "b931f727-b5b1-4f42-9799-faca692dd32e" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "phone-number", - "topics": null, + "uuid": "aad41852-c939-4168-89c8-ae873892c5f9", + "core": false, "unlocked_by": null, - "uuid": "aad41852-c939-4168-89c8-ae873892c5f9" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "nucleotide-count", - "topics": null, + "uuid": "9fbd3939-f71a-4506-bcc3-e9940d4027ed", + "core": false, "unlocked_by": null, - "uuid": "9fbd3939-f71a-4506-bcc3-e9940d4027ed" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "raindrops", - "topics": null, + "uuid": "9795a374-30ae-492b-bcd7-1648ea5264b7", + "core": false, "unlocked_by": null, - "uuid": "9795a374-30ae-492b-bcd7-1648ea5264b7" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "grep", - "topics": null, + "uuid": "37ab62d8-deb3-4fa4-8016-0b22f3d2f66d", + "core": false, "unlocked_by": null, - "uuid": "37ab62d8-deb3-4fa4-8016-0b22f3d2f66d" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "say", - "topics": null, + "uuid": "0f64407b-0f01-4c4c-b721-fefdb8f98d16", + "core": false, "unlocked_by": null, - "uuid": "0f64407b-0f01-4c4c-b721-fefdb8f98d16" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "allergies", - "topics": null, + "uuid": "881f83d7-1c80-4045-9a3f-def45c8f5764", + "core": false, "unlocked_by": null, - "uuid": "881f83d7-1c80-4045-9a3f-def45c8f5764" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "list-ops", - "topics": null, + "uuid": "874b53f5-d9ef-4fd9-be62-3fe16692e565", + "core": false, "unlocked_by": null, - "uuid": "874b53f5-d9ef-4fd9-be62-3fe16692e565" + "difficulty": 1, + "topics": null }, { - "core": false, - "difficulty": 1, "slug": "acronym", - "topics": null, + "uuid": "daeb92dc-efea-4bea-b657-3383b1880e49", + "core": false, "unlocked_by": null, - "uuid": "daeb92dc-efea-4bea-b657-3383b1880e49" + "difficulty": 1, + "topics": null }, { - "deprecated": true, "slug": "accumulate", - "uuid": "b234225c-fcde-445f-9222-f80c25d0f499" + "uuid": "b234225c-fcde-445f-9222-f80c25d0f499", + "core": false, + "unlocked_by": null, + "difficulty": 0, + "topics": null, + "deprecated": true } - ], - "foregone": [], - "language": "Racket" -} \ No newline at end of file + ] +} diff --git a/config/maintainers.json b/config/maintainers.json index a219a669..d3ac57b5 100644 --- a/config/maintainers.json +++ b/config/maintainers.json @@ -2,34 +2,34 @@ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md", "maintainers": [ { - "alumnus": false, - "avatar_url": null, - "bio": null, "github_username": "zenspider", + "alumnus": false, + "show_on_website": false, + "name": null, "link_text": null, "link_url": null, - "name": null, - "show_on_website": false + "avatar_url": null, + "bio": null }, { - "alumnus": false, - "avatar_url": null, - "bio": null, "github_username": "arguello", + "alumnus": false, + "show_on_website": false, + "name": null, "link_text": null, "link_url": null, - "name": null, - "show_on_website": false + "avatar_url": null, + "bio": null }, { - "alumnus": false, - "avatar_url": null, - "bio": null, "github_username": "yurrriq", + "alumnus": false, + "show_on_website": false, + "name": null, "link_text": null, "link_url": null, - "name": null, - "show_on_website": false + "avatar_url": null, + "bio": null } ] -} \ No newline at end of file +} From d515de562a8e2bc43366224992fa4f2f2a284150 Mon Sep 17 00:00:00 2001 From: Sam Warner <30871823+sjwarner-bp@users.noreply.github.com> Date: Wed, 13 Jun 2018 21:01:15 +0100 Subject: [PATCH 2/5] fix link to little schemer At the minute, this link ends up at a page saying "The requested page could not be found". Looks like they've moved it to a fourth-edition specific page. --- docs/LEARNING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/LEARNING.md b/docs/LEARNING.md index 82dae602..124b42a4 100644 --- a/docs/LEARNING.md +++ b/docs/LEARNING.md @@ -5,4 +5,4 @@ These resources can help you get started: * [Continue: Web Applications in Racket](http://docs.racket-lang.org/continue/index.html) * [More: Systems Programming with Racket](http://docs.racket-lang.org/more/index.html) * [How to Design Programs](http://htdp.org/), by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shiriam Krishnamurthi -* [The Little Schemer](http://mitpress.mit.edu/books/little-schemer), by Daniel P. Friedman and Matthias Felleisen +* [The Little Schemer](http://mitpress.mit.edu/books/little-schemer-fourth-edition), by Daniel P. Friedman and Matthias Felleisen From 3cdafdc61582580d6d71b771ea1deb9ae1af70b7 Mon Sep 17 00:00:00 2001 From: Jack Hughes Date: Tue, 19 Jun 2018 21:03:09 +0100 Subject: [PATCH 3/5] Add auto_approve to hello-world exercise This adds the auto_approve property to the hello-world exercise as part of preparing tracks for the v2 launch. The current code on the server will automatically approve hello-world exercises anyway, but that is a temporary fix and will be removed in the future. --- config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/config.json b/config.json index 6ec11c41..eed84dce 100644 --- a/config.json +++ b/config.json @@ -7,6 +7,7 @@ "slug": "hello-world", "uuid": "4fb471fc-4e6d-486d-abf5-939e89f028fc", "core": false, + "auto_approve": true, "unlocked_by": null, "difficulty": 1, "topics": [ From c38ca7271ff0af98f70cb6a57dc6072d23229de7 Mon Sep 17 00:00:00 2001 From: Katrina Owen Date: Fri, 3 Aug 2018 19:52:37 -0600 Subject: [PATCH 4/5] Add 'math' topic to relevant exercises in track config The new site lets people filter optional exercises by topic, and this makes it easy for people to skip past them. This is important since the math-y exercises are not key to learning the language, and a lot of people find them intimidating and demotivating. This updates any 'mathematics' topics to be 'math' since it's shorter and won't get cropped in the UI. It also removes the math topics for any exercises that are not in the canonical math-y list. --- config.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/config.json b/config.json index eed84dce..13ddc4b5 100644 --- a/config.json +++ b/config.json @@ -37,7 +37,9 @@ "core": false, "unlocked_by": null, "difficulty": 1, - "topics": null + "topics": [ + "math" + ] }, { "slug": "perfect-numbers", @@ -45,7 +47,9 @@ "core": false, "unlocked_by": null, "difficulty": 1, - "topics": null + "topics": [ + "math" + ] }, { "slug": "gigasecond", @@ -69,7 +73,9 @@ "core": false, "unlocked_by": null, "difficulty": 1, - "topics": null + "topics": [ + "math" + ] }, { "slug": "hamming", From a696bbd10ea2aab5a039a0f7db3b292efc7ee73c Mon Sep 17 00:00:00 2001 From: Scientifica96 Date: Thu, 30 Aug 2018 19:07:18 +0100 Subject: [PATCH 5/5] difference-of-squares: renamed square-of-sums to square-of-sum --- .../difference-of-squares-test.rkt | 12 ++++++------ .../difference-of-squares/difference-of-squares.rkt | 2 +- exercises/difference-of-squares/example.rkt | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/exercises/difference-of-squares/difference-of-squares-test.rkt b/exercises/difference-of-squares/difference-of-squares-test.rkt index 31209be0..fb3fd1b2 100644 --- a/exercises/difference-of-squares/difference-of-squares-test.rkt +++ b/exercises/difference-of-squares/difference-of-squares-test.rkt @@ -9,14 +9,14 @@ (test-suite "difference of squares" - (test-eqv? "square-of-sums-to-5" (square-of-sums 5) 225) + (test-eqv? "square-of-sum-to-5" (square-of-sum 5) 225) (test-eqv? "sum-of-squares-to-5" (sum-of-squares 5) 55) - (test-eqv? "difference of-sums-to-5" (difference 5) 170) - (test-eqv? "square-of-sums-to-10" (square-of-sums 10) 3025) + (test-eqv? "difference-of-squares-to-5" (difference 5) 170) + (test-eqv? "square-of-sum-to-10" (square-of-sum 10) 3025) (test-eqv? "sum-of-squares-to-10" (sum-of-squares 10) 385) - (test-eqv? "difference of-sums-to-10" (difference 10) 2640) - (test-eqv? "square-of-sums-to-100" (square-of-sums 100) 25502500) + (test-eqv? "difference-of-squares-to-10" (difference 10) 2640) + (test-eqv? "square-of-sum-to-100" (square-of-sum 100) 25502500) (test-eqv? "sum-of-squares-to-100" (sum-of-squares 100) 338350) - (test-eqv? "difference of-sums-to-100" (difference 100) 25164150))) + (test-eqv? "difference-of-squares-to-100" (difference 100) 25164150))) (run-tests suite)) diff --git a/exercises/difference-of-squares/difference-of-squares.rkt b/exercises/difference-of-squares/difference-of-squares.rkt index 443493ab..ceb457e0 100644 --- a/exercises/difference-of-squares/difference-of-squares.rkt +++ b/exercises/difference-of-squares/difference-of-squares.rkt @@ -1,3 +1,3 @@ #lang racket -(provide sum-of-squares square-of-sums difference) +(provide sum-of-squares square-of-sum difference) diff --git a/exercises/difference-of-squares/example.rkt b/exercises/difference-of-squares/example.rkt index 6307a5f8..5852b36e 100644 --- a/exercises/difference-of-squares/example.rkt +++ b/exercises/difference-of-squares/example.rkt @@ -1,16 +1,16 @@ #lang racket -(provide sum-of-squares square-of-sums difference) +(provide sum-of-squares square-of-sum difference) (define (sum-of-squares n) (for/sum ([i (in-range (add1 n))]) (* i i))) -(define (square-of-sums n) +(define (square-of-sum n) (let ([sum (for/sum ([i (in-range (add1 n))]) i)]) (* sum sum))) (define (difference n) - (- (square-of-sums n) (sum-of-squares n))) + (- (square-of-sum n) (sum-of-squares n)))