This issue is part of the migration to v3. You can read full details about the various changes here.
This PR prepares the track for Exercism v3, which will be different in a number of ways from Exercism v2.
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).
In this PR, the following changes are made:
v2 file migration
Move the existing exercises in the exercises directory to the exercises/practice directory
v3 file migration
Copy the v3 languages/<slug>/concepts directory to the concepts directory
Copy the v3 languages/<slug>/exercises/concept directory to the exercises/concept directory
Copy the v3 languages/<slug>/reference directory to the reference directory
Copy the v3 languages/<slug>/docs directory to the docs directory
Notes
Any commits modifying the aforementioned directories (or any of their files) are included in the PR, except for:
The _sidebar.md files are not migrated
The README.md file at the v3 track's root is not migrated.
The maintainers.md file is not migrated.
config.json migration
The config.json file is updated to conform to the v3 spec.
Settings defined in the v3 config.json file will take precedence over their v2 config.json file's equivalent.
configlet
Update the fetch-configlet and fetch-configlet.ps1 files to the latest version of configlet, which can work with v3 tracks.
Continuous integration
Add a GitHub Actions workflow to verify the track using the configlet-CI GitHub Action, unless there already is a file named .github/workflows/configlet.md.
Add a dependabot configuration to automatically submit PRs for any new versions of external workflows used in this track's GitHub Action workflows.
Convert any Exercism GitHub Actions workflows being used to use main as their branch instead of master. See this issue.
Follow-up steps
We've created issues in this repo for the follow-up steps to get this track ready for v3.
This issue is part of the migration to v3. You can read full details about the various changes here.
This PR prepares the track for Exercism v3, which will be different in a number of ways from Exercism v2.
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).
In this PR, the following changes are made:
v2 file migration
exercises
directory to theexercises/practice
directoryv3 file migration
languages/<slug>/concepts
directory to theconcepts
directorylanguages/<slug>/exercises/concept
directory to theexercises/concept
directorylanguages/<slug>/reference
directory to thereference
directorylanguages/<slug>/docs
directory to thedocs
directoryNotes
Any commits modifying the aforementioned directories (or any of their files) are included in the PR, except for:
_sidebar.md
files are not migratedREADME.md
file at the v3 track's root is not migrated.maintainers.md
file is not migrated.config.json migration
The
config.json
file is updated to conform to the v3 spec.Rename the
"exercises"
property to"practice"
Create an
"exercises"
property and move the"practice"
property to this property:Remove the
"core"
,"auto_approve"
, and"unlocked_by"
properties from the practice exercisesAdd the
"name"
property to the practice exercises and pre-populate this with a titlelized version of the"slug"
propertyAdd the
"prerequisites"
property to the practice exercises and set it to an empty arrayAdd an empty
"concept"
array property to the"exercises"
property"foregone"
property to the"exercises"
key:"concepts"
key, which is an array:"tags"
key, which is an array:"key_features"
key, which is an array:"status"
key, which is an object containing properties with boolean values indicating if a v3 feature is implemented:"slug"
key, which is a string containing the track's slug:Re-order the practice exercises using the following ordering:
Add the
"status"
key with a value of"deprecated"
to practice exercises that have"deprecated"
set totrue
. Thedeprecated
field itself is removed:Notes
config.json
file will take precedence over their v2config.json
file's equivalent.configlet
fetch-configlet
andfetch-configlet.ps1
files to the latest version of configlet, which can work with v3 tracks.Continuous integration
Add a GitHub Actions workflow to verify the track using the configlet-CI GitHub Action, unless there already is a file named
.github/workflows/configlet.md
.Add a dependabot configuration to automatically submit PRs for any new versions of external workflows used in this track's GitHub Action workflows.
Convert any Exercism GitHub Actions workflows being used to use
main
as their branch instead ofmaster
. See this issue.Follow-up steps
We've created issues in this repo for the follow-up steps to get this track ready for v3.
Tracking
https://github.com/exercism/v3-launch/issues/11