This week we've defined what the file structure looks like for Practice Exercises. Please skim through this docs PR that gives an overview of the changes, and see the spec for more information.
This PR applies changes to the track to conform to the latest spec. Each change is made as a separate commit, to help with reviewing. When merging this PR, I would suggest to not squash this to preserve the individual commits.
As having this PR merged is essential to prepare this track for Exercism v3, we'll automatically merge this PR one week after it was opened (if it hasn't been merged already).
Here are the changes made:
Add practices field to Practice Exercises
While working on adding prerequisites to the Practice Exercises, we found that we really need two keys for Practice Exercises:
practices: Concepts that the Practice Exercise is actively helping a student to practice. These show up in the UI as "Practice this Concept in: TwoFer, Leap, etc`
prerequisites: The actual Concepts that should have been learnt by a student in order for them be able to do that Exercise.
There are lots of advantages to having the two keys instead of using one key for two purposes, not least that having them split out gives the maintainers a lot more control over the order a student should be exposed to exercises (via the prerequisites) and also where they encourage them to try concepts (via practices), which in reality are quite different things.
We have updated the docs with more details and explanation on this.
Remove README.md files
v3 Practice Exercises won't have a (generated) README.md file anymore. This file will be replaced by .docs/instructions.md and optionally a .docs/introduction.md files. These files are copies of the information defined for their corresponding problem-specifications exercise (if any).
Exercism v3 will build the README.md file that is sent via the CLI from these files contents, along with some other files.
See this document for more information.
This PR removes the README.md files.
Create instruction from prob-specs descriptions
The .docs/instructions.md file is a copy of the instructions.md file of the problem-specifications exercise, or if that does not exists, its description.md file.
The new configlet version will add support for doing this syncing automatically.
This PR adds the .docs/instructions.md file from the problem-specifications exercise's description.md file.
Move .meta/hints.md to .docs/instructions.append.md
As noted above, v3 Practice Exercises will have a .docs/instructions.md and optionally a .docs/introduction.md file.
To add track-specific contents to the instructions and/or introduction, exercises can define the (optional) introduction.append.md and instructions.append.md files. If present, the contents of these files will automatically be append to their corresponding file when generating the README.md
This PR renames any .meta/hints.md files to .docs/instructions.append.md.
Create .meta/config.json files
Practice Exercises in Exercism v3 will have a .meta/config.json file that contains exercise-specific information like the names of the solution, test and example file(s).
The .meta/config.json file will also contain any source information as defined for the corresponding problem-specifications exercise (if any).
This PR adds the .meta/config.json file.
The contents of this file are temporary, and we'll submit follow-up PRs to update their values:
The authors and contributors will be inferred from the Exercise's git history.
As the Exercise files for most tracks are very regular, we're working on a solution that will allow you to define the pattern in your tracks's config.json file, and then use configlet to generate the contents of the files property in the exercise's .meta/config.json file based on the track-defined pattern.
This week we've defined what the file structure looks like for Practice Exercises. Please skim through this docs PR that gives an overview of the changes, and see the spec for more information.
This PR applies changes to the track to conform to the latest spec. Each change is made as a separate commit, to help with reviewing. When merging this PR, I would suggest to not squash this to preserve the individual commits.
As having this PR merged is essential to prepare this track for Exercism v3, we'll automatically merge this PR one week after it was opened (if it hasn't been merged already).
Here are the changes made:
Add practices field to Practice Exercises
While working on adding prerequisites to the Practice Exercises, we found that we really need two keys for Practice Exercises:
practices
: Concepts that the Practice Exercise is actively helping a student to practice. These show up in the UI as "Practice this Concept in: TwoFer, Leap, etc`prerequisites
: The actual Concepts that should have been learnt by a student in order for them be able to do that Exercise.There are lots of advantages to having the two keys instead of using one key for two purposes, not least that having them split out gives the maintainers a lot more control over the order a student should be exposed to exercises (via the prerequisites) and also where they encourage them to try concepts (via practices), which in reality are quite different things.
We have updated the docs with more details and explanation on this.
Remove README.md files
v3 Practice Exercises won't have a (generated) README.md file anymore. This file will be replaced by
.docs/instructions.md
and optionally a.docs/introduction.md
files. These files are copies of the information defined for their corresponding problem-specifications exercise (if any).Exercism v3 will build the README.md file that is sent via the CLI from these files contents, along with some other files. See this document for more information.
This PR removes the
README.md
files.Create instruction from prob-specs descriptions
The
.docs/instructions.md
file is a copy of theinstructions.md
file of the problem-specifications exercise, or if that does not exists, itsdescription.md
file.The new configlet version will add support for doing this syncing automatically.
This PR adds the
.docs/instructions.md
file from the problem-specifications exercise'sdescription.md
file.Move .meta/hints.md to .docs/instructions.append.md
As noted above, v3 Practice Exercises will have a
.docs/instructions.md
and optionally a.docs/introduction.md
file.To add track-specific contents to the instructions and/or introduction, exercises can define the (optional)
introduction.append.md
andinstructions.append.md
files. If present, the contents of these files will automatically be append to their corresponding file when generating the README.mdThis PR renames any
.meta/hints.md
files to.docs/instructions.append.md
.Create .meta/config.json files
Practice Exercises in Exercism v3 will have a
.meta/config.json
file that contains exercise-specific information like the names of the solution, test and example file(s).The
.meta/config.json
file will also contain any source information as defined for the corresponding problem-specifications exercise (if any).This PR adds the
.meta/config.json
file.The contents of this file are temporary, and we'll submit follow-up PRs to update their values:
config.json
file, and then use configlet to generate the contents of thefiles
property in the exercise's.meta/config.json
file based on the track-defined pattern.Tracking
https://github.com/exercism/v3-launch/issues/16