Skip to content
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

nextercism: implement prepare command #418

Closed
kytrinyx opened this issue Aug 4, 2017 · 1 comment
Closed

nextercism: implement prepare command #418

kytrinyx opened this issue Aug 4, 2017 · 1 comment

Comments

@kytrinyx
Copy link
Member

kytrinyx commented Aug 4, 2017

To be merged into the nextercism branch in #410

Command name: prepare (alias p).
File: cmd/prepare.go.

I was going to call this setup, but then it crashes with the alias for submit.

Prepare the Exercism CLI

$ exercism prepare

The CLI ships with default messaging, but will call the /cli/settings endpoint on the API to get updated copy.

This will let us update copy without releasing a new version of the CLI, perform A/B tests, and translate the CLI to other (human) languages.

Store the timestamp/version of the latest download in the config. The API will provide a header on all responses containing the version of the latest settings, which will allow us to auto-update these when they're outdated.

We need to implement a user setting that lets people explicitly turn off auto-update.

Prepare a language track

$ exercism prepare haskell

Call the API to get a list of files to download and settings to store for a language track.

The files live in the global directory in the track repository. This is useful in the case where we need a harness or some shims in order to do Exercism exercises in that language, or where there is no official testing library or package management system to deliver them.

The settings are things like the test_pattern from the track's config.json so that we don't auto-upload the tests when someone submits a whole directory.

Store the timestamp of the latest download. The API will provide a header on all responses containing the version of the latest settings, which will allow us to auto-update these when they're outdated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant