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