[Libguestfs] [PATCH libnbd] golang: make-dist.sh: Use strict ISO 8601 format

Nir Soffer nsoffer at redhat.com
Fri Dec 3 16:04:53 UTC 2021


On Fri, Dec 3, 2021 at 10:38 AM Richard W.M. Jones <rjones at redhat.com> wrote:
>
> On Fri, Dec 03, 2021 at 12:18:27AM +0200, Nir Soffer wrote:
> > Go fail to parse the short date format (2021-11-30) from the @latest and
> > .info file. Replace with %cI - strict ISO 8601 format.
> >
> > Signed-off-by: Nir Soffer <nsoffer at redhat.com>
> > ---
> >  golang/make-dist.sh | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/golang/make-dist.sh b/golang/make-dist.sh
> > index 86785e5d..c658f928 100755
> > --- a/golang/make-dist.sh
> > +++ b/golang/make-dist.sh
> > @@ -94,38 +94,40 @@ rm -rf libguestfs.org
> >  #        └── v1.11.4.zip
> >  #
> >  # We create @latest and @v/*{.info,mod,zip} here.
> >  #
> >  # The "@v/list" file must be created on the web server after uploading
> >  # a new release:
> >  #
> >  #     $ cd libguestfs.org/libnbd/@v
> >  #     $ ls -1 v*.info | awk -F.info '{print $1}' > list
> >  #     $ cat list
> >  #     v1.11.3
> >  #     v1.11.4
> >  #
> >  # See https://golang.org/ref/mod#serving-from-proxy
> >
> >  module_dir=libguestfs.org/libnbd
> >  v_dir=$module_dir/@v
> >
> >  mkdir -p $v_dir
> >
> > +# Go wants a string in RFC 3339, git strict ISO 8601 format is
> > +# compatible.
> >  info="{
> >    \"Version\": \"$version\",
> > -  \"Time\": \"$(git show -s --format=%cs)\"
> > +  \"Time\": \"$(git show -s --format=%cI)\"
> >  }"
> >  echo "$info" > $module_dir/@latest
> >  echo "$info" > $v_dir/$version.info
> >
> >  cp go.mod $v_dir/$version.mod
> >  mv $version.zip $v_dir
> >
> >  # Create tarball to upload and extract on the webserver. It should be
> >  # extracted in the directory pointed by the "go-import" meta tag.
> >  output=$PWD/libnbd-golang-$version.tar.gz
> >  tar czf $output libguestfs.org
> >
> >  rm -rf libguestfs.org
> >
> >  echo output written to $output
>
> This looks OK, ACK.
>
> The other problem was the list file not containing all versions.

We discussed this in @guestfs.

I think this is the simplest and most robust way:

    curl https://download.libguestfs.org/libnbd/golang/libguestfs.org/libnbd/@v/list
> list
    echo current_version >> list

And include the list file in the distribution tar, so unpacking the
tar will update
the server completely, without any manual steps.

The disadvantage is that a broken list file on the server will be propagated to
the next build. But we should never have broken list file on the server since
this breaks the Go tools.

What do you think?





More information about the Libguestfs mailing list