diff --git a/.github/workflows/ci-v2.yaml b/.github/workflows/ci-v2.yaml new file mode 100644 index 00000000..0755476d --- /dev/null +++ b/.github/workflows/ci-v2.yaml @@ -0,0 +1,94 @@ +name: ci-v2 + +on: + push: + branches: [ master, qa ] + pull_request: + branches: [ master, qa ] + +jobs: + test-gomod-v2: + runs-on: ubuntu-latest + strategy: + matrix: + go-version: [ '1.11.x', '1.12.x', '1.13.x', '1.14.x', '1.15.x'] + env: + working-directory: ./v2 + + steps: + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + - name: Checkout + uses: actions/checkout@v2 + - name: Cache go modules + uses: actions/cache@v2 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.go-version }}-go- + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@master + - name: Install + working-directory: ${{env.working-directory}} + env: + GO111MODULE: on + run: | + go get . + gcloud components install app-engine-python app-engine-go cloud-datastore-emulator --quiet + - name: Test gomod v2 + env: + GO111MODULE: on + working-directory: ${{env.working-directory}} + run: | + export APPENGINE_DEV_APPSERVER=$(which dev_appserver.py) + go test -v -cover -race google.golang.org/appengine/v2/... + # TestAPICallAllocations doesn't run under race detector. + go test -v -cover google.golang.org/appengine/v2/internal/... -run TestAPICallAllocations + + test-gopath-v2: + runs-on: ubuntu-latest + strategy: + matrix: + # GOPATH is deprecated in go 1.13. + go-version: [ '1.11.x', '1.12.x'] + env: + working-directory: ./v2 + + steps: + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + - name: Checkout + uses: actions/checkout@v2 + - name: Cache go modules + uses: actions/cache@v2 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.go-version }}-go- + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@master + - name: Install + working-directory: ${{env.working-directory}} + env: + GO111MODULE: off + run: | + go get -u -v $(go list -f '{{join .Imports "\n"}}{{"\n"}}{{join .TestImports "\n"}}' ./... | sort | uniq | grep -v appengine) + go get -u google.golang.org/appengine/v2 + gcloud components install app-engine-python app-engine-go cloud-datastore-emulator --quiet + - name: Test gopath v2 + working-directory: ${{env.working-directory}} + run: | + export APPENGINE_DEV_APPSERVER=$(which dev_appserver.py) + go test -v -cover -race google.golang.org/appengine/v2/... + # TestAPICallAllocations doesn't run under race detector. + go test -v -cover google.golang.org/appengine/v2/internal/... -run TestAPICallAllocations diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55d34f7c..296eafe6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,11 +12,14 @@ jobs: strategy: matrix: go-version: [ '1.11.x', '1.12.x', '1.13.x', '1.14.x', '1.15.x'] + steps: - name: Set up Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} + - name: Checkout + uses: actions/checkout@v2 - name: Cache go modules uses: actions/cache@v2 with: @@ -26,22 +29,30 @@ jobs: key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-${{ matrix.go-version }}-go- - - name: Checkout - uses: actions/checkout@v2 + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@master - name: Install env: GO111MODULE: on run: | go get . + gcloud components install app-engine-python app-engine-go cloud-datastore-emulator --quiet - name: Test gomod + env: + GO111MODULE: on run: | - go test -v -race google.golang.org/appengine/... + export APPENGINE_DEV_APPSERVER=$(which dev_appserver.py) + go test -v -cover -race google.golang.org/appengine/... + # TestAPICallAllocations doesn't run under race detector. + go test -v -cover google.golang.org/appengine/internal/... -run TestAPICallAllocations + test-gopath: runs-on: ubuntu-latest strategy: matrix: # GOPATH is deprecated in go 1.13. go-version: [ '1.11.x', '1.12.x'] + steps: - name: Set up Go uses: actions/setup-go@v2 @@ -49,11 +60,27 @@ jobs: go-version: ${{ matrix.go-version }} - name: Checkout uses: actions/checkout@v2 + - name: Cache go modules + uses: actions/cache@v2 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.go-version }}-go- + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@master - name: Install env: GO111MODULE: off run: | go get -u -v $(go list -f '{{join .Imports "\n"}}{{"\n"}}{{join .TestImports "\n"}}' ./... | sort | uniq | grep -v appengine) + go get -u google.golang.org/appengine + gcloud components install app-engine-python app-engine-go cloud-datastore-emulator --quiet - name: Test gopath run: | - go test -v -race google.golang.org/appengine/... + export APPENGINE_DEV_APPSERVER=$(which dev_appserver.py) + go test -v -cover -race google.golang.org/appengine/... + # TestAPICallAllocations doesn't run under race detector. + go test -v -cover google.golang.org/appengine/internal/... -run TestAPICallAllocations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ffc29852..28969361 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,14 +19,12 @@ ## Running system tests -Download and install the [Go App Engine SDK](https://cloud.google.com/appengine/docs/go/download). Make sure the `go_appengine` dir is in your `PATH`. - Set the `APPENGINE_DEV_APPSERVER` environment variable to `/path/to/go_appengine/dev_appserver.py`. -Run tests with `goapp test`: +Run tests with `go test`: ``` -goapp test -v google.golang.org/appengine/... +go test -v google.golang.org/appengine/... ``` ## Contributor License Agreements diff --git a/v2/CONTRIBUTING.md b/v2/CONTRIBUTING.md index ffc29852..6c9f13b6 100644 --- a/v2/CONTRIBUTING.md +++ b/v2/CONTRIBUTING.md @@ -19,14 +19,12 @@ ## Running system tests -Download and install the [Go App Engine SDK](https://cloud.google.com/appengine/docs/go/download). Make sure the `go_appengine` dir is in your `PATH`. - Set the `APPENGINE_DEV_APPSERVER` environment variable to `/path/to/go_appengine/dev_appserver.py`. -Run tests with `goapp test`: +Run tests with `go test`: ``` -goapp test -v google.golang.org/appengine/... +go test -v google.golang.org/appengine/v2/... ``` ## Contributor License Agreements diff --git a/v2/cmd/aefix/ae.go b/v2/cmd/aefix/ae.go index 24ed8e72..6883b88f 100644 --- a/v2/cmd/aefix/ae.go +++ b/v2/cmd/aefix/ae.go @@ -6,7 +6,6 @@ package main import ( "go/ast" - "path" "strconv" "strings" ) @@ -15,7 +14,6 @@ const ( ctxPackage = "golang.org/x/net/context" newPackageBase = "google.golang.org/" - stutterPackage = false ) func init() { @@ -38,10 +36,7 @@ var logMethod = map[string]bool{ // mapPackage turns "appengine" into "google.golang.org/appengine/v2", etc. func mapPackage(s string) string { - if stutterPackage { - s += "/" + path.Base(s) - } - return newPackageBase + s + return newPackageBase + strings.Replace(s, "appengine", "appengine/v2", 1) } func aeFn(f *ast.File) bool { diff --git a/v2/cmd/aefix/fix.go b/v2/cmd/aefix/fix.go index a100be79..23d073f9 100644 --- a/v2/cmd/aefix/fix.go +++ b/v2/cmd/aefix/fix.go @@ -718,6 +718,9 @@ func usesImport(f *ast.File, path string) (used bool) { case "": // If the package name is not explicitly specified, // make an educated guess. This is not guaranteed to be correct. + if strings.HasSuffix(path, "/v2") { + path = strings.TrimRight(path, "/v2") + } lastSlash := strings.LastIndex(path, "/") if lastSlash == -1 { name = path