From 8779ef6cc714c6acb72d3f02739bb6e9e0f11c11 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Fri, 27 Dec 2024 18:53:42 +0100 Subject: [PATCH 1/2] do not ignore toolset files --- .gitignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitignore b/.gitignore index c042b23..9c1655b 100644 --- a/.gitignore +++ b/.gitignore @@ -51,8 +51,6 @@ Temporary Items ### Other .idea/ -.toolset.json -.toolset.lock.json bin/ coverage.txt From 6fb21dd99470cb076af74895c361101d2f692e72 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Fri, 27 Dec 2024 19:07:35 +0100 Subject: [PATCH 2/2] add latest version workaround --- internal/workdir/runtime-go/private.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/workdir/runtime-go/private.go b/internal/workdir/runtime-go/private.go index 9f5b844..00459c1 100644 --- a/internal/workdir/runtime-go/private.go +++ b/internal/workdir/runtime-go/private.go @@ -27,6 +27,10 @@ type moduleInfo struct { IsPrivate bool // depends on `go env GOPRIVATE` } +func (mi moduleInfo) IsLatest() bool { + return mi.Version == "latest" +} + // parse will parse source string and try to extract all details about mentioned golang program. func parse(ctx context.Context, goBin, str string) (*moduleInfo, error) { var canonical, mod, version, program string @@ -135,7 +139,11 @@ func fetchLatest(ctx context.Context, goBin, link string) (*moduleInfo, error) { return nil, fmt.Errorf("unable to decode module: %w", err) } - mod2, err := parse(ctx, goBin, mod.Module+at+mod.Version) + resVersion := mod.Version + if mod.IsLatest() { + resVersion = fMod.Version + } + mod2, err := parse(ctx, goBin, mod.Module+at+resVersion) if err != nil { return nil, fmt.Errorf("parse fetched module: %w", err) }