From 678ca7a51ccba3cb35a0500fcaf5847cef57d81d Mon Sep 17 00:00:00 2001 From: Eric Arellano Date: Tue, 14 Dec 2021 10:19:36 -0700 Subject: [PATCH] Upgrade to Pants 2.9 and demonstrate embedding and `testdata` --- cmd/greeter_en/BUILD | 2 ++ cmd/greeter_es/BUILD | 2 ++ pants.toml | 2 +- pkg/embed_example/BUILD | 7 +++++++ pkg/embed_example/hello.txt | 1 + pkg/embed_example/lib.go | 9 +++++++++ pkg/embed_example/lib_test.go | 23 +++++++++++++++++++++++ pkg/embed_example/testdata/f.txt | 1 + pkg/greeter/BUILD | 4 ++++ pkg/uuid/BUILD | 4 ++++ 10 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 pkg/embed_example/BUILD create mode 100644 pkg/embed_example/hello.txt create mode 100644 pkg/embed_example/lib.go create mode 100644 pkg/embed_example/lib_test.go create mode 100644 pkg/embed_example/testdata/f.txt create mode 100644 pkg/greeter/BUILD create mode 100644 pkg/uuid/BUILD diff --git a/cmd/greeter_en/BUILD b/cmd/greeter_en/BUILD index 290c2fa..6856ea7 100644 --- a/cmd/greeter_en/BUILD +++ b/cmd/greeter_en/BUILD @@ -1,6 +1,8 @@ # Copyright 2021 Pants project contributors. # Licensed under the Apache License, Version 2.0 (see LICENSE). +go_package() + # This target allows us to use `./pants run` and `./pants package` on this `main` Go package. # # You can optionally set the field `output_path="greeter_en"`, for example, for the binary's name diff --git a/cmd/greeter_es/BUILD b/cmd/greeter_es/BUILD index 3eb2704..41f8a70 100644 --- a/cmd/greeter_es/BUILD +++ b/cmd/greeter_es/BUILD @@ -1,6 +1,8 @@ # Copyright 2021 Pants project contributors. # Licensed under the Apache License, Version 2.0 (see LICENSE). +go_package() + # This target allows us to use `./pants run` and `./pants package` on this `main` Go package. # # You can optionally set the field `output_path="greeter_es"`, for example, for the binary's name diff --git a/pants.toml b/pants.toml index 0e0768c..7f19855 100644 --- a/pants.toml +++ b/pants.toml @@ -2,7 +2,7 @@ # Licensed under the Apache License, Version 2.0 (see LICENSE). [GLOBAL] -pants_version = "2.8.0" +pants_version = "2.9.0.dev3" backend_packages = ["pants.backend.experimental.go"] [anonymous-telemetry] diff --git a/pkg/embed_example/BUILD b/pkg/embed_example/BUILD new file mode 100644 index 0000000..44149b1 --- /dev/null +++ b/pkg/embed_example/BUILD @@ -0,0 +1,7 @@ +# Copyright 2021 Pants project contributors. +# Licensed under the Apache License, Version 2.0 (see LICENSE). + +go_package(dependencies=[":embeds", ":testdata"]) + +resources(name="embeds", sources=["hello.txt"]) +files(name="testdata", sources=["testdata/*"]) diff --git a/pkg/embed_example/hello.txt b/pkg/embed_example/hello.txt new file mode 100644 index 0000000..3154f74 --- /dev/null +++ b/pkg/embed_example/hello.txt @@ -0,0 +1 @@ +I'm an embedded resource! diff --git a/pkg/embed_example/lib.go b/pkg/embed_example/lib.go new file mode 100644 index 0000000..7621475 --- /dev/null +++ b/pkg/embed_example/lib.go @@ -0,0 +1,9 @@ +// Copyright 2021 Pants project contributors. +// Licensed under the Apache License, Version 2.0 (see LICENSE). + +package embed_example + +// TODO: enable after fixing Pants when lib code has embeds but tests don't. +// import _ "embed" +// //go:embed hello.txt +// var embeddedHello string diff --git a/pkg/embed_example/lib_test.go b/pkg/embed_example/lib_test.go new file mode 100644 index 0000000..3e26ad5 --- /dev/null +++ b/pkg/embed_example/lib_test.go @@ -0,0 +1,23 @@ +// Copyright 2021 Pants project contributors. +// Licensed under the Apache License, Version 2.0 (see LICENSE). + +package embed_example + +import ( + "os" + "testing" +) + +// TODO: enable after fixing Pants when lib code has embeds but tests don't. +// func TestResourceEmbedding(t *testing.T) { +// if embeddedHello != "I'm an embedded resource!" { +// t.Fatalf("message mismatch: want=%s; got=%s", "I'm an embedded resource!", embeddedHello) +// } +// } + +func TestTestDataFolder(t *testing.T) { + _, err := os.Stat("testdata/f.txt") + if err != nil { + t.Fatalf("Could not stat pkg/embed_example/testdata/f.txt: %v", err) + } +} diff --git a/pkg/embed_example/testdata/f.txt b/pkg/embed_example/testdata/f.txt new file mode 100644 index 0000000..3d74d28 --- /dev/null +++ b/pkg/embed_example/testdata/f.txt @@ -0,0 +1 @@ +Some test data! \ No newline at end of file diff --git a/pkg/greeter/BUILD b/pkg/greeter/BUILD new file mode 100644 index 0000000..347583f --- /dev/null +++ b/pkg/greeter/BUILD @@ -0,0 +1,4 @@ +# Copyright 2021 Pants project contributors. +# Licensed under the Apache License, Version 2.0 (see LICENSE). + +go_package() diff --git a/pkg/uuid/BUILD b/pkg/uuid/BUILD new file mode 100644 index 0000000..347583f --- /dev/null +++ b/pkg/uuid/BUILD @@ -0,0 +1,4 @@ +# Copyright 2021 Pants project contributors. +# Licensed under the Apache License, Version 2.0 (see LICENSE). + +go_package()