Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch Makefile to zsh and require zsh installation for developers #49

Conversation

reece
Copy link
Member

@reece reece commented Jul 6, 2024

The biocommons Makefile had been using globstar for the clean* targets. This was much more reliable/less error prone/easier to read than find | xargs. However, Apple only installs bash v3 on Macs because of licensing concerns with bash v4. So, our options were:

  • make Mac users install bash v4
  • revert to find | xargs
  • switch to zsh for the Makefile (users wouldn't have to switch their login shell)

Since this matter only is only relevant to developers, and because zsh is either already installed or easily installed on modern systems, the easiest move seems to be to require that developers install zsh. That's what this PR does.

@reece reece requested a review from a team as a code owner July 6, 2024 05:34
@reece reece linked an issue Jul 6, 2024 that may be closed by this pull request
@@ -44,7 +48,7 @@ ${VE_DIR}:
#=> develop: install package in develop mode
.PHONY: develop
develop:
pip install -e .[dev]
pip install -e ".[dev]"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

N.B. zsh treats .[dev] as a glob. Because it doesn't match anything, it returns an error.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fairly certain that forgetting the quotes in zsh is considered a classic blunder

korikuzma
korikuzma previously approved these changes Jul 8, 2024
@reece reece merged commit 9837c06 into main Jul 8, 2024
8 checks passed
@reece reece deleted the 41-makefile-uses-bash-globstar-which-is-unavailable-to-older-bash-versions branch July 8, 2024 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Makefile uses bash globstar, which is unavailable to older bash versions
3 participants