From 34637ebe9da8c9721adb8a65f4778df26a8d6ceb Mon Sep 17 00:00:00 2001 From: BartekDymowski Date: Wed, 11 May 2022 11:21:24 +0200 Subject: [PATCH 1/3] Bugfix: return error when go.mod can't be loaded --- pkg/api/api.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/api/api.go b/pkg/api/api.go index 55b10ba..b782e22 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -303,9 +303,11 @@ func (api *api) mod(w http.ResponseWriter, r *http.Request, module, version stri } } } + w.Write([]byte(fmt.Sprintf("module %s\n", module))) + return } } - w.Write([]byte(fmt.Sprintf("module %s\n", module))) + http.Error(w, err.Error(), http.StatusBadRequest) } func (api *api) zip(w http.ResponseWriter, r *http.Request, module, version string) { From 4e2759e69f6a4f633a8ad4bdb8c333e1de0dcc84 Mon Sep 17 00:00:00 2001 From: Marcin Bilski Date: Wed, 19 Jan 2022 12:16:56 +0100 Subject: [PATCH 2/3] Update cache after tagging, so the cache reflects the updated version of the source code. --- pkg/api/api.go | 17 +++++++++++++++++ pkg/vcs/tags.go | 6 +++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pkg/api/api.go b/pkg/api/api.go index b782e22..b7826cb 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -226,6 +226,12 @@ func (api *api) module(ctx context.Context, module string, version vcs.Version) api.semc <- struct{}{} defer func() { <-api.semc }() + return api.store(ctx, module, version) +} + +func (api *api) store(ctx context.Context, module string, version vcs.Version) ([]byte, time.Time, error) { + api.log("api.store", "module", module, "version", version.String()) + timestamp, err := api.vcs(ctx, module).Timestamp(ctx, version) if err != nil { return nil, time.Time{}, err @@ -355,10 +361,21 @@ func (api *api) tag(w http.ResponseWriter, r *http.Request, module, version stri return } + // wait for semaphore + api.semc <- struct{}{} + defer func() { <-api.semc }() + err = taggable.Tag(r.Context(), vcs.Version(version), req.Short) if err != nil { api.log("api.tag", "module", module, "version", version, "error", err) http.Error(w, err.Error(), http.StatusBadRequest) return } + + _, _, err = api.store(r.Context(), module, vcs.Version(version)) + if err != nil { + api.log("api.tag", "module", module, "version", version, "error", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } } diff --git a/pkg/vcs/tags.go b/pkg/vcs/tags.go index 899b172..8923049 100644 --- a/pkg/vcs/tags.go +++ b/pkg/vcs/tags.go @@ -82,6 +82,7 @@ func (v *taggableVCS) Tag(ctx context.Context, semVer Version, short string) err if versionExists(remoteVersions, semVer) { return fmt.Errorf("remote version %s already exists for module %s", semVer, v.module) } + v.wrapped.log("taggableVCS.Tag", "version", semVer, "short", short) return v.storage.Tag(v.module, semVer, short) } @@ -92,7 +93,10 @@ func (v *taggableVCS) List(ctx context.Context) ([]Version, error) { } tags := v.storage.tags(v.module) // Remote versions win. - return appendEphemeralVersion(remoteVersions, tags...), nil + allVersions := appendEphemeralVersion(remoteVersions, tags...) + // TODO(bilus): BUG - tag version 1.0.0 and then 0.1.0 - 0.1.0 is the "latest". + // sort.Slice(allVersions, func(i, j) bool { return allVersions[i].Before(allVersions[j]) }) + return allVersions, nil } func appendEphemeralVersion(versions []Version, tags ...ephemeralTag) []Version { From eca3d1768e663d5f4634c4000942c967b1109f23 Mon Sep 17 00:00:00 2001 From: Marcin Bilski Date: Wed, 19 Jan 2022 12:17:35 +0100 Subject: [PATCH 3/3] Generate universal binaries. --- .goreleaser.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index a8ae6c1..05cdbbe 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -29,6 +29,8 @@ checksum: name_template: 'checksums.txt' snapshot: name_template: "{{ incpatch .Version }}-next" +universal_binaries: + - name_template: "{{.ProjectName}}_MacOS_{{.Version}}" changelog: sort: asc filters: