The examples in this repository use brew to install the dev toolchains, but installing tools globally onto the applicant's machine feels pretty intrusive. It also means we're assuming the use of a mac, which makes things more difficult for people that can't afford an expensive laptop.
Some examples of problems (non-exhaustive!):
- lots of things in brew use Java so mucking around with that by installing specific versions might break other things for people.
- brew-installing Python 3 is hopefully a no-op, but like Java, this might cause problems if it is not.
- the Scala example uses the guardian's gu-scala cask. This hasn't been touched in 7 years, and unnecessarily installs both Scala and sbt.
- the JavaScript and typescript examples assume yarn is installed globally, and the JavaScript one is likely using a pretty old version of yarn.
- most of the other examples assume the language toolchain is already available on the path (gem,
Might we use .tool-versions instead, so they can use their tool of choice for installing the dev toolchain? If all the examples here specify a .tool-versions file that we maintain, we can document the use of mise in the main README (our recommended tool) or people are free to use other compatible tools like asdf.
Looking ahead, this would make it simpler for us to quickly verify these examples still build, manually in our own dev environments, or automatically (e.g. from a GHA workflow). Lots of the examples still lack setup scripts, I think migrating to a standard approach for installing toolchains and including a build that verifies all of them would help make the experience more pleasant and reliable for pairing tests.
The examples in this repository use brew to install the dev toolchains, but installing tools globally onto the applicant's machine feels pretty intrusive. It also means we're assuming the use of a mac, which makes things more difficult for people that can't afford an expensive laptop.
Some examples of problems (non-exhaustive!):
Might we use .tool-versions instead, so they can use their tool of choice for installing the dev toolchain? If all the examples here specify a
.tool-versionsfile that we maintain, we can document the use of mise in the main README (our recommended tool) or people are free to use other compatible tools likeasdf.Looking ahead, this would make it simpler for us to quickly verify these examples still build, manually in our own dev environments, or automatically (e.g. from a GHA workflow). Lots of the examples still lack setup scripts, I think migrating to a standard approach for installing toolchains and including a build that verifies all of them would help make the experience more pleasant and reliable for pairing tests.