`exercism download` gives older version of project from haskell track

I’m working on the Haskell track. When I run exercism download --track=haskell --exercise=crypto-square on MacOS with a M2 processor, I get a version of the project code that includes the following stack.yaml:

resolver: lts-18.14

Then running stack build gives an error because this project is using a version of GHC requires LLVM to compile for ARM processors and I don’t have it installed. Manually changing the resolver to a newer version fixes the issue. But why did exercism download give me an old version of the project to begin with? I see that the version of stack.yaml on main has a newer resolver: https://github.com/exercism/haskell/blame/main/exercises/practice/crypto-square/stack.yaml.

If you go to Crypto Square in Haskell on Exercism do you perhaps see some banner about your exercise being out of date and being able to update it? If you started the exercise with an old version, that version of the files gets pinned.

Yes, I do see a banner. And clicking on it gives me a diff. I must have first download the problem on another computer. So downloading the problem again on a new computer will maintain the same files from the original download?

Strangely, I didn’t see that with the Hello, World project. Is that because I already marked it as completed with the older version?

If you start the exercise, Exercism will save what your files look like for that exercise. If the exercise is updated for the website, your files for that exercise do not change. That prevents students’ exercises from randomly changing and breaking. If you run exercism download, it will fetch your pinned files.

If you click the button and update the exercise, your files get updated. Then an exercism download will fetch the new files.

Hello World should act no different in this regard than any other exercise.

1 Like

Thanks for your help. I’ll continue the exercises from here.