From bac8315822cfcbdcba7c5628c03d3ab2401e1149 Mon Sep 17 00:00:00 2001 From: Kyle Pitzen Date: Tue, 22 Nov 2022 09:35:34 -0500 Subject: [PATCH 1/2] Bumps grpcio to version 1.50 Currently, pinning to a version of grpcio <1.50 can cause build errors on newer versions of python+pip - the existing setup.py install method of building libararies is being deprecated and wheels are not being backported for older versions of grpcio. Since this change is a no-op as far as our python proto clients are concerned, it feels safe to bump to a version that will be supported going forward --- .../pending/20221122--sdk-python--bumps-grpcio-to-1-50.yaml | 4 ++++ proto/.checksum.txt | 2 +- proto/build-container/Dockerfile | 4 ++-- sdk/python/lib/setup.py | 2 +- sdk/python/requirements.txt | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 changelog/pending/20221122--sdk-python--bumps-grpcio-to-1-50.yaml diff --git a/changelog/pending/20221122--sdk-python--bumps-grpcio-to-1-50.yaml b/changelog/pending/20221122--sdk-python--bumps-grpcio-to-1-50.yaml new file mode 100644 index 000000000000..f72a61383654 --- /dev/null +++ b/changelog/pending/20221122--sdk-python--bumps-grpcio-to-1-50.yaml @@ -0,0 +1,4 @@ +changes: +- type: chore + scope: sdk/python + description: Bumps grpcio to 1.50 diff --git a/proto/.checksum.txt b/proto/.checksum.txt index 781af4a284bd..eef406394b55 100644 --- a/proto/.checksum.txt +++ b/proto/.checksum.txt @@ -1,4 +1,4 @@ -283055245 2069 proto/build-container/Dockerfile +3850377987 2069 proto/build-container/Dockerfile 3003861496 625 proto/build-container/scripts/install-go.sh 853251015 873 proto/build-container/scripts/install-node.sh 2003827277 549 proto/build-container/scripts/install-packages.sh diff --git a/proto/build-container/Dockerfile b/proto/build-container/Dockerfile index 512648c03f3d..80fcc66de82d 100644 --- a/proto/build-container/Dockerfile +++ b/proto/build-container/Dockerfile @@ -54,6 +54,6 @@ RUN PROTOC_VERSION=3.20.1 \ PROTOC_GEN_GO_VERSION=1.5.2 \ NODEJS_GRPC_VERSION=1.24.2 \ NODEJS_GRPC_TOOLS_VERSION=1.8.1 \ - PYTHON_GRPCIO_VERSION=1.49.1 \ - PYTHON_GRPCIO_TOOLS_VERSION=1.49.1 \ + PYTHON_GRPCIO_VERSION=1.50.0 \ + PYTHON_GRPCIO_TOOLS_VERSION=1.50.0 \ /build-scripts/install-protobuf-tools.sh \ No newline at end of file diff --git a/sdk/python/lib/setup.py b/sdk/python/lib/setup.py index b6addde69127..1eefaa8dc752 100644 --- a/sdk/python/lib/setup.py +++ b/sdk/python/lib/setup.py @@ -45,7 +45,7 @@ def readme(): # Keep this list in sync with Pipfile install_requires=[ 'protobuf~=4.21', - 'grpcio==1.47', + 'grpcio==1.50', 'dill~=0.3', 'six~=1.12', 'semver~=2.8', diff --git a/sdk/python/requirements.txt b/sdk/python/requirements.txt index 4f0f7a6452a9..220e281cddfe 100644 --- a/sdk/python/requirements.txt +++ b/sdk/python/requirements.txt @@ -1,7 +1,7 @@ # Packages needed by the library. # Keep this list in sync with setup.py. protobuf~=4.21 -grpcio==1.47 +grpcio==1.50 dill~=0.3 six~=1.12 semver~=2.8 From 724fae5c4888e7fd7d98605f3266fa2f0257d636 Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Tue, 22 Nov 2022 12:44:19 -0800 Subject: [PATCH 2/2] Mark external modules as forign Previously, the names of forign types in the top level were omitted, since the top level module is always "". Apply the same fix for enum types. --- pkg/codegen/go/gen.go | 11 +++++++---- pkg/codegen/go/gen_program_expressions.go | 6 ++++-- pkg/codegen/testing/test/program_driver.go | 2 -- .../testdata/aws-webserver-pp/go/aws-webserver.go | 6 +++--- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/pkg/codegen/go/gen.go b/pkg/codegen/go/gen.go index 029f2ef7e03f..2b230857575e 100644 --- a/pkg/codegen/go/gen.go +++ b/pkg/codegen/go/gen.go @@ -40,6 +40,11 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/common/util/contract" ) +// A signifier that the module is external, and will never match. +// +// This token is always an invalid module since ':' is not allowed within modules. +const ExternalModuleSig = ":always-external:" + type typeDetails struct { // Note: if any of {ptr,array,map}Input are set, input and the corresponding output field must also be set. The // mark* functions ensure that these invariants hold. @@ -242,10 +247,7 @@ func (pkg *pkgContext) resolveEnumType(t *schema.EnumType) string { } extPkgCtx, _ := pkg.contextForExternalReference(t) - enumType := extPkgCtx.tokenToEnum(t.Token) - if !strings.Contains(enumType, ".") { - enumType = fmt.Sprintf("%s.%s", extPkgCtx.pkg.Name, enumType) - } + enumType := extPkgCtx.typeString(t) return enumType } @@ -730,6 +732,7 @@ func (pkg *pkgContext) contextForExternalReference(t schema.Type) (*pkgContext, extPkgCtx.pkgImportAliases = pkgImportAliases extPkgCtx.externalPackages = pkg.externalPackages mod := tokenToPackage(extPkg, goInfo.ModuleToPackage, token) + extPkgCtx.mod = ExternalModuleSig return extPkgCtx, *maps[mod].detailsForType(t) } diff --git a/pkg/codegen/go/gen_program_expressions.go b/pkg/codegen/go/gen_program_expressions.go index 7214004b5d9e..b651afb06d22 100644 --- a/pkg/codegen/go/gen_program_expressions.go +++ b/pkg/codegen/go/gen_program_expressions.go @@ -168,8 +168,10 @@ func (g *generator) genSafeEnum(w io.Writer, to *model.EnumType) func(member *sc } memberTag, err := makeSafeEnumName(memberTag, enumName) contract.AssertNoErrorf(err, "Enum is invalid") - namespace := tokenToModule(to.Token) - g.Fgenf(w, "%s.%s", namespace, memberTag) + pkg, mod, _, _ := pcl.DecomposeToken(to.Token, to.SyntaxNode().Range()) + mod = g.getModOrAlias(pkg, mod, mod) + + g.Fgenf(w, "%s.%s", mod, memberTag) } } diff --git a/pkg/codegen/testing/test/program_driver.go b/pkg/codegen/testing/test/program_driver.go index 23645bc96ed4..7e086de4f576 100644 --- a/pkg/codegen/testing/test/program_driver.go +++ b/pkg/codegen/testing/test/program_driver.go @@ -113,8 +113,6 @@ var PulumiPulumiProgramTests = []ProgramTest{ { Directory: "aws-webserver", Description: "AWS Webserver", - SkipCompile: codegen.NewStringSet("go"), - // Blocked on go: TODO[pulumi/pulumi#8070] }, { Directory: "simple-range", diff --git a/pkg/codegen/testing/test/testdata/aws-webserver-pp/go/aws-webserver.go b/pkg/codegen/testing/test/testdata/aws-webserver-pp/go/aws-webserver.go index 1e27a98c5987..863264cfe555 100644 --- a/pkg/codegen/testing/test/testdata/aws-webserver-pp/go/aws-webserver.go +++ b/pkg/codegen/testing/test/testdata/aws-webserver-pp/go/aws-webserver.go @@ -25,9 +25,9 @@ func main() { if err != nil { return err } - ami, err := aws.GetAmi(ctx, &GetAmiArgs{ - Filters: []GetAmiFilter{ - GetAmiFilter{ + ami, err := aws.GetAmi(ctx, &aws.GetAmiArgs{ + Filters: []aws.GetAmiFilter{ + aws.GetAmiFilter{ Name: "name", Values: []string{ "amzn-ami-hvm-*-x86_64-ebs",