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

Retree: Rename retree to satellite #1451

Closed
iHiD opened this issue Feb 1, 2019 · 18 comments
Closed

Retree: Rename retree to satellite #1451

iHiD opened this issue Feb 1, 2019 · 18 comments

Comments

@iHiD
Copy link
Member

iHiD commented Feb 1, 2019

At the end of last year a new exercise was added called "retree". I would like us to get into the habit of naming exercises by what the story is about, not what they teach. That makes the exercise more appealing in the UI (think bob vs trinary or food-chain vs transpose). I feel like this exercise is about transmitting data to Alpha Centauri - so I'd like to propose renaming it to "Satellite" instead. As it's a new exercise, I don't think this will be a big problem.

What are people's thoughts? (cc @fidelcoria @sshine @ErikSchierboom @rpottsoh @nicolechalmers @kytrinyx)

@nicolechalmers
Copy link

@iHiD I like this idea a lot. I think it makes the exercises sound fun and intriguing and I like that the learner discovers the concepts as they're working through the exercise rather than extrapolating from the exercise name.

@rpottsoh
Copy link
Member

rpottsoh commented Feb 1, 2019

Is fine by me.

@iHiD
Copy link
Member Author

iHiD commented Feb 1, 2019

Presuming this agreement continues, could someone more knowledgable than me explain what would need to happen to rename an exercise please :) Do we need to PR to the different tracks that have implemented it? Is this automated/automatable? etc :)

@rpottsoh
Copy link
Member

rpottsoh commented Feb 1, 2019

There hasn't been a rename in at least 2 years that I can recall, not as long as I have been around.... @kytrinyx should be able to tell us the best way to go about it....

@rpottsoh rpottsoh changed the title Rename retree to satalite Rename retree to satellite Feb 1, 2019
@rpottsoh rpottsoh changed the title Rename retree to satellite Retree: Rename retree to satellite Feb 1, 2019
@petertseng
Copy link
Member

petertseng commented Feb 1, 2019

So since exercises are now (presumably) identified in the database by their UUID, does it mean that tracks can freely and independently change their exercise slugs as they desire, without having to perform any database migrations, as we had to when exercises were identified in the database by their slug?

If so, that's great! That means less manual work and no timing dependencies!

I advise that we will probably want both names to be available in https://github.com/exercism/website-icons/tree/master/exercises for a transitionary period. Not every track will change the exercise slug at once.
Oh, never mind, there is no icon for retree, so this concern is moot. The concern is valid for other exercises we might rename.

@petertseng
Copy link
Member

implementing tracks

$ ruby implementing-tracks.rb -t retree                                                         (02-01 21:52)
prolog  1        binary_trees https://github.com/exercism/prolog/tree/master/exercises/retree
                    recursion
              tree_traversals
python  7 pattern_recognition https://github.com/exercism/python/tree/master/exercises/retree
                    recursion
                 transforming
                        trees

@iHiD
Copy link
Member Author

iHiD commented Feb 1, 2019

So since exercises are now (presumably) identified in the database by their UUID, does it mean that tracks can freely and independently change their exercise slugs as they desire, without having to perform any database migrations, as we had to when exercises were identified in the database by their slug?

This is correct, yes :)

@petertseng
Copy link
Member

So since exercises are now (presumably) identified in the database by their UUID, does it mean that tracks can freely and independently change their exercise slugs as they desire, without having to perform any database migrations, as we had to when exercises were identified in the database by their slug?

This is correct, yes :)

I'm really excited to hear that. Renaming a relatively new exercise will be a great way to trial out the process and see if there are any unexpected snags. Since there are only two implementing tracks the impact gets to be small. Then we'll be able to proceed with confidence in renaming other exercises. bracket-push has been on my list for a while #693.

Since track slugs can be independently changed, that means as far as this repo is concerned, it can be treated as if a new exercise was created with the new name.

  • Actually perform the rename https://github.com/exercism/problem-specifications/tree/master/exercises/retree
  • I would consider it the obligation of the person performing the rename (I'll term this person the "initiator") to send a PR to https://github.com/exercism/website-icons/tree/master/exercises . I suggest the old name be moved to the new name, then symlink the old name to the new name, but it's ultimately up to the policy of the maintainers of that repo.
  • I would consider it courteous if the initiator would notify the maintainers of the relevant tracks that the rename has happened. I do not consider the initiator obligated to actually perform the rename on all implementing tracks via PR, since there is no timing requirement. However, for this first instance where we are very interested to see whether this will work, the initiator might choose to do so anyway.
  • Track maintainers rename the exercise in the exercises directory and in config.json.
  • Sometime after a given track T has changed the exercise slug, mentor notes (which refer to exercise by slug) can then be renamed.

@ghost
Copy link

ghost commented Feb 2, 2019

I have no objections to renaming retree. I'll let y'all figure out how to do it.

I would like us to get into the habit of naming exercises by what the story is about, not what they teach.
@iHiD

Let's not assume that every exercise will have a story. Unless having a "story" is documented as a requirement. And then you would also have to document exercise naming conventions.

My point is that the documentation should be updated. I deffer to a more skilled writer to make the update (if having a story and using it for a name will actually be official).

@cmccandless
Copy link
Contributor

Python track maintainer here. I'm all for the rename.

@iHiD
Copy link
Member Author

iHiD commented Feb 4, 2019

Let's not assume that every exercise will have a story. Unless having a "story" is documented as a requirement. And then you would also have to document exercise naming conventions.

I think every exercise should have a story, and the documentation should be updated. But that's something I'll discuss with the product team and confirm before we make steps forward with :)

@petertseng
Copy link
Member

Since this is the first time, I would be curious to hear a report of how it went.

It will refine the process for the next time this comes up.

At a surface glance, I can see https://exercism.io/my/tracks/python lists Satellite, so things look all right. https://exercism.io/my/tracks/prolog looks all right too as an example of what happens when a track has not yet performed. It shows Retree, so this is good as well.

I have not attempted to fetch either exercise yet.

@petertseng
Copy link
Member

I was able to fetch both exercises, so everything seems to be good from a student point of view. I have not checked the mentor point of view

@cmccandless
Copy link
Contributor

I have not checked the mentor point of view

I just checked the mentor view for the Python track. Neither retree or satellite appear in the list of exercises.

@sshine sshine reopened this Mar 15, 2019
Average-user pushed a commit to exercism/prolog that referenced this issue Mar 15, 2019
This commit renames the 'retree' exercise into 'satellite':

 - Decision: exercism/problem-specifications#1451
 - PR: exercism/problem-specifications#1478
@sshine
Copy link
Contributor

sshine commented Mar 19, 2019

@Average-user: Can you confirm @cmccandless in this for the Prolog track?

@Average-user
Copy link
Member

If it does not appear should be because is a side exercise and there is no uploaded solutions for it, right?

@Average-user
Copy link
Member

Because exercises that have no submits but ARE core, appear in grey inside the list. But side exercises that have no submits do not. If someone submits a solution to that problem in the Prolog track I can check it out though

@cmccandless
Copy link
Contributor

If it does not appear should be because is a side exercise and there is no uploaded solutions for it, right?

I submitted a solution for satellite in the Python track, @jeffdparker was able to confirm that my solution appeared. It seems we were just waiting on a submission to be made before it would appear on the dashboard.

We should be in the clear.

@sshine sshine closed this as completed Mar 22, 2019
petertseng added a commit that referenced this issue Apr 15, 2019
I rehash my prior allegations of
#693 below:

I contend that having the word `push` in the name unnecessarily biases
the solution space toward solutions that use a stack data structure (has
a *push* operation) or a *push*-down automaton, rather than other
solutions not using either of these two.

We have heard a principle that we want to name exercises by their story,
not by what they teach:
#1451 (comment)

The story here is about matching brackets, so I posit that that serves
as the name we want.

I have changed the major version number, as was done in the
retree->satellite rename, even though I do not feel strongly about
whether that should be necessary:
#1478

As we have gained experience in the rename of retree, we see that
problem-specifications is free to rename exercises at any point, without
waiting for all tracks to follow suit.
Of course, this operation should not be performed lightly since it
causes churn in the 31 (*thirty-one*) tracks implementing this exercise.
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

7 participants