From a7539948ebaa2503c8d821dfa43d91b58dbf9855 Mon Sep 17 00:00:00 2001 From: Erik Schierboom Date: Tue, 23 Mar 2021 13:09:44 +0100 Subject: [PATCH 1/4] Update authors/contributors spec --- building/configlet/lint.md | 22 ++++++++-------------- building/tracks/concept-exercises.md | 21 +++------------------ building/tracks/practice-exercises.md | 7 +------ 3 files changed, 12 insertions(+), 38 deletions(-) diff --git a/building/configlet/lint.md b/building/configlet/lint.md index ba6c30ea..4beacb6b 100644 --- a/building/configlet/lint.md +++ b/building/configlet/lint.md @@ -159,21 +159,15 @@ The `config.json` file should have the following checks: - The file must be valid JSON - The JSON root must be an object - The `"authors"` key is required -- The `"authors"` value must be an non-empty array -- The `"authors[].github_username"` key is required -- The `"authors[].github_username"` key must be a non-empty, non-blank string -- The `"authors[].github_username"` value is treated case-insensitively -- The `"authors[].exercism_username"` key is optional -- The `"authors[].exercism_username"` key must be a non-empty, non-blank string -- The `"authors[].github_username"` value is treated case-insensitively +- The `"authors"` value must be a non-empty array +- The `"authors"` values must be non-empty, non-blank strings +- The `"authors"` values must not have duplicates +- The `"authors"` values are treated case-insensitively - The `"contributors"` key is optional -- The `"contributors"` value must be an array -- The `"contributors[].github_username"` key is required -- The `"contributors[].github_username"` key must be a non-empty, non-blank string -- The `"contributors[].github_username"` value is treated case-insensitively -- The `"contributors[].exercism_username"` key is optional -- The `"contributors[].exercism_username"` key must be a non-empty, non-blank string -- The `"contributors[].exercism_username"` value is treated case-insensitively +- The `"contributors"` value must be a non-empty array +- The `"contributors"` values must be non-empty, non-blank strings +- The `"contributors"` values must not have duplicates +- The `"contributors"` values are treated case-insensitively - Users can only be listed in either the `"authors"` or `"contributors"` array (no overlap) - The `"files.solution"` key is required - The `"files.solution"` value must be a non-empty array diff --git a/building/tracks/concept-exercises.md b/building/tracks/concept-exercises.md index 3dd9e134..50dd7aff 100644 --- a/building/tracks/concept-exercises.md +++ b/building/tracks/concept-exercises.md @@ -301,12 +301,7 @@ If someone is both an author _and_ a contributor, only list that person as an au ```json { - "authors": [ - { - "github_username": "FSharpForever", - "exercism_username": "FSharpForever" - } - ], + "authors": ["FSharpForever"], "files": { "solution": ["Lasagna.fs"], "test": ["LasagnaTests.fs"], @@ -322,18 +317,8 @@ Assume that the user FSharpForever has written an exercise called `basics` for t ```json { - "contributors": [ - { - "github_username": "PythonPerfection", - "exercism_username": "PythonPerfection" - } - ], - "authors": [ - { - "github_username": "PythonProfessor", - "exercism_username": "PythonProfessor" - } - ], + "contributors": ["PythonPerfection"], + "authors": ["PythonProfessor"], "files": { "solution": ["lasagna.py"], "test": ["lasagna_test.py"], diff --git a/building/tracks/practice-exercises.md b/building/tracks/practice-exercises.md index 627877b4..a6387ca7 100644 --- a/building/tracks/practice-exercises.md +++ b/building/tracks/practice-exercises.md @@ -264,12 +264,7 @@ If someone is both an author _and_ a contributor, only list that person as an au ```json { - "authors": [ - { - "github_username": "FSharpForever", - "exercism_username": "FSharpForever" - } - ], + "authors": ["FSharpForever"], "files": { "solution": ["Lasagna.fs"], "test": ["LasagnaTests.fs"], From f644071a965528e63b6f25325f702a3cd2818622 Mon Sep 17 00:00:00 2001 From: Erik Schierboom Date: Tue, 23 Mar 2021 13:36:59 +0100 Subject: [PATCH 2/4] Change example --- building/tracks/concept-exercises.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/building/tracks/concept-exercises.md b/building/tracks/concept-exercises.md index 50dd7aff..ec704a1d 100644 --- a/building/tracks/concept-exercises.md +++ b/building/tracks/concept-exercises.md @@ -313,23 +313,23 @@ If someone is both an author _and_ a contributor, only list that person as an au #### Full Example -Assume that the user FSharpForever has written an exercise called `basics` for the F# track. PythonProfessor adapts the exercise for the Python track. Later on, the user PythonPerfection improves the exercise. +Assume that the user FSharpForever has written an exercise called `log-levels` for the F# track. PythonProfessor adapts the exercise for the Python track. Later on, the user PythonPerfection improves the exercise. ```json { "contributors": ["PythonPerfection"], "authors": ["PythonProfessor"], "files": { - "solution": ["lasagna.py"], - "test": ["lasagna_test.py"], + "solution": ["log_levels.py"], + "test": ["log_levels_test.py"], "exemplar": [".meta/exemplar.py"], "editor": ["test_helper.py"] }, - "forked_from": ["fsharp/basics"], + "forked_from": ["fsharp/log-levels"], "language_versions": ">=3.7", - "blurb": "Learn the basics of Python by cooking Guido's Gorgeous Lasagna", + "blurb": "Learn how to work with strings by processing log lines.", "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Lasagne" + "source_url": "https://en.wikipedia.org/wiki/Log_file" } ``` From 6688ef7230111d0604d3480ea27318bae6eec74e Mon Sep 17 00:00:00 2001 From: Erik Schierboom Date: Tue, 23 Mar 2021 13:39:13 +0100 Subject: [PATCH 3/4] Improve practice exercise meta/config.json example --- building/tracks/practice-exercises.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/building/tracks/practice-exercises.md b/building/tracks/practice-exercises.md index a6387ca7..ad150026 100644 --- a/building/tracks/practice-exercises.md +++ b/building/tracks/practice-exercises.md @@ -266,11 +266,11 @@ If someone is both an author _and_ a contributor, only list that person as an au { "authors": ["FSharpForever"], "files": { - "solution": ["Lasagna.fs"], - "test": ["LasagnaTests.fs"], + "solution": ["Bob.fs"], + "test": ["BobTests.fs"], "example": [".meta/Example.fs"] }, - "blurb": "Learn the basics of F# by cooking Lucian's Luscious Lasagna" + "blurb": "Bob is a lackadaisical teenager. In conversation, his responses are very limited" } ``` From 8d6ee10e79b550099beab8fdded662bcc97badb0 Mon Sep 17 00:00:00 2001 From: Erik Schierboom Date: Tue, 23 Mar 2021 13:44:30 +0100 Subject: [PATCH 4/4] Improve example contributor name --- building/tracks/concept-exercises.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/building/tracks/concept-exercises.md b/building/tracks/concept-exercises.md index ec704a1d..2fbf1749 100644 --- a/building/tracks/concept-exercises.md +++ b/building/tracks/concept-exercises.md @@ -313,12 +313,12 @@ If someone is both an author _and_ a contributor, only list that person as an au #### Full Example -Assume that the user FSharpForever has written an exercise called `log-levels` for the F# track. PythonProfessor adapts the exercise for the Python track. Later on, the user PythonPerfection improves the exercise. +Assume that the user `FSharpForever` has written an exercise called `log-levels` for the F# track. `PythonProfessor` adapts the exercise for the Python track. Later on, the user `GladToHelp` improves the exercise. ```json { - "contributors": ["PythonPerfection"], "authors": ["PythonProfessor"], + "contributors": ["GladToHelp"], "files": { "solution": ["log_levels.py"], "test": ["log_levels_test.py"],