Repository: hashicorp/packer-plugin-sdk
Pull request #282: Fix compatibility with go 1.24 and require go >= 1.23 
Author: login: jooola
Created: 2025-03-17T10:34:35Z | Merged: 2025-03-28T19:45:41Z

- Remove EOL versions of golang from the test matrix.
- Upgrade problematic dependencies causing issues with golang 1.24
- Require supported golang versions (>= 1.23)
- Group requires in the go.mod file (except for the go-cty library)

Related to #279


Diff:
diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml
index 541941d66..a04445bea 100644
--- a/.github/workflows/go-test.yml
+++ b/.github/workflows/go-test.yml
@@ -16,8 +16,8 @@ jobs:
     strategy:
       matrix:
         go-version:
-          - '1.21.x'
-          - '1.22.x'
+          - '1.23.x'
+          - '1.24.x'
     permissions:
       id-token: write
       contents: read
@@ -75,8 +75,8 @@ jobs:
     strategy:
       matrix:
         go-version:
-          - '1.21.x'
-          - '1.22.x'
+          - '1.23.x'
+          - '1.24.x'
     permissions:
       id-token: write
       contents: read
@@ -117,8 +117,8 @@ jobs:
     strategy:
       matrix:
         go-version:
-          - '1.21.x'
-          - '1.22.x'
+          - '1.23.x'
+          - '1.24.x'
     permissions:
       id-token: write
       contents: read
diff --git a/go.mod b/go.mod
index c68fa105a..103165db1 100644
--- a/go.mod
+++ b/go.mod
@@ -60,16 +60,16 @@ require (
 	github.com/stretchr/testify v1.8.4
 	github.com/ugorji/go/codec v1.2.6
 	github.com/ulikunitz/xz v0.5.10 // indirect
-	golang.org/x/crypto v0.31.0
+	golang.org/x/crypto v0.36.0
 	golang.org/x/mobile v0.0.0-20210901025245-1fde1d6c3ca1
-	golang.org/x/mod v0.17.0
-	golang.org/x/net v0.25.0
-	golang.org/x/sync v0.10.0
-	golang.org/x/sys v0.28.0 // indirect
-	golang.org/x/term v0.27.0
-	golang.org/x/text v0.21.0 // indirect
-	golang.org/x/time v0.3.0 // indirect
-	golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d
+	golang.org/x/mod v0.24.0
+	golang.org/x/net v0.37.0
+	golang.org/x/sync v0.12.0
+	golang.org/x/sys v0.31.0 // indirect
+	golang.org/x/term v0.30.0
+	golang.org/x/text v0.23.0 // indirect
+	golang.org/x/time v0.11.0 // indirect
+	golang.org/x/tools v0.31.0
 	google.golang.org/api v0.150.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 )
@@ -126,6 +126,6 @@ require (
 	google.golang.org/grpc v1.59.0 // indirect
 )
 
-go 1.21.0
+go 1.23.0
 
 retract v0.5.0 // v0.5.0 of the SDK was broken because of the replace statement for go-cty
diff --git a/go.sum b/go.sum
index 69675d5d9..5aba8b7a5 100644
--- a/go.sum
+++ b/go.sum
@@ -384,8 +384,8 @@ golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
-golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
+golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
+golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4=
 golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug=
@@ -400,8 +400,8 @@ golang.org/x/mobile v0.0.0-20210901025245-1fde1d6c3ca1 h1:t3ZHqovedSY8DEAUmZA99f
 golang.org/x/mobile v0.0.0-20210901025245-1fde1d6c3ca1/go.mod h1:jFTmtFYCV0MFtXBU+J5V/+5AUeVS0ON/0WkE/KSrl6E=
 golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
-golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
+golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -418,8 +418,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
 golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
 golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
-golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
+golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
+golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY=
 golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0=
@@ -429,8 +429,8 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
-golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
+golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -460,21 +460,21 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
-golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
+golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
-golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
+golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
+golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
-golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
-golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
+golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
+golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0=
+golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -484,8 +484,8 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
 golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
-golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
+golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
+golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=


Reviews:
user: login: lbajolet-hashicorp
body: Hi @jooola,

Thanks for the PR, I left a couple of comments on the version/toolchain bumps, but other than that, this LGTM!

I'll let you address my comments, and we can probably merge this one soon.
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T14:13:52Z
user: login: jooola
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T14:25:37Z
user: login: jooola
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T14:33:20Z
user: login: lbajolet-hashicorp
body: Hey @jooola,

Thanks for the responses and apologies it took me a bit of time to go back to this PR.

I agree with the bump to 1.23.0, but as I mentioned regarding the toolchain directive, I'm not convinced we need it per-se, so I opted to remove it in a commit I pushed to your branch as to speed-up this change being merged.

With that, I'm approving this PR, thanks for the change!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-28T18:56:02Z
user: login: JenGoldstrich
body: LGTM, thank you Lucas and @jooola!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-28T19:06:08Z

Review comments:
diff_hunk: @@ -126,6 +126,8 @@ require (
 	google.golang.org/grpc v1.59.0 // indirect
 )
 
-go 1.21.0
+go 1.23.0
+
+toolchain go1.24.1
path: go.mod
user: login: lbajolet-hashicorp
body: I would suggest removing this toolchain directive, I know that recent versions of Go add this automatically when running `go get` or `go mod tidy`, but I still struggle to understand the rationale behind this addition, especially since there's already the `go` directive to declare a minimum version of Go needed to compile the project.
created_at: 2025-03-19T13:19:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -126,6 +126,8 @@ require (
 	google.golang.org/grpc v1.59.0 // indirect
 )
 
