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

CONTRIBUTING: Explain reasons for track dependencies on this repo #1406

Merged
merged 1 commit into from
Nov 27, 2018
Merged

CONTRIBUTING: Explain reasons for track dependencies on this repo #1406

merged 1 commit into from
Nov 27, 2018

Conversation

petertseng
Copy link
Member

History

When discussing creating a new exercise, there's the question of any
timing dependencies between the problem-specifications repo and the
track-specific repos.

Recall that it was once required that the problem-specifications PR be
merged first, because READMEs are generated; if the problem
specification did not exist, the README generation would fail and the
student experience would be negatively impacted.

Since exercism/meta#15, READMEs are no longer
generated but included in the track-specific repos, so the absolute
dependency ("must not") no longer applies.

Discussed in #1384

Change and motivation

Change the "must not" to a suggestion.

I've written down all reasons known to me that a contributor should wait
to merge a track-specific PR.

Knowing why a suggestion exists is necessary to understand when it is
and is not okay to ignore the suggestion.

Demonstration that this is safe

I present empirical proof that there is no longer any dependency: I have
arbitrarily selected an exercise that does not have a corresponding
problem-specifications directory and does not have description.md nor
metadata.yml in its .meta directory:
https://github.com/exercism/ballerina/tree/master/exercises/hello-world-service

To the existing tooling, this is indistinguishable from an exercise for
which the track-specific PR was merged before the problem-specifications
PR.

I have personally confirmed that I can join the track, download this
exercise, read the README, implement a solution, and submit this
solution.

CONTRIBUTING.md Outdated
Reference the PR in problem-specifications.
It's suggested but not required to wait until the problem-specifications PR is merged before merging the track-specific PR, for the following reasons:
* If changes are suggested to the problem-specifications PR, it's highly likely that they will be applicable to the track-specific PR as well.
* Only applicable if the exercise needs a custom `title` in metadata.yml (as described in https://github.com/exercism/docs/blob/master/you-can-help/make-up-new-exercises.md#problem-specification): The title of the exercise as displayed on the website will use the default algorithm instead of the correct title.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONTRIBUTING.md Outdated
It's suggested but not required to wait until the problem-specifications PR is merged before merging the track-specific PR, for the following reasons:
* If changes are suggested to the problem-specifications PR, it's highly likely that they will be applicable to the track-specific PR as well.
* Only applicable if the exercise needs a custom `title` in metadata.yml (as described in https://github.com/exercism/docs/blob/master/you-can-help/make-up-new-exercises.md#problem-specification): The title of the exercise as displayed on the website will use the default algorithm instead of the correct title.
* Only applicable to tracks that have specific tools that depend on exercises being present in problem-specifications (see the track-specific documentation for whether any such tools exist): Such tools may operate unpredictably if the exercise does not exist in problem-specifications yet. Try checking out the branch on a local copy of problem-specifications or rerunning the tool after the problem-specifications PR is merged if applicable.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as you can see, it is my attempt to make the #1384 general. I definitely think track-specific tools deserve a mention, though exactly what the tools are has to be documented by the individual tracks.

CONTRIBUTING.md Outdated Show resolved Hide resolved
@rpottsoh
Copy link
Member

I'm still reviewing... I'll post a comment when I am done.

Copy link
Member

@rpottsoh rpottsoh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some subtle, perhaps minor grammar changes. The beta feature is nice for suggesting changes. 💯

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
History
=======

When discussing creating a new exercise, there's the question of any
timing dependencies between the problem-specifications repo and the
track-specific repos.

Recall that it was once required that the problem-specifications PR be
merged first, because READMEs are generated; if the problem
specification did not exist, the README generation would fail and the
student experience would be negatively impacted.

Since exercism/meta#15, READMEs are no longer
generated but included in the track-specific repos, so the absolute
dependency ("must not") no longer applies.

Discussed in #1384

Change and motivation
=====================

Change the "must not" to a suggestion.

I've written down all reasons known to me that a contributor should wait
to merge a track-specific PR.

Knowing why a suggestion exists is necessary to understand when it is
and is not okay to ignore the suggestion.

Demonstration that this is safe
===============================

I present empirical proof that there is no longer any dependency: I have
arbitrarily selected an exercise that does not have a corresponding
problem-specifications directory and does not have description.md nor
metadata.yml in its .meta directory:
https://github.com/exercism/ballerina/tree/master/exercises/hello-world-service

To the existing tooling, this is indistinguishable from an exercise for
which the track-specific PR was merged before the problem-specifications
PR.

I have personally confirmed that I can join the track, download this
exercise, read the README, implement a solution, and submit this
solution.
@petertseng
Copy link
Member Author

It is likely that I will merge this in 52 hours, at which 72 hours will have passed since I submitted this PR.

@petertseng petertseng merged commit ad6fd6a into exercism:master Nov 27, 2018
@petertseng petertseng deleted the must-not branch November 27, 2018 21:04
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

Successfully merging this pull request may close these issues.

2 participants