-
Notifications
You must be signed in to change notification settings - Fork 107
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
Refactor env loading, appDir resolution, and exec shell #302
Conversation
* puma/master: Upgrade to stdlib http (puma#304)
I'm going to quickly restate the problem this PR is trying to solve to make sure I understand it correctly. The current technique (
Problems with the current approach
The proposed solution is this:
This solution successfully gives folks the ability to change the shell that puma-dev uses when starting application subprocesses, so it definitely provides an option to people that was not previously available. It has two potential drawbacks, IMO
I think there are two potential paths forward to consider, both of them just alternative ways for the user to specify the
The other thing that's missing is probably just better documentation and better tools for debugging this kind of stuff. It's not super obvious what shells |
I think this has a lot of benefits. My original intent was to reduce the amount of shell code significantly, but you've convinced me that there's more value in letting shell handle env grooming, rather than restricting ourselves to dotenv-style configs. This approach also preserves my original intent, namely to get us back into Go after reading the env, so we can build the I do worry that now macOS has made zsh the default, it's confusing that we'll still force someone to run
You're totally right. It's incredibly hard to figure out how all of these pieces interact. I'm hopeful that splitting out some of this behavior will make it easier to follow in the code, but will also look for opportunities for logging in the short-term. So, I think the way forward involves a few changes and, potentially, splitting this PR in 2-3 pieces to keep things straight.
|
Yeah, I acknowledge that using
I love this approach of breaking up the work into a few smaller PRs. Feel free to tag me for review for any. The list of steps you laid out seems great! |
Related to:
Changes
~/.puma-dev/myapp
) to absoluteappDir
to make relative Gemfile paths workbash
-C
,-t
,-w
) if ENV vars aren't setzsh
to build matrixBinaries
https://github.com/puma/puma-dev/actions/runs/1798040084