The first-time setup workflow as of initial public release is effectively:
make deps, which will error if Homebrew isn't found.
- User must manually
make install-homebrew to install Homebrew, then run make deps again
make deps, via deps-brew will install deps from Homebrew including pyenv
make deps, via install-python via deps-py, will install Python from pyenv, which will error if pyenv isn't found
- User must manually add
pyenv loading code to shell rcfile, then run make deps again
make deps, via install-poetry via deps-py, will install Poetry using pyenv-installed Python or system Python, whichever it detects first, and only if poetry isn't available as of the start of the current run of make.
make deps, via poetry-install via deps-py, will install Python deps using Poetry, which will error if poetry isn't found
- User must manually add
~/.local/bin, Poetry's default installation path, to their PATH in shell rcfile, then run make deps again.
- Complete 🎉
There are some steps I skipped in here related to telling Poetry which Python to use (it generally just works) and sync'ing Peru (also generally just works).
These one-time setup steps ("user must manually…") are annoying. While some tasks tell the user that they need to read command output, too many users just… don't.
Possible solutions:
- Document most generic thing to pre-add to a user's shellrc file in
README.md or at the end of make deps.
- Create a task
make wreck-my-rcfile or maybe more nicely make setup-rcfile-once that modifies the shellrc with what should be put there carefully manually.
- No action: let the user suffer having ignored the nudge to read command output.
The first-time setup workflow as of initial public release is effectively:
make deps, which will error if Homebrew isn't found.make install-homebrewto install Homebrew, then runmake depsagainmake deps, viadeps-brewwill install deps from Homebrew including pyenvmake deps, viainstall-pythonviadeps-py, will install Python from pyenv, which will error ifpyenvisn't foundpyenvloading code to shell rcfile, then runmake depsagainmake deps, viainstall-poetryviadeps-py, will install Poetry using pyenv-installed Python or system Python, whichever it detects first, and only ifpoetryisn't available as of the start of the current run ofmake.make deps, viapoetry-installviadeps-py, will install Python deps using Poetry, which will error ifpoetryisn't found~/.local/bin, Poetry's default installation path, to their PATH in shell rcfile, then runmake depsagain.There are some steps I skipped in here related to telling Poetry which Python to use (it generally just works) and sync'ing Peru (also generally just works).
These one-time setup steps ("user must manually…") are annoying. While some tasks tell the user that they need to read command output, too many users just… don't.
Possible solutions:
README.mdor at the end ofmake deps.make wreck-my-rcfileor maybe more nicelymake setup-rcfile-oncethat modifies the shellrc with what should be put there carefully manually.