Improve Go project cloning support
This issue isn't really Go-specific, but it's a good example of the need for smarter cloning and creation functionality. Go, in particular, is difficult for developers that expect to be able to clone a project to an arbitrary place and run it from there. Cloudflare identified this issue and created some tools to work around it, but Builder can help (in a totally different way way) by helping users respect Go's conventions.
Developing a Go-based application relies on using a specific on-disk project layout or configuring Go to expect otherwise. I would like if Builder's "Clone Project" tool could detect the type of the project being cloned and offer to place it according to the conventions of the framework or language. I would suggest supporting and observing the same rules for new projects being created from Builder, as well.
Reproducing the Issue
Initial Setup: Open Builder, choose "Clone Project," put in a GitHub (or other hosted git service) Repository URL for a Go project, and click "Clone."
Today's Behavior: Builder clones the repository to a subdirectory of the Project Destination, which defaults to ~/Projects
. The created project isn't usable without reconfiguring Go or moving the cloned data. This is a bad experience for someone who may clone a project using Builder as a first-time contributor or someone new to Go.
Expected/Preferred Behavior: Builder connects to the repository, clones the data, and analyzes the repository to see if there's a match against language/framework rules. Builder then suggests a location for the project, allowing the user to accept the conventional location or specify an alternative. If no rules match, Builder defaults to something similar to today's behavior. For Go, Builder offers the suggestion to clone to the same place as go get -d $URL
.