-
-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[v3] Prepare for v3 #936
[v3] Prepare for v3 #936
Conversation
* [Docs] Move implementing-a-concept-exercise.md to reference folder * [Docs] Move reference documents to docs folder * [Docs] Update to student-facing docs * [Docs] Add new issue template Co-Authored-By: Jeremy Walker <[email protected]> Co-Authored-By: Victor Goff <[email protected]> Co-authored-by: Sascha Mann <[email protected]>
Haskell has no methods, so another example is used.
Expand on how to deal with ambiguity between the two versions of CIS 194 available online. Expand on how to deal with concepts outside of CIS 194. Some copy-paste bugs are fixed also.
This merges the existing [v2 track's directory structure][v2] with [v3 track's directory structure][v3] as outlined in the v3 repository. In particular, the layout of multiple example solutions is preserved until Haskell track contributors come to another conclusion than the current. This discussion is extracted into exercism#893. The ordering of the files in the ASCII drawing is incidentally made so that the track-specific files are listed first. [v2]: https://github.com/exercism/haskell#directory-structure [v3]: https://github.com/exercism/v3/blob/master/docs/maintainers/generic-how-to-implement-a-concept-exercise.md
[Docs] Add reference to required reading in implementing guide
[Docs] Add reference to Concept Exercise Anatomy video
* First version of cli.md * finish cli.md * start with debug.md * fix markdown * finish debug.md * Refine cli.md
[Docs] Cross-reference concept exercise file information
I was just reading and saw this typo Matches other languages' docs and the directory in this repo.
[Docs] Add description of concept documents Co-authored-by: Jeremy Walker <[email protected]>
* Rename example files to exemplar See exercism/docs#23 * [Docs] Correct .meta/example references to .meta/exemplar * [Docs] Use exemplar instead of example * [Docs] Update example name in file listings * [Julia] Convert to exemplar.jl * [elm] Rename .meta/Cook.elm to .meta/Examplar.elm * [elm] Rename .meta/Examplar.elm .meta/Exemplar.elm Co-authored-by: Matthieu Pizenberg <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is a summary for my own understanding of what appears to happen in this PR:
Changes to the CI scripts
- Added GitHub Actions script to run Dependabot on GitHub Actions scripts.
- Added GitHub Actions script to download and run
configlet
. bin/fetch-configlet
changed. Not sure if/howbin/fetch-configlet
and.github/workflows/configlet.yml
play together. The new one seems to share characteristics of https://github.com/exercism/github-actions/blob/main/configlet-ci/fetch-configlet
Changes to the documentation shown to users
- New documents:
cli.md
,debug.md
- It is unclear if/how these two files merge with the current documentation shown to users. Current documentation shown to users is more complete.
Additions to the documentation shown to contributors
- "How to implement a Haskell concept exercise": Consider how much of this information should be put in the current README, and how much should be linked between the two documents.
Why does CI fail in this PR at the time of review?
- "Check track configuration" fails at the step of "Fetching the repository", but I can't find that string anywhere:
/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +refs/heads/master*:refs/remotes/origin/master* +refs/tags/master*:refs/tags/master*
Error: The process '/usr/bin/git' failed with exit code 1
- "Check exercises (lts-from-exercises)" fails with:
ls: cannot access 'exercises/*/stack.yaml': No such file or directory
Error: Must provide filename
This appears to trigger a bug on .github/workflows/tests.yml
line 101 where
resolver=$(yq read "$(ls -1 exercises/*/stack.yaml | head -1)" resolver)
no longer activates glob patterns in "$(ls ...)"
What must happen before this PR is merged?
I will leave this as an open question.
└── .meta | ||
├── config.json | ||
└── design.md | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This directory structure describes the exercises/concept/
sub-directory of which there currently aren't any examples.
The directory exercises/practice/
under this PR has the directory structure presently described in the README.
These should be merged and put in one place.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Absolutely. I'll leave this to you (the track maintainers) to fix, as you best know the structure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've made a preliminary fix in d6ceb1c.
They do share characteristics, but as we know which platform the GitHub Actions script runs on, we could simplify things a bit there.
I'll leave this for the Haskell maintainers to decide :)
We've not completely finalized this spec at the moment. You can ignore these documents for now.
It looks like it is pointing to
This PR is preferrable merged as soon as possible, as this will allow the track to be tested on our staging website. The idea is that tracks then do follow-up PRs to fix any open issues. |
Before this commit, it appears that this document was a mixture between a generic template and my initial writings about how we might go about creating a framework for implementing concept exercises, i.e., not an actual description of any agreed-upon approach to writing concept exercises on the Haskell track. Removes references to CIS 194. Removes links to generic documents that don't seem useful. Particularly: Preserve YouTube link of @iHiD talking. :)
This commit mentions that there are now two types of exercises. This section contains two broken links: - The "Unimplemented exercises" tool that we link to has been repurposed into testing whether a track is in compliance with Exercism v3. That means we no longer have an online cross-reference tool to get a list of unimplemented exercises. This link is replaced by a statement to manually cross-reference. This is not ideal, but it is possible. - "documentation on porting an exercise" now gives a 404. This link is just removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are now merging these PRs automatically so that we can continue to script further bulk-PRs to help you. For many tracks this will break CI, but we consider this a reasonable tradeoff as all Exercism tracks are in a transitionary period between now and the launch of 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:"concepts": []
"tags"
key, which is an array:"tags": []
"key_features"
key, which is an array:"key_features": []
"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
exercism/v3-launch#11