{"id":17273563,"url":"https://github.com/markmandel/appengine-golang-gopath","last_synced_at":"2025-04-14T08:43:40.534Z","repository":{"id":141080868,"uuid":"38909211","full_name":"markmandel/appengine-golang-gopath","owner":"markmandel","description":"Examples showing options for managing GOPATHs when developing with a Go App Engine projects.","archived":false,"fork":false,"pushed_at":"2015-07-11T01:38:27.000Z","size":108,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T06:32:31.772Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markmandel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-11T01:37:17.000Z","updated_at":"2018-12-02T10:43:51.000Z","dependencies_parsed_at":"2023-03-13T10:39:19.926Z","dependency_job_id":null,"html_url":"https://github.com/markmandel/appengine-golang-gopath","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmandel%2Fappengine-golang-gopath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmandel%2Fappengine-golang-gopath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmandel%2Fappengine-golang-gopath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markmandel%2Fappengine-golang-gopath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markmandel","download_url":"https://codeload.github.com/markmandel/appengine-golang-gopath/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248850140,"owners_count":21171704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T08:51:36.833Z","updated_at":"2025-04-14T08:43:40.511Z","avatar_url":"https://github.com/markmandel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Examples of Go and App Engine Structure\n========================================\n\nI wrote this repository, because every time I went to start a new Go project on Google App Engine\nI couldn't remember an optimal way to structure my application and how to manage my GOPATH in relation\nto my application code.\n\nThis repository aims to show several options for managing GOPATHs when working with a Go App Engine projects.\n\nIt assumes that you already have the [Google Cloud Platform SDK](https://cloud.google.com/sdk/) installed.\n\nIf you have a different way that you feel is appropriate, pull requests are more than welcome.\n\nIt should be noted that while this repository makes relatively heavy use of [Make](http://www.gnu.org/software/make/), you only need to be able to \nrun Make commands, not understand the files (but it is a useful thing to know!)\n\nFor a full description of what this repository is showing read the **[full blog post](http://www.compoundtheory.com/configuring-your-gopath-with-go-and-google-app-engine)**.\n\nExcept for the GB tasks, the GOPATH is controlled within the Makefiles that are in this project. \nThis means you can run any of the Make tasks in this project to test them out, \nwithout having to change a GOPATH you already have set.\n\n## Steps for Exploring This Repository\n\n### Setup\n\n1. Clone the repository: `git clone https://github.com/markmandel/appengine-golang-gopath.git`\n1. `cd appengine-golang-gopath`\n1. Install the go tooling we use for this: `make install-tools` \n\n### The Basic GOPATH Module\n\n1. Enter the directory: `cd src/modules/basic`\n1. Review the `routes.go` file to see what is being executed: `cat routes.go` \n1. Have a look at the current GOPATH: `make debug-env`\n1. Install all dependencies `make deps`\n1. Have a look where those dependencies end up in the directory structure: `(cd ../.. \u0026\u0026 pwd \u0026\u0026 ls)`\n1. Run the module: `make serve`\n1. Browse to http://localhost:8080 to see the results.\n1. (Optional) - Deploy the module: `make deploy`\n1. Have a look at the local `Makefile` and `Makefile.goapp` to see how the steps worked: `cat Makefile` and `cat ../../../Makefile.goapp`\n\n### The Vendored GOPATH Module\n\n1. Enter the directory: `cd ../vendored`\n1. Clean the previous dependencies: `make clean`\n1. Review the `routes.go` file to see what is being executed: `cat routes.go` \n1. Have a look at the current GOPATH: `make debug-env`. Notice the two part GOPATH.\n1. Install all dependencies `make deps`\n1. Have a look where those dependencies end up in the directory structure: `(cd ../../../vendor/src \u0026\u0026 pwd \u0026\u0026 ls)`\n1. Run the module: `make serve`\n1. Browse to http://localhost:8080 to see the results.\n1. (Optional) - Deploy the module: `make deploy`\n1. Have a look at the `Makefile.goapp` to see how the steps worked: `cat ../../../Makefile.goapp`\n\n### The GB Module\n\n1. Enter the directory: `cd ../gb`\n1. Clean the previous dependencies: `make clean`\n1. Review the `routes.go` file to see what is being executed: `cat routes.go` \n1. Have a look at the current GOPATH: `make debug-env`. Notice there is no GOPATH. Crazy.\n1. Install all dependencies `make deps`\n1. Have a look where those dependencies end up in the directory structure: `(cd ../../../vendor/src \u0026\u0026 pwd \u0026\u0026 ls)` \n1. Have a look at the `manifest` file: `cat ../../../vendor/manifest`.\n1. Run the module: `make serve`\n1. Browse to http://localhost:8080 to see the results.\n1. (Optional) - Deploy the module: `make deploy`\n1. Have a look at the local `Makefile` and `Makefile.gb` to see how the steps worked: `cat Makefile` and `cat ../../../Makefile.gb` \n\n## Licence\nApache 2.0\n\nThis is not an official Google product.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmandel%2Fappengine-golang-gopath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkmandel%2Fappengine-golang-gopath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmandel%2Fappengine-golang-gopath/lists"}