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
docs: add instructions for testing a PR by installing a downloaded binary in the $PATH #5451
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
Thanks for the comments @stasadev. Before addressing them, I am having an odd situation, where my DDEV 1.22.3 without a DDEV in |
It is because the file is here If you want to have a complete fresh DDEV, you can backup
I usually do and
when I want to clean everything else. Or as you did: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This really isn't about linux at all. It's about understanding how $PATH works, and putting the ddev binary in your PATH ahead of where the system-installed binary is.
I'd love to have you rethink this as "installing a downloaded binary in the $PATH" instead of "Linux instructions".
Another minor nuance is that this isn't just about testing PRs, it's the same with testing HEAD version by downloading the artifacts. |
And... It is in fact hard for lots of people. So this is a very valuable thing to cover. |
Using |
Awesome explanation about Docker and the different DDEV parts @stasadev. I didn't get to comment about it before now, but thanks a lot for that, I really appreciate it. Maybe the steps to test a PR (or the structure of DDEV itself and tools and add-ons?) needs to get a short description, since there are a few moving parts ...? Maybe the help text could be expanded, to cover testing a PR for different situations and what to be aware of, such as testing a PR which changes code only inside DDEV (which I suppose would follow the latest binary) or testing a PR, which changes code in other places, such as the @tyler36: Great suggestion, I have updated the text. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some nitpicky suggestions but otherwise looks good to me!
Perfect @mattstein, both were great suggestions, thanks! |
In a follow up issue, perhaps that page can be re-visited about the use of the word "Binary"? It doesn't mean anything to me. So perhaps the page can start with stating something like this?
And after that, use "DDEV binary" on the page or whatever we agree on is a fitting word for it, and not just "binary"? |
In a follow up issue, perhaps the page can be re-visited about the use of the word "Binary"? It doesn't mean anything to me. So perhaps the page can start with stating something like this?
And after that, use "DDEV binary" on the page or whatever we agree on is a fitting word for it, and not just "binary"? Also, this could be tied in with @rfay's comment about DDEV’s latest-committed HEAD version:
I am not certain how to phrase it though ... |
I'm interested in what wording to use, if we can do better. "Artifacts" is a pretty technical term which is not useful to people who aren't normally in a build environment. "Binary" is one of many words that imply a compiled artifact. In the PHP world there's aren't binaries (except |
Maybe executable instead? |
I could live with "executable". It's kind of a traditional Windows-ish word, but maybe people would understand it better. |
If that’s the predominant term in the GoLang docs, I don’t think Clippy crossover warrants great concern. 🤷♂️ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this contribution and initiative.
Overall, this is adding too much training for too little value. I think we have to (mostly) assume that people understand what $PATH is. We can give them a little guidance about the place to put it.
IMO ~/bin is a better place to put things than .local/bin
, it's easier to work with and supported by most platforms' .bash_profile.
Overall the problem though is how much handholding we can do here.
Could we do a gist or something with the full handholding and keep this more concise?
Surely there's a good tutorial somewhere we can point people to, or a gist or something?
Or maybe we need a PATH tutorial on ddev.com?
@@ -15,6 +15,8 @@ Each [PR build](https://github.com/ddev/ddev/actions/workflows/pr-build.yml) cre | |||
|
|||
Download and unzip the appropriate binary and place it in your `$PATH`. | |||
|
|||
### Homebrew with macOS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### Homebrew with macOS | |
### Homebrew with macOS or Linux |
That's a great idea! We can add the text from this patch there, and link to it. Also, |
On Ubuntu and most systems, this is in /etc/skel/.profile, which is used by default by sh and bash:
That's most likely how your .local/bin gets into the PATH, and if ~/bin exists, it will be added. You have to start a new bash session to see it. |
I didn't know about I prefer to keep my home folder as clean as possible of any program folders, which is why I use the hidden folder |
Co-authored-by: Matt Stein <m@ttste.in>
Co-authored-by: Matt Stein <m@ttste.in>
Perfect, thanks @mattstein, @stasadev, @tyler36, and @rfay. Actually, I have since come to the conclusion that using
Or maybe just add the the Also, both v1.22.3 and v1.22.5 are used, but that's a minor detail. |
I always keep a ~/bin, and it's a fairly normal thing to do since the beginning of the Unix age. Let's let this be for now. Maybe you'll want to return to it in a few months :) |
Hah, yes, I may realize that as well :) |
The Issue
It is documented how to test a PR in macOS with Homebrew, but not by installing a downloaded binary in the $PATH.
How This PR Solves The Issue
Documents how to test a PR by installing a downloaded binary in the $PATH, to be used for example in Linux and MacOS.
Manual Testing Instructions
Automated Testing Overview
Related Issue Link(s)
Release/Deployment Notes