Hi Richard, there isn’t an easy way to communicate with Exercism users (I’m 
arranging an email to be sent) but essentially just apply this upgrade

https://github.com/exercism/pharo-smalltalk/blob/master/docs/UPGRADE.md

Sent from my iPhone



Sent from my iPhone
> On 20 May 2019, at 04:20, Richard O'Keefe <rao...@gmail.com> wrote:
> 
> This is not an answer to your question, but it is an observation by someone 
> who was trying all
> the exercises.  As a user, it was just working.  Then suddenly, there was a 
> change.  Instead of
> a new exercise popping up underneath Exercism, it would appear as 
> Exercise@Foobar.  No big
> deal.  What *is* a big deal is that the "submit" menu item disappeared, and 
> the only way I
> have found to submit a solution is
>  - File Out the class
>  - Use the command line to download the exercise
>  - Move the filed out class to the exercise directly
>  - exercism submit Foobar.st
> I had been quite impressed with how smoothly everything went in the UI before.
> 
> 
>> On Mon, 20 May 2019 at 09:57, Tim Mackinnon <tim@testit.works> wrote:
>> I’m wondering if others might spot a better way of handling this - but with 
>> Exercism, I’ve got 100 exercises to manage. An Exercise is a TestCase and 1 
>> or more solution classes (normally 1, but sometimes several). I had 
>> initially used Tags to manage this, there was an ExercismExercise package, 
>> and then a tag for each exercise. This was quite neat and tidy - however its 
>> flawed as it doesn’t allow extension methods on the tags (they live on the 
>> parent package - which is problematic as in use, the exercises are loaded 
>> one by one from tonel files as the student progresses), it also does let you 
>> critique an individual exercise… so essentially they aren’t sub-projects and 
>> I was recommended to promote them to proper Packages.
>> 
>> This was all quite trivial to support with tags but now I have to grapple 
>> with the BaselineOf for my project (to manage all these exercises in 
>> development mode - where you want to load them all, run all their tests, and 
>> add to them etc).
>> 
>> As each exercise depends on an ExercismTestCase - I have a single pre-req 
>> for each one, and then, in development mode, I have to load all 100 of them. 
>> The best I came up with was the following - but its a hell of a lot more 
>> complicated than the previous tag solution where effectively the owning 
>> package let me do this once (and membership of that package automatically 
>> gave a tag this pre-req and containment behaviour).
>> 
>> So instead I have to do the following (and I’m left wondering if I’m missing 
>> some easier way). The bold bits are where I’ve tried to do something to try 
>> and workaround this - its the array of  packageNames that is a bit 
>> distasteful to me, and it feels a lot like I have to express the same 
>> information twice - one in the iceberg window to add all these packages, and 
>> then again in the method of names, to set the identical pre-req on each of 
>> them… I find in this respect, I’m missing Envy developer here?
>> 
>> Anyone have some better suggestions? Or do we need to try and make the tools 
>> better?
>> 
>> Tim
>> 
>> baseline: spec
>>      <baseline>
>>      
>>      spec
>>              for: #common
>>              do: [ 
>>                      self setUpExercisesFor: spec.
>>                      spec
>>                              package: 'ExercismPharo70'; "Pharo 
>> override/patch methods"
>>                              package: 'ExercismTools' 
>>                                      with: [ spec requires: 
>> #('ExercismPharo70') ];
>>                              
>>                              package: 'ExercismTests'
>>                                      with: [ spec requires: 
>> #('ExercismTools' 'ExercismMocking'), 
>>                                              self exerciseTestPackageNames ];
>>                                      
>>                              package: 'ExercismSystemTests'
>>                                      with: [ spec requires: 
>> #('ExercismTests') ];
>>                              
>>                                      
>>                              package: 'ExercismDev'
>>                                      with: [ spec requires: #(
>>                                              'OSProcess' "For shelling out 
>> to configlet"
>>                                              'Ring2' "For mentoring support 
>> of shadow browsing"
>>                                              'ExercismTools' ), 
>>                                              self exercisePackageNames,
>>                                              #('Exercism'
>> 
>>                                              'ExercismTests' 
>>                                              'ExercismSystemTests')];
>>                              
>>                              group: 'default'
>>                                      with: #('ExercismTools' 
>> 'Exercise@Welcome');
>>                              
>>                              group: 'dev'
>>                                      with: #('ExercismDev’)].
>> 
>> setUpExercisesFor: spec
>>      self class exercisePackageNames, self class exerciseTestPackageNames 
>>              do:
>>                      [ :name | spec package: name with: [ spec requires: 
>> #('ExercismTools') ] ].
>> 
>> exercisePackageNames
>>      "Answer the list of exercise package names (as we don't yet have proper 
>> projects)"
>> 
>>      ^ #('Exercise@Acronym' 'Exercise@Allergies' 'Exercise@Anagram' 
>> 'Exercise@ArmstrongNumbers' 'Exercise@AtbashCipher' 'Exercise@Binary' 
>> 'Exercise@Bowling' 'Exercise@Clock' 'Exercise@CollatzConjecture' 
>> 'Exercise@Darts' 'Exercise@Diamond' 'Exercise@Die' 'Exercise@Etl' 
>> 'Exercise@Forth' 'Exercise@GradeSchool' 'Exercise@Grains' 'Exercise@Hamming' 
>> 'Exercise@HelloWorld' 'Exercise@HighScores' 'Exercise@IsbnVerifier' 
>> 'Exercise@Isogram' 'Exercise@Leap' 'Exercise@Luhn' 
>> 'Exercise@MatchingBrackets' 'Exercise@Pangram' 'Exercise@Proverb' 
>> 'Exercise@Raindrops' 'Exercise@ResistorColorDuo' 'Exercise@ReverseString' 
>> 'Exercise@RobotSimulator' 'Exercise@RomanNumerals' 
>> 'Exercise@SecretHandshake' 'Exercise@Sieve' 'Exercise@SpaceAge' 
>> 'Exercise@SumOfMultiples' 'Exercise@Tournament' 'Exercise@TwelveDays' 
>> 'Exercise@TwoFer' 'Exercise@Welcome' 'Exercise@WordCount')

Reply via email to