Skip to content
This repository has been archived by the owner on Oct 5, 2018. It is now read-only.

Generate all exercise READMEs #15

Closed
kytrinyx opened this issue Jul 9, 2017 · 0 comments
Closed

Generate all exercise READMEs #15

kytrinyx opened this issue Jul 9, 2017 · 0 comments

Comments

@kytrinyx
Copy link
Member

kytrinyx commented Jul 9, 2017

Based on discussion in exercism/discussions#158 we decided that each exercise should contain exactly the files that will be served with the exception of anything in the .meta directory. The discussion about file names and defaults is in exercism/discussions#165

This means that each exercise should have a static README.md living within the exercise directory.

In order to make it easier to keep these up to date, we need tooling that will regenerate the README to incorporate changes in:

  • problem-specifications/exercises/:slug/description.md
  • problem-specifications/exercises/:slug/metadata.yml
  • :track_id/exercises/:slug/.meta/readme_template.go
  • :track_id/exercises/:slug/.meta/description.md
  • :track_id/exercises/:slug/.meta/metadata.yml
  • :track_id/config/exercise-readme-insert.md
  • :track_id/exercises/:slug/.meta/hints.md

We will be using two levels of default readme template.

  • :track_id/config/exercise-readme.go.tmpl - a template that is global to the track
  • :track_id/exercises/:slug/.meta/readme.go.tmpl - a template that is specific to the exercise, which overrides the default track one.

The track default is constructed such that it generates the README that currently gets generated on the fly.

I've added support for a generate subcommand to configlet, which does the README generation.
See https://github.com/exercism/docs/blob/master/language-tracks/exercises/anatomy/readmes.md for detailed documentation.

@kytrinyx kytrinyx self-assigned this Jul 9, 2017
This was referenced Jul 16, 2017
petertseng added a commit to exercism/ceylon that referenced this issue Jul 16, 2017
petertseng pushed a commit to petertseng/configlet that referenced this issue Oct 14, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

This may even become required at some point. Prepare for this
requirement by placing READMEs in the correct places.
petertseng pushed a commit to petertseng/configlet that referenced this issue Oct 14, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The example test would fail without the attached code change.
* The unit test in `lint_test.go` testing against `fixtures/numbers`
  actually does not fail, because there are other reasons for the track
  to be invalid, so the attached code change was not necessary. This
  points to the unit test being too coarse, but this is a discussion for
  another day. For now, the example test suffices.

Closes exercism/discussions#200
Closes exercism/configlet#86
petertseng pushed a commit to petertseng/configlet that referenced this issue Oct 14, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The example test would fail without the attached code change.
* The unit test in `lint_test.go` testing against `fixtures/numbers`
  actually does not fail, because there are other reasons for the track
  to be invalid, so the attached code change was not necessary. This
  points to the unit test being too coarse, but this is a discussion for
  another day. For now, the example test suffices.

Closes exercism/discussions#200
Closes exercism/configlet#86
petertseng pushed a commit to petertseng/configlet that referenced this issue Oct 14, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The example test would fail without the attached code change.
* The added TestMissingReadme would fail if the attached code change
  were incorrect.
* The TestLintTrack against `fixtures/numbers` actually does not fail,
  because there are other reasons for the track to be invalid, so the
  attached code change was not necessary. This points to the unit test
  being too coarse, but this is a discussion for another day. For now,
  the other two tests suffice.

Closes exercism/discussions#200
Closes exercism/configlet#86
petertseng pushed a commit to petertseng/configlet that referenced this issue Oct 16, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The example test would fail without the attached code change.
* The added TestMissingReadme would fail if the attached code change
  were incorrect.
* The TestLintTrack against `fixtures/numbers` actually does not fail,
  because there are other reasons for the track to be invalid, so the
  attached code change was not necessary. This points to the unit test
  being too coarse, but this is a discussion for another day. For now,
  the other two tests suffice.

Closes exercism/discussions#200
Closes exercism/configlet#86
petertseng added a commit to petertseng/configlet that referenced this issue Oct 16, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

This may even become required at some point. Prepare for this
requirement by placing READMEs in the correct places.
petertseng added a commit to petertseng/configlet that referenced this issue Oct 16, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The added TestMissingReadme would fail if the attached code change
  were incorrect.
* The added TestLintTrack case on missing-readmes would fail without
  the attached code change.

Closes exercism/discussions#200
Closes exercism/configlet#86
petertseng added a commit to petertseng/configlet that referenced this issue Oct 16, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The added TestMissingReadme would fail if the attached code change
  were incorrect.
* The added TestLintTrack case on missing-readmes would fail without
  the attached code change.

Closes exercism/discussions#200
Closes exercism/configlet#86
petertseng added a commit to petertseng/configlet that referenced this issue Oct 18, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

This may even become required at some point. Prepare for this
requirement by placing READMEs in the correct places.

Note: numbers/zero does not require a README as it is foregone.
petertseng added a commit to petertseng/configlet that referenced this issue Oct 18, 2017
After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The added TestMissingReadme would fail if the attached code change
  were incorrect.
* The added TestLintTrack case on missing-readmes would fail without
  the attached code change.

Closes exercism/discussions#200
Closes exercism/configlet#86
nywilken pushed a commit to exercism/v2-configlet that referenced this issue Feb 4, 2018
* exercise: add HasReadme

* fixtures: Add READMEs to linted tracks

After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

This may even become required at some point. Prepare for this
requirement by placing READMEs in the correct places.

Note: numbers/zero does not require a README as it is foregone.

* lint: Check for README presence

After exercism/meta#15, READMEs are to be
generated and placed into each track's exercise implementation
directory.

My (unsubstantiated) assumption is that they will be required to be
present after Nextercism, as we don't want to keep generating READMEs on
the fly.

If this assumption is correct, it seems necessary to check that READMEs
are present on all exercises.

With the attached fixture change and attached test changes:

* The added TestMissingReadme would fail if the attached code change
  were incorrect.
* The added TestLintTrack case on missing-readmes would fail without
  the attached code change.

Closes exercism/discussions#200
Closes exercism/configlet#86
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant