Skip to content

Use .tool-versions instead of brew #142

Description

@adamnfish-gu

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions