We need an older version of Ruby to run this example. We can install it using `rbenv`, which is similar to Python's virtual environments. Set up the environment: * sudo apt update * sudo apt install git curl autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev * curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash * echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc * echo 'eval "$(rbenv init -)"' >> ~/.bashrc * source ~/.bashrc * rbenv install 2.7.8 * rbenv global 2.7.8 github_url: https://github.com/floere/phony good_tag: v1.9.0 bad_tag: v2.10.0 test_command: ruby -e 'require "./lib/phony"; Phony.normalize("999")' We will use `git bisect` to find the commit where the failure begins. Useful commands: git bisect start: start a bisecting search git bisect good: mark a commit as "good" git bisect bad: mark a commit as "bad" git bisect reset: get out of a bisecting search git bisect run: run a script to automate the search (needs a good and bad mark)