Skip to content
This repository has been archived by the owner on Mar 22, 2022. It is now read-only.

Prepare for 3.8.0 release #121

Closed
15 tasks done
nywilken opened this issue Mar 6, 2018 · 25 comments
Closed
15 tasks done

Prepare for 3.8.0 release #121

nywilken opened this issue Mar 6, 2018 · 25 comments
Assignees

Comments

@nywilken nywilken self-assigned this Mar 6, 2018
@kytrinyx
Copy link
Member

kytrinyx commented Mar 6, 2018

I typically script these with github/hub. Want to give it a go? Or shall I take this one?

@nywilken
Copy link
Contributor Author

nywilken commented Mar 6, 2018

I was just going to go through these manually but if you have an automated way to handle that would be great. If, in the future, you wanted to share how you've automated these that would be pretty cool too.

Heads up some tracks live go, java, and ecmascript have some exercises locked by non core exercises, and some core exercises locked by other core exercises so we might need to have the track maintainers to rethink their dependencies.

@nywilken
Copy link
Contributor Author

nywilken commented Mar 6, 2018

Ah https://hub.github.com - I'll give it a shot and report back if I get stuck.

@kytrinyx
Copy link
Member

kytrinyx commented Mar 9, 2018

Yes! Here's what I generally do:

  • write the issue I want in a file (first line is subject, then a blank line, then the body)
  • write a script to figure out which tracks are problematic (I have them all cloned locally, so I make sure they're all on master and all up to date before running my script)
  • write a simple script to submit the issue using hub. Something like this (off the top of my head; not tested)
ROOT=$(pwd)
for track in {python,go,java}; do
  cd $ROOT/tracks/$track
  hub issue create -F full/path/to/issue-file
done

@nywilken
Copy link
Contributor Author

Thanks @kytrinyx that was helpful. I managed to script things up, but have yet to officially create the issues. I should have things wrapped up in a day.

@masters3d
Copy link

Non-core exercises can only be unlocked by core exercises.

This sounds odd. What’s the point of progression then? Why’s should we care about making some excercises non core if they have to be unlocked by a core one?

This seems to be pushing down the complexity to the maintainers.

Can we just have a blessed list of core problems?

@nywilken
Copy link
Contributor Author

@masters3d thanks for the feedback.

Generally, speaking core exercises are meant to teach key concepts around a particular language (e.g looping, control-flow, string manipulation). That, if completed would prepare the user for any of the exercises unlocked by it.

Whereas optional, non-core, exercises are there to help build on, strengthen, those core concepts. Having a non-core unlocked by another unlocked by another non-core exercise can lead to a situation where a user tries to work on a new exercise, with concepts they have not yet learned or completed. Possibly resulting in frustration or a feeling of not being properly prepared.

Completing core exercises is key to the new curriculum, progression, model in Nextercism. Which is why each track should have 8-20 core exercises.

Can we just have a blessed list of core problems?

This is something we should discuss further in exercism/discussions. Would you mind opening a new issue?

To my knowledge, there are some exercises across all tracks that are considered core (hello-world, hamming, bob, two-fer), but they are not enforced as it has been left to the language maintainers to best select exercises that highlight the key concepts, fundamentals, for learning the language at hand. Here is a recent thread by the Python group exercism/python#1099

@Stargator
Copy link

@nywilken

Generally, speaking core exercises are meant to teach key concepts around a particular language (e.g looping, control-flow, string manipulation). That, if completed would prepare the user for any of the exercises unlocked by it.

But the core exercises are apparently not suppose to be ordered. So how if core exercises are not unlocked in a certain order, then as a maintainer I have no idea what path a given student is learning the language through the exercises. I would prefer to define in the config, this core exercise unlocks this core exercise and so on.

@rpottsoh
Copy link
Member

Are the Core's ordered by how they are placed in config.json or by their difficulty rating? I am assuming the latter.

@rpottsoh
Copy link
Member

@nywilken does tree present the Core's in the order they appear or is it sorting them by difficulty? I am thinking of these things on the fly here and I have not gone to see for myself.

@Stargator
Copy link

It's hard to verify lot of exercises without the update for configlet being released.

Dart only has 11 exercises, but other repos may have much more. If you want to ensure everyone gets it right, I recommend releasing 3.8.0. Though my previous questions remain.

@rpottsoh It looks like the exercises are ordered by the order in which they appear in the config.

I had one exercise at the bottom and it had a difficulty of 1. So difficulty doesn't seem to be a factor.

@rpottsoh
Copy link
Member

It looks like the exercises are ordered by the order in which they appear in the config.
I had one exercise at the bottom and it had a difficulty of 1. So difficulty doesn't seem to be a factor.

Thanks for researching this @Stargator, seems like it ought to be by difficulty and not by order of appearance; or at least by difficulty then by order of appearance.

@nywilken
Copy link
Contributor Author

nywilken commented Mar 15, 2018

@rpottsoh @Stargator my apologies for not being able to respond earlier.

It looks like the exercises are ordered by the order in which they appear in the config.

@Stargator thanks for getting to this ask. Just for completeness, the config.json file is processed from top to bottom inserting the core exercises in the order that they are found into an array and displayed within the tree - independent of difficulty. The same is true for the non-core exercises.

t's hard to verify lot of exercises without the update for configlet being released.
Dart only has 11 exercises, but other repos may have much more. If you want to ensure everyone gets it right, I recommend releasing 3.8.0.

@Stargator this is a good point and I agree that this would help. I haven't released 3.8.0 because it will automatically break the build for each of the tracks, as Travis downloads the latest release at build time. I wanted to make a draft release but I don't think that everyone would have access to it since it is only visible to members with write access to the repository. I might be able to release it out of band for testing. But it wont be until later tonight, tomorrow. @kytrinyx @tleen any thoughts on this ask on how we can get a quick beta binary out.

But the core exercises are apparently not suppose to be ordered. So how if core exercises are not unlocked in a certain order, then as a maintainer I have no idea what path a given student is learning the language through the exercises. I would prefer to define in the config, this core exercise unlocks this core exercise and so on.

If its okay with you I am going to refer you to a previous issue where @tleen spoke about this same ask for the Go track. exercism/go#1082 (comment)

The core exercises are not meant to be done in order as they are more of a stepping stone to one or more concepts for a given language. However, the point that you make is sound and I think would be good for the discussion repo so that it can be discussed further with other members who can speak more to the progression model.

@nywilken
Copy link
Contributor Author

nywilken commented Mar 16, 2018

@Stargator @rpottsoh

It's hard to verify lot of exercises without the update for configlet being released.

I went ahead and pre-released v3.8.0 for validation purposes. You can find the release here. Thanks again for the help in pushing these issues forward and for the feedback.

@rpottsoh
Copy link
Member

Windows 64 bit pre-release v3.8.0 appears to be working OK for me. Tried linting GO and found same error as you have listed in exercism/go#1093. version -l also claims it is the latest version. Will you be bumping the version for the release? It would allow me to try the upgrade feature, currently it reports that the CLI is up to date. @exercism/go should also generate, a couple of READMEs are out-of-date.

@nywilken
Copy link
Contributor Author

@rpottsoh thanks for testing. In hindsight I should’ve pre-released a rc version for testing the upgrade functionality.

@tleen
Copy link
Member

tleen commented Mar 17, 2018

Sorry for MIA I can take a look tomorrow, and appreciate the heads up on the Go track.

@tleen
Copy link
Member

tleen commented Mar 18, 2018

When all is finished it may be useful to document somewhere this process for creating the repo-side issues via hub. I've often wondered about it myself. Seems like something we would do via this project here and there.

@tleen
Copy link
Member

tleen commented Mar 18, 2018

I had one exercise at the bottom and it had a difficulty of 1. So difficulty doesn't seem to be a factor.

@rpottsoh @Stargator difficulty is noted (if --with-difficulty is flagged) but not taken into account anywhere. The ordering is the ordering by which the exercise data is unpacked from the JSON which IIRC is in listing order.

@tleen
Copy link
Member

tleen commented Mar 18, 2018

Can we just have a blessed list of core problems?

@masters3d I believe it was determined that it was not possible to create a blessed list because of large differences in languages and exercise implementations.

@tleen
Copy link
Member

tleen commented Mar 18, 2018

| @exercism/go should also generate, a couple of READMEs are out-of-date.

Thanks for the heads up @rpottsoh I just PRd that update via the latest configlet. So generate works just fine!

@kytrinyx
Copy link
Member

Sorry I've missed this entire discussion—I've been heads down at work for the past 2 weeks.

To clarify:

The core exercises are meant to be done in order. Each core exercise unlocks the next. This happens implicitly by virtue of being "core". You have to complete the core exercise you are working on, in order to start on the next one.

The order is decided by the array in config.json.

The difficulty should inform the order. If maintainers see that core exercise number 3 has a difficulty of 7 whereas number 5 has a difficulty of 2, then the maintainers should tweak the order of the core exercises. The difficulties and topics will appear on the exercise on the website, which will let people do filtering and selecting.

It looks like this has all been resolved, but if you have any open questions about core/non-core, would you please open up an issue in the v2-feedback repository?

FYI @iHiD for visibility

@rpottsoh
Copy link
Member

rpottsoh commented May 9, 2018

upgrade from 3.8.0 to 3.9.0 worked fine on Windows 7 32 bit.

@nywilken
Copy link
Contributor Author

nywilken commented May 9, 2018

@rpottsoh thanks for testing!!!!

@rpottsoh
Copy link
Member

upgrade from 3.8.0 to 3.9.0 for Windows 10 👍

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

No branches or pull requests

6 participants