-go 1.21.0
+go 1.23.0
path: go.mod
user: login: lbajolet-hashicorp
body: May I ask why do we bump this to 1.23? Is there a dependency that requires this minimum version?
created_at: 2025-03-19T13:20:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -126,6 +126,8 @@ require (
 	google.golang.org/grpc v1.59.0 // indirect
 )
 
-go 1.21.0
+go 1.23.0
+
+toolchain go1.24.1
path: go.mod
user: login: jooola
body: I think those documents gives a good explanation https://go.dev/blog/toolchain and https://go.dev/doc/toolchain

I would keep the "recommend" toolchain in the go.mod and let users decide whether they want to follow this directive or configure their own `GOTOOLCHAIN`.

That said, I am happy to remove it if needed.
created_at: 2025-03-19T14:25:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -126,6 +126,8 @@ require (
 	google.golang.org/grpc v1.59.0 // indirect
 )
 
-go 1.21.0
+go 1.23.0
path: go.mod
user: login: jooola
body: The bump is needed for the following reasons:
- go version <1.23 are EOL
- the `golang.org/x/...` dependencies requires a go version >= 1.23, for example for the net package, here is the source of the bump https://go.googlesource.com/net/+/5095d0cf1463414ad99ced9d5032eae6175f5ac5 (background https://github.com/golang/go/issues/69095)
created_at: 2025-03-19T14:33:20Z
author_association: CONTRIBUTOR

PR comments:
user: login: jooola
created_at: 2025-03-17T11:23:14Z
body: I have tested those changes in our own project: https://github.com/hetznercloud/packer-plugin-hcloud/pull/262/commits/dcc7f0005b54663efd1d4538780963f1fb30864a

For those who can upgrade to go>=1.24, I think its worth using `go tool` for the packer-sdc tool. 
author_association: CONTRIBUTOR
user: login: jooola
created_at: 2025-03-19T11:53:09Z
body: @lbajolet-hashicorp May I have your attention for this fix :pray: ?
author_association: CONTRIBUTOR
user: login: tenthirtyam
created_at: 2025-03-28T21:46:34Z
body: Just an FYI that this can be simplified with a reusable workflow to remove repetition.

For example, with `go-test.yml` as:

```yaml
name: go-test

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

env:
  TEST_RESULTS_PATH: /tmp/test-results

permissions:
  contents: read

jobs:
  linux-tests:
    uses: ./.github/workflows/go-test-template.yml
    with:
      os: ubuntu-latest

  windows-tests:
    uses: ./.github/workflows/go-test-template.yml
    with:
      os: windows-latest

  darwin-tests:
    uses: ./.github/workflows/go-test-template.yml
    with:
      os: macos-latest
```

And then the `./.github/workflows/go-test-template.yml` as:

```yaml
name: Go Test Template

on:
  workflow_call:
    inputs:
      os:
        required: true
        type: string

env:
  TEST_RESULTS_PATH: /tmp/test-results

permissions:
  id-token: write
  contents: read

jobs:
  go-test:
    runs-on: ${{ inputs.os }}
    strategy:
      matrix:
        go-version:
          - '1.23.x'
          - '1.24.x'
    steps:
      - name: Run git config #Windows-only
        if: runner.os == 'Windows'
        run: git config --global core.autocrlf false

      - name: Setup Go
        uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
        with:
          go-version: ${{ matrix.go-version }}

      - name: Checkout code
        uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4

      - name: Check that go.mod does not contain a replace
        run: |
          if grep -Eq "^\s*replace" <go.mod; then
            echo "go.mod contains a replace but should not." >&2
            false
          fi

      - name: Create test directory
        run: |
          mkdir -p ${{ env.TEST_RESULTS_PATH }}/packer-plugin-sdk

      - name: Install buf
        if: runner.os == 'Linux'
        uses: bufbuild/buf-setup-action@v1.33.0

      - name: Run gofmt
        if: runner.os == 'Linux'
        run: |
            make fmt-check

      - name: Run Go Generate Check
        if: runner.os == 'Linux'
        run: |
            make generate-check

      - name: Install gotestsum
        shell: bash
        run: go install gotest.tools/gotestsum@v1.8.2

      - name: Fix gocty
        run: |
          make install-gen-deps
          packer-sdc fix .
          go mod tidy

      - name: Run Go tests
        shell: bash
        run: |
          PACKAGE_NAMES="$(go list ./...)"
          echo "Running $(echo "$PACKAGE_NAMES" | wc -w) packages"
          echo "$PACKAGE_NAMES"
          echo "$PACKAGE_NAMES" | xargs -I {} gotestsum --format=short-verbose --junitfile "$TEST_RESULTS_PATH"/packer-plugin-sdk/gotestsum-report.xml -- -count 1 -p 2 {};
```
author_association: NONE
user: login: jooola
created_at: 2025-03-31T10:27:40Z
body: > Thanks for the responses and apologies it took me a bit of time to go back to this PR.

No rush, thanks for looking at it :)

> I agree with the bump to 1.23.0, but as I mentioned regarding the toolchain directive, I'm not convinced we need it per-se, so I opted to remove it in a commit I pushed to your branch as to speed-up this change being merged.

Fine by me!


Are you folks planning to cut a release with this, or is are there not enough changes yet?


author_association: CONTRIBUTOR
user: login: lbajolet-hashicorp
created_at: 2025-03-31T13:24:11Z
body: Hey @jooola,

Yes we do plan to cut a SDK release soon, we're working over some vulnerability reports for now, so I just want to make sure we address them in the SDK before that, but the plan is to cut a release this week, as early as possible.

Thanks!
author_association: CONTRIBUTOR