1. 30 Sep, 2020 1 commit
    • Jérome Perrin's avatar
      switch_softwaretype: run software type buildout in same process · bd4572d3
      Jérome Perrin authored
      This way buildout can reuse egg caches and it's a bit faster:
      
      To run a simple instance buildout, from 2.837s it goes down to 1.875s.
      To run slapos node instance 10 times just after requesting an ERP5 instance, it goes from ~112s to 98s
      
      before:
      
          hyperfine "/srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/shared/python2.7/60364a13cc977dd5a894e0239ac889b9/bin/python2.7 /srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/soft/c63ba7265399450b28f9ea6d5667a5e7/bin/buildout -U"
          Benchmark #1: /srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/shared/python2.7/60364a13cc977dd5a894e0239ac889b9/bin/python2.7 /srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/soft/c63ba7265399450b28f9ea6d5667a5e7/bin/buildout -U
            Time (mean ± σ):      2.837 s ±  0.275 s    [User: 2.481 s, System: 0.285 s]
            Range (min … max):    2.482 s …  3.222 s    10 runs
      
      after:
      
          hyperfine "/srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/shared/python2.7/60364a13cc977dd5a894e0239ac889b9/bin/python2.7 /srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/soft/c63ba7265399450b28f9ea6d5667a5e7/bin/buildout -U"
          Benchmark #1: /srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/shared/python2.7/60364a13cc977dd5a894e0239ac889b9/bin/python2.7 /srv/slapgrid/slappart4/srv/slapos/inst/slappart0/tmp/soft/c63ba7265399450b28f9ea6d5667a5e7/bin/buildout -U
            Time (mean ± σ):      1.875 s ±  0.067 s    [User: 1.660 s, System: 0.148 s]
            Range (min … max):    1.816 s …  2.038 s    10 runs
      bd4572d3
  2. 29 Sep, 2020 1 commit
  3. 28 Sep, 2020 7 commits
  4. 25 Sep, 2020 7 commits
  5. 24 Sep, 2020 6 commits
  6. 21 Sep, 2020 3 commits
  7. 17 Sep, 2020 6 commits
    • Kirill Smelkov's avatar
      golang: Fix it to keep per-workspace bits inside go.work/ · 273b5687
      Kirill Smelkov authored
      And not globally inside slapuser $HOME (which is go builtin default).
      
      `go env` output: before:
      
          (go.work) slapuser34@vifibcloud-rapidspace-hosting-007:~/srv/runner$ go env
          GO111MODULE=""
          GOARCH="amd64"
          GOBIN=""
          GOCACHE="/srv/slapgrid/slappart34/.cache/go-build"
          GOENV="/srv/slapgrid/slappart34/.config/go/env"
          GOEXE=""
          GOFLAGS=""
          GOHOSTARCH="amd64"
          GOHOSTOS="linux"
          GOINSECURE=""
          GONOPROXY=""
          GONOSUMDB=""
          GOOS="linux"
          GOPATH="/srv/slapgrid/slappart34/srv/runner/software/09b17891535725b7c44e64fb2e856ebe/go.work"
          GOPRIVATE=""
          GOPROXY="https://proxy.golang.org,direct"
          GOROOT="/srv/slapgrid/slappart34/srv/runner/shared/golang1.14/da4c5c8222d5573da4d0e547cfc1793e"
          GOSUMDB="sum.golang.org"
          GOTMPDIR=""
          GOTOOLDIR="/srv/slapgrid/slappart34/srv/runner/shared/golang1.14/da4c5c8222d5573da4d0e547cfc1793e/pkg/tool/linux_amd64"
          GCCGO="gccgo"
          AR="ar"
          CC="gcc"
          CXX="g++"
          CGO_ENABLED="1"
          GOMOD=""
          CGO_CFLAGS="-g -O2"
          CGO_CPPFLAGS=""
          CGO_CXXFLAGS="-g -O2"
          CGO_FFLAGS="-g -O2"
          CGO_LDFLAGS="-g -O2"
          PKG_CONFIG="pkg-config"
          GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build196479275=/tmp/go-build -gno-record-gcc-switches"
      
      after:
      
          (go.work) slapuser34@vifibcloud-rapidspace-hosting-007:~/srv/runner$ go env
          GO111MODULE=""
          GOARCH="amd64"
          GOBIN=""
          GOCACHE="/srv/slapgrid/slappart34/srv/runner/software/09b17891535725b7c44e64fb2e856ebe/go.work/cache"
          GOENV="/srv/slapgrid/slappart34/srv/runner/software/09b17891535725b7c44e64fb2e856ebe/go.work/goenv"
          GOEXE=""
          GOFLAGS=""
          GOHOSTARCH="amd64"
          GOHOSTOS="linux"
          GOINSECURE=""
          GONOPROXY=""
          GONOSUMDB=""
          GOOS="linux"
          GOPATH="/srv/slapgrid/slappart34/srv/runner/software/09b17891535725b7c44e64fb2e856ebe/go.work"
          GOPRIVATE=""
          GOPROXY="https://proxy.golang.org,direct"
          GOROOT="/srv/slapgrid/slappart34/srv/runner/shared/golang1.14/da4c5c8222d5573da4d0e547cfc1793e"
          GOSUMDB="sum.golang.org"
          GOTMPDIR=""
          GOTOOLDIR="/srv/slapgrid/slappart34/srv/runner/shared/golang1.14/da4c5c8222d5573da4d0e547cfc1793e/pkg/tool/linux_amd64"
          GCCGO="gccgo"
          AR="ar"
          CC="gcc"
          CXX="g++"
          CGO_ENABLED="1"
          GOMOD=""
          CGO_CFLAGS="-g -O2"
          CGO_CPPFLAGS=""
          CGO_CXXFLAGS="-g -O2"
          CGO_FFLAGS="-g -O2"
          CGO_LDFLAGS="-g -O2"
          PKG_CONFIG="pkg-config"
          GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build233719895=/tmp/go-build -gno-record-gcc-switches"
      
      i.e. we change $GOCACHE and $GOENV to be per-workspace:
      
          --- a/goenv.before
          +++ b/goenv.after
          @@ -1,8 +1,8 @@
           GO111MODULE=""
           GOARCH="amd64"
           GOBIN=""
          -GOCACHE="/srv/slapgrid/slappart34/.cache/go-build"
          -GOENV="/srv/slapgrid/slappart34/.config/go/env"
          +GOCACHE="/srv/slapgrid/slappart34/srv/runner/software/09b17891535725b7c44e64fb2e856ebe/go.work/cache"
          +GOENV="/srv/slapgrid/slappart34/srv/runner/software/09b17891535725b7c44e64fb2e856ebe/go.work/goenv"
           GOEXE=""
           GOFLAGS=""
           GOHOSTARCH="amd64"
      
      Explanation:
      
      - Starting from Go1.10 the go command maintains cache for built packages, test results, etc:
      
        https://golang.org/doc/go1.10#build
      
        while this cache tries to remember by which go version and in which
        environment a package was built, and reusing the cached entry only when it is
        indeed correct to do so, by keeping this cache in a shared place - not per go
        workspace - we expose it to interactions with other go installments, which,
        due to e.g. software bugs might misbehave.
      
        -> keeping the build cache inside go workspace makes things more safe.
      
      - Starting from Go1.13 the go command allows to keep its configuration and environment inside a file:
      
        https://golang.org/doc/go1.13#go-env-w
        https://go.googlesource.com/proposal/+/master/design/30411-env.md
      
        The default location for such file is per-user, which can bring
        misinteraction among several go workspace installments and wrt system go
        installment.
      
        -> move this configuration file into inside go workspace.
      
      /reviewed-by: TrustMe
      273b5687
    • Kirill Smelkov's avatar
      golang: Drop support for Go1.9, Go1.10 and Go1.11 · e9a0095f
      Kirill Smelkov authored
      These are old Go releases that were stopped being updated in 2018 - mid
      2019:
      
      https://golang.org/doc/devel/release.html#go1.9
      https://golang.org/doc/devel/release.html#go1.10
      https://golang.org/doc/devel/release.html#go1.11
      
      and that are not used by any in-tree SR or component.
      
      Don't drop Go1.12 and Go1.13 yet: they are too outdated and no longer
      supported, but those Go releases are still in use by the following
      slapos software:
      
      Go1.12: Caddy, GitLab, Grafana
      Go1.13: RepMan, Restic
      
      The maintainers of those software are advised to upgrade to Go1.14 due
      to at least recent security fixes in net/http package.
      e9a0095f
    • Kirill Smelkov's avatar
      golang: Switch default go1.10 -> go1.14 · 28ab00e0
      Kirill Smelkov authored
      Go1.10 is outdated by today as it was last updated in Jan 2019:
      
      	https://golang.org/doc/devel/release.html#go1.10
      
      Go1.14 is current oldstable - i.e. it is still supported and mature.
      
      As currently no in-tree SR or component use gowork's default, the switch
      should not introduce any breakage.
      28ab00e0
    • Kirill Smelkov's avatar
      golang: v↑ go1.14 (1.14.3 -> 1.14.9) · 1e7afb3e
      Kirill Smelkov authored
      Going Go1.14.3 -> Go1.14.9 brings in many compiler and runtime fixes,
      including security fixes to package net/http:
      
      https://golang.org/doc/devel/release.html#go1.14
      
      Switch helloweb from go1.13 -> go1.14 to test.
      
      Tested on helloworld SR.
      1e7afb3e
    • Kirill Smelkov's avatar
      golang: v↑ go1.13 (1.13.9 -> 1.13.15) · e849521f
      Kirill Smelkov authored
      Going Go1.13.9 -> Go1.13.15 brings in many compiler and runtime fixes,
      including security fixes to package net/http:
      
      https://golang.org/doc/devel/release.html#go1.13
      
      Switch helloweb from go1.12 -> go1.13 to test.
      
      Tested on helloworld SR.
      e849521f
    • Jérome Perrin's avatar
      version up: slapos.core 1.6.2 · 7bd5084c
      Jérome Perrin authored
      7bd5084c
  8. 16 Sep, 2020 3 commits
  9. 15 Sep, 2020 6 commits