This buildpack doesn't currently have any linting of Bash scripts using shellcheck, unlike some of our other buildpacks. And in particular, this buildpack makes heavy use of advanced Bash features (as seen by the fact that it's the only Bash buildpack so far running into Bash 5.3 compatibility issues), so it seems linting is even more important here.
We should add this to CI - initially with any failing errors/warnings disabled so that we can at least prevent further lint regressions while we clean up the existing usages.
See Python for an example of doing this:
https://github.com/heroku/heroku-buildpack-python/blob/b8216105773cb602c576eef22d6afe8200b507e1/.github/workflows/ci.yml#L18-L35
https://github.com/heroku/heroku-buildpack-python/blob/b8216105773cb602c576eef22d6afe8200b507e1/.shellcheckrc#L1-L2
https://github.com/heroku/heroku-buildpack-python/blob/b8216105773cb602c576eef22d6afe8200b507e1/Makefile#L12-L15
This buildpack doesn't currently have any linting of Bash scripts using shellcheck, unlike some of our other buildpacks. And in particular, this buildpack makes heavy use of advanced Bash features (as seen by the fact that it's the only Bash buildpack so far running into Bash 5.3 compatibility issues), so it seems linting is even more important here.
We should add this to CI - initially with any failing errors/warnings disabled so that we can at least prevent further lint regressions while we clean up the existing usages.
See Python for an example of doing this:
https://github.com/heroku/heroku-buildpack-python/blob/b8216105773cb602c576eef22d6afe8200b507e1/.github/workflows/ci.yml#L18-L35
https://github.com/heroku/heroku-buildpack-python/blob/b8216105773cb602c576eef22d6afe8200b507e1/.shellcheckrc#L1-L2
https://github.com/heroku/heroku-buildpack-python/blob/b8216105773cb602c576eef22d6afe8200b507e1/Makefile#L12-L15