Skip to content

DEB Package #2508

Open
Open

Description

@dveeden
No description provided.

Activity

  1. ottok commented on Mar 20, 2025

    @ottok
    Contributor

    This is a subtask of #2506.

    I am currently a bit baffled about these module dependencies that point to a subdirectory inside a specific branch in a module:

    src/github.com/pingcap/tiup/components/client/main.go:27:2: cannot find package "github.com/gizak/termui/v3" in any of:
    	/tmp/test/tiup/debian/build/src/github.com/pingcap/tiup/vendor/github.com/gizak/termui/v3 (vendor tree)
    	/usr/lib/go-1.24/src/github.com/gizak/termui/v3 (from $GOROOT)
    	/tmp/test/tiup/debian/build/src/github.com/gizak/termui/v3 (from $GOPATH)
    src/github.com/pingcap/tiup/components/client/main.go:28:2: cannot find package "github.com/gizak/termui/v3/widgets" in any of:
    	/tmp/test/tiup/debian/build/src/github.com/pingcap/tiup/vendor/github.com/gizak/termui/v3/widgets (vendor tree)
    	/usr/lib/go-1.24/src/github.com/gizak/termui/v3/widgets (from $GOROOT)
    	/tmp/test/tiup/debian/build/src/github.com/gizak/termui/v3/widgets (from $GOPATH)
    src/github.com/pingcap/tiup/components/client/main.go:32:2: cannot find package "github.com/xo/usql/drivers/mysql" in any of:
    	/tmp/test/tiup/debian/build/src/github.com/pingcap/tiup/vendor/github.com/xo/usql/drivers/mysql (vendor tree)
    	/usr/lib/go-1.24/src/github.com/xo/usql/drivers/mysql (from $GOROOT)
    	/tmp/test/tiup/debian/build/src/github.com/xo/usql/drivers/mysql (from $GOPATH)
    src/github.com/pingcap/tiup/components/client/main.go:33:2: cannot find package "github.com/xo/usql/env" in any of:
    	/tmp/test/tiup/debian/build/src/github.com/pingcap/tiup/vendor/github.com/xo/usql/env (vendor tree)
    	/usr/lib/go-1.24/src/github.com/xo/usql/env (from $GOROOT)
    	/tmp/test/tiup/debian/build/src/github.com/xo/usql/env (from $GOPATH)
    src/github.com/pingcap/tiup/components/client/main.go:34:2: cannot find package "github.com/xo/usql/handler" in any of:
    	/tmp/test/tiup/debian/build/src/github.com/pingcap/tiup/vendor/github.com/xo/usql/handler (vendor tree)
    	/usr/lib/go-1.24/src/github.com/xo/usql/handler (from $GOROOT)
    	/tmp/test/tiup/debian/build/src/github.com/xo/usql/handler (from $GOPATH)
    src/github.com/pingcap/tiup/components/client/main.go:35:2: cannot find package "github.com/xo/usql/rline" in any of:
    	/tmp/test/tiup/debian/build/src/github.com/pingcap/tiup/vendor/github.com/xo/usql/rline (vendor tree)
    	/usr/lib/go-1.24/src/github.com/xo/usql/rline (from $GOROOT)
    	/tmp/test/tiup/debian/build/src/github.com/xo/usql/rline (from $GOPATH)
    src/github.com/pingcap/tiup/embed/embed.go:15:12: pattern examples: no matching files found
    

    These all stem from https://github.com/pingcap/tiup/blob/master/components/client/main.go#L27-L35

    What is the point of this code, why isn't it just importing the module in a normal fashion?

  2. dveeden commented on Mar 20, 2025

    @dveeden
    ContributorAuthor

    I faced the same in #2507. I just created #2517 for this.

  3. ottok commented on Mar 20, 2025

    @ottok
    Contributor

    Seems TiUp has a bunch of Go dependencies that are not yet in Debian at all. One major one is xo/usql, for which I started packaging at https://salsa.debian.org/go-team/packages/usql/-/merge_requests/1

  4. ottok commented on Apr 10, 2025

    @ottok
    Contributor

    For the record, dh-make-golang estimate github.com/pingcap/tiup reports on latest v.1.16.2:

    Bringing github.com/pingcap/tiup to Debian requires packaging the following Go modules:
    github.com/pingcap/tiup
      github.com/AstroProfundis/sysinfo
      github.com/ScaleFT/sshkeys
        github.com/dchest/bcrypt_pbkdf
      github.com/appleboy/easyssh-proxy
      github.com/asaskevich/EventBus
      github.com/cavaliergopher/grab/v3	(github.com/cavaliergopher/grab in Debian)
      github.com/cheggaaa/pb/v3	(github.com/cheggaaa/pb in Debian)
      github.com/gibson042/canonicaljson-go
      github.com/gizak/termui/v3	(github.com/gizak/termui in Debian)
      github.com/jedib0t/go-pretty/v6	(github.com/jedib0t/go-pretty in Debian)
      github.com/jeremywohl/flatten
      github.com/joomcode/errorx
      github.com/pingcap/errors
        github.com/pingcap/log
      github.com/pingcap/failpoint
      github.com/pingcap/fn
      github.com/pingcap/kvproto
      github.com/pingcap/tidb-insight/collector
        github.com/lorenzosaino/go-sysctl
          golang.org/x/lint
        github.com/yusufpapurcu/wmi
          github.com/go-ole/go-ole
      github.com/r3labs/diff/v2
      github.com/relex/aini
      github.com/sethvargo/go-password
      github.com/xo/usql
        github.com/ClickHouse/clickhouse-go
        github.com/IBM/nzgo
        github.com/MichaelS11/go-cql-driver
        github.com/VoltDB/voltdb-client-go
        github.com/alexbrainman/odbc
        github.com/amsokol/ignite-go-client
        github.com/apache/arrow/go/arrow
        github.com/apache/calcite-avatica-go/v5
        github.com/apache/thrift
        github.com/beltran/gohive
        github.com/beltran/gosasl
        github.com/bippio/go-impala
        github.com/btnguyen2k/consu/semita
        github.com/btnguyen2k/gocosmos
        github.com/cloudspannerecosystem/go-sql-spanner
        github.com/couchbase/go-couchbase
        github.com/couchbase/go_n1ql
        github.com/couchbase/gomemcached
        github.com/couchbase/goutils
        github.com/exasol/exasol-driver-go
        github.com/genjidb/genji
        github.com/godror/godror
        github.com/gohxs/readline
        github.com/google/goexpect
        github.com/googleapis/gax-go/v2	(github.com/googleapis/gax-go in Debian)
        github.com/jmrobles/h2go
        github.com/mattn/go-adodb
        github.com/mithrandie/csvq
        github.com/mithrandie/csvq-driver
        github.com/mithrandie/go-text
        github.com/nakagami/firebirdsql
        github.com/ory/dockertest/v3
        github.com/prestodb/presto-go-client
        github.com/sijms/go-ora/v2
        github.com/snowflakedb/gosnowflake
        github.com/thda/tds
        github.com/trinodb/trino-go-client
        github.com/uber/athenadriver
        github.com/vertica/vertica-sql-go
        github.com/xo/dburl
        github.com/xo/tblfmt
          github.com/nathan-fiscaletti/consolesize-go
        github.com/yookoala/realpath
        github.com/zaf/temp
        gorm.io/driver/bigquery
        modernc.org/ccgo/v3
        modernc.org/libc
        modernc.org/ql
        modernc.org/sqlite
        sqlflow.org/gohive
        sqlflow.org/gomaxcompute
        github.com/Microsoft/go-winio
        github.com/Microsoft/hcsshim
        github.com/Nvveen/Gotty
        github.com/alecthomas/template
        github.com/beltran/gssapi
        github.com/btnguyen2k/consu/gjrc
        github.com/btnguyen2k/consu/olaf
        github.com/btnguyen2k/consu/reddo
        github.com/cenkalti/backoff/v3	(github.com/cenkalti/backoff in Debian)
        github.com/cespare/xxhash/v2	(github.com/cespare/xxhash in Debian)
        github.com/cloudflare/golz4
        github.com/cncf/udpa/go
        github.com/cncf/xds/go
        github.com/envoyproxy/go-control-plane
        github.com/envoyproxy/protoc-gen-validate
        github.com/exasol/error-reporting-go
        github.com/golang-sql/civil
        github.com/jcmturner/rpc/v2	(github.com/jcmturner/rpc in Debian)
        github.com/mithrandie/go-file/v2
        github.com/mithrandie/readline-csvq
        github.com/mithrandie/ternary
        github.com/pierrec/lz4/v4	(github.com/pierrec/lz4 in Debian)
        github.com/unchartedsoftware/witch
        github.com/xinsnake/go-http-digest-auth-client
        github.com/xwb1989/sqlparser
        gitlab.com/nyarla/go-crypt
        gopkg.in/jcmturner/gokrb5.v6	(gopkg.in/jcmturner/gokrb5.v5 in Debian)
        gopkg.in/jcmturner/rpc.v1
        lukechampine.com/uint128
        modernc.org/b
        modernc.org/cc/v3
        modernc.org/db
        modernc.org/file
        modernc.org/golex
        modernc.org/lldb
        modernc.org/memory
        modernc.org/opt
        modernc.org/sortutil
        modernc.org/strutil
        modernc.org/token
        modernc.org/zappy
      github.com/apache/arrow/go/v14
      github.com/coreos/go-systemd/v22	(github.com/coreos/go-systemd in Debian)
        github.com/godbus/dbus/v5	(github.com/godbus/dbus in Debian)
    

    The usql is one of the largest dependencies with a large number of dependencies of its own.

  5. ottok commented on Apr 11, 2025

    @ottok
    Contributor

    I have the build working on multiple platforms now, but tests not passing. Still requires quite a lot of work.

    Image

  6. ottok commented on May 31, 2025

    @ottok
    Contributor

    I am seriously struggling with this code base and design of TiUP. It assumes there is always a ~/.tiup directory, a root.json file and a mirror defined. I am not able to override the root.json lookup by simply loading an existing system-wide /usr/share/tiup/root.json as loading the profile, home directory and having the root.json specifically inside the home directory is mandatory through multiple levels of abstractions and simply injecting a custom path in local.go or local_manifests.go won't work.

    Also, by default it is not possible to run any commands unless the repository object is loaded. By default, running any command requires network connection even though the command does not do anything that would actually need network, e.g.:

    ./bin/tiup tiup-client --help
    The component `tiup-client` version  is not installed; downloading from repository.
    Error: fetch /timestamp.json from mirror(https://tiup-mirrors.pingcap.com/) failed: download from https://tiup-mirrors.pingcap.com/timestamp.json failed: Get "https://tiup-mirrors.pingcap.com/timestamp.json": dial tcp: lookup tiup-mirrors.pingcap.com on 172.20.91.201:53: dial udp 172.20.91.201:53: connect: network is unreachable
    

    The PR 2538 fixes the above issue, but the code base is full of assumptions that are inherently incompatible with installing the binaries at /usr/bin/tiup, /usr/bin/tiup-client etc and allowing users to run them as-is without additional mandatory setup and creating new .tiup directories etc. This makes it very challenging to package this for any Linux distribution.

  7. ottok commented on May 31, 2025

    @ottok
    Contributor

    Generic requirements for a Go program in Linux:

    • Doing a regular Go build should produce the binary using regular Go source code structure and dependencies.
    • The name of the binary needs to be specific for the project, e.g. not just client or server or a.
    • The binary should run as-is without requiring that user has any extra ENV set or extra magic files. Extra stuff is allowed when it enables more functionality, but basic functionality should work as-is (e.g. program --help should produce help text and not an error).
    • It should be possible to run the binary on a read-only filesystem without network. Functionality can be limited, but it should still run.

    Currently, tiup can be built, but tiup-client is produced only by make build that has a custom rename step.

    Currently, tiup can't run at all without extra magic file (root.json) available, a writeable .tiup directory and live network connectivity. For example tiup --help won't produce any help text unless the listed prerequisited are satisfied. I assumed I could hack around these with a few Go patches, but this structure seems quite deep and a fundamental part of how TiUP is designed.

    This will also block #2507 and #2509 as they have the same generic requirements of being able to run a binary without magic ENV or extra files.

    I am currently iterating on #2538 to maybe get past these issues, but not sure if I will make progress.

  8. ottok commented on Jun 9, 2025

    @ottok
    Contributor

    While going through the dependencies I noticed that https://github.com/AstroProfundis/sysinfo is a fork of https://github.com/zcalusic/sysinfo that seems to now be maintained in a PingCAP employee personal GitHub account. As PingCAP relies on this repository, it should probably be in PingCAP's namespace. Alternatively all improvements could be sent upstream to not need to have a fork at all.

  9. ottok commented on Jun 11, 2025

    @ottok
    Contributor

    More notes on dependencies:

    • TiUP depends on old github.com/r3labs/diff/v2 but Debian golang-github-r3labs-diff-dev has only v3, which does not build on TiUP. Would it be feasible to port TiUP to use this newer library version?

    • TiUP depends on old github.com/grpc-ecosystem/grpc-gateway v1.16.0 but the Debian golang-github-grpc-ecosystem-grpc-gateway-dev is of version 2.x, and does not build with TiUP. Would it be feasible to port TiUP to use this newer library version?

    # github.com/pingcap/tiup/pkg/cluster/api/dmpb
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1152:141: too many arguments in call to runtime.NewPattern
    	have (number, []int, []string, string, unknown type)
    	want (int, []int, []string, string)
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1152:149: undefined: runtime.AssumeColonVerbOpt
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1154:169: too many arguments in call to runtime.NewPattern
    	have (number, []int, []string, string, unknown type)
    	want (int, []int, []string, string)
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1154:177: undefined: runtime.AssumeColonVerbOpt
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1156:170: too many arguments in call to runtime.NewPattern
    	have (number, []int, []string, string, unknown type)
    	want (int, []int, []string, string)
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1156:178: undefined: runtime.AssumeColonVerbOpt
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1158:147: too many arguments in call to runtime.NewPattern
    	have (number, []int, []string, string, unknown type)
    	want (int, []int, []string, string)
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1158:155: undefined: runtime.AssumeColonVerbOpt
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1160:199: too many arguments in call to runtime.NewPattern
    	have (number, []int, []string, string, unknown type)
    	want (int, []int, []string, string)
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1160:207: undefined: runtime.AssumeColonVerbOpt
    src/github.com/pingcap/tiup/pkg/cluster/api/dmpb/dmmaster.pb.gw.go:1160:199: too many errors
    
  10. ottok commented on Jun 25, 2025

    @ottok
    Contributor

    Other PingCAP/TiDB specific issues when trying to build dependencies as independent packages for Debian:

    golang-github-pingcap-tidb-insight

    dh_auto_build -O--builddirectory=debian/.build/upstream -O--buildsystem=golang
     cd debian/.build/upstream && go install -trimpath -v -p 4 github.com/pingcap/tidb-insight/collector github.com/pingcap/tidb-insight/collector/insight github.com/pingcap/tidb-insight/collector/kmsg github.com/pingcap/tidb-insight/docs github.com/pingcap/tidb-insight/tools
    src/github.com/pingcap/tidb-insight/collector/insight/insight.go:22:2: cannot find package "github.com/AstroProfundis/sysinfo" in any of:
     /usr/lib/go-1.24/src/github.com/AstroProfundis/sysinfo (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/github.com/AstroProfundis/sysinfo (from $GOPATH)
    src/github.com/pingcap/tidb-insight/collector/insight/syscfg.go:21:2: cannot find package "github.com/lorenzosaino/go-sysctl" in any of:
     /usr/lib/go-1.24/src/github.com/lorenzosaino/go-sysctl (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/github.com/lorenzosaino/go-sysctl (from $GOPATH)
    src/github.com/pingcap/tidb-insight/collector/insight/process.go:10:2: cannot find package "github.com/shirou/gopsutil/cpu" in any of:
     /usr/lib/go-1.24/src/github.com/shirou/gopsutil/cpu (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/github.com/shirou/gopsutil/cpu (from $GOPATH)
    src/github.com/pingcap/tidb-insight/collector/insight/pd.go:11:2: cannot find package "github.com/shirou/gopsutil/process" in any of:
     /usr/lib/go-1.24/src/github.com/shirou/gopsutil/process (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/github.com/shirou/gopsutil/process (from $GOPATH)
    src/github.com/pingcap/tidb-insight/collector/insight/socket.go:16:2: cannot find package "github.com/vishvananda/netlink" in any of:
     /usr/lib/go-1.24/src/github.com/vishvananda/netlink (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/github.com/vishvananda/netlink (from $GOPATH)
    src/github.com/pingcap/tidb-insight/collector/insight/epoll.go:16:2: cannot find package "golang.org/x/sys/unix" in any of:
     /usr/lib/go-1.24/src/golang.org/x/sys/unix (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/golang.org/x/sys/unix (from $GOPATH)
    src/github.com/pingcap/tidb-insight/tools/prom2influx.go:13:2: cannot find package "github.com/influxdata/influxdb/client/v2" in any of:
     /usr/lib/go-1.24/src/github.com/influxdata/influxdb/client/v2 (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/github.com/influxdata/influxdb/client/v2 (from $GOPATH)
    src/github.com/pingcap/tidb-insight/tools/prom2influx.go:14:2: cannot find package "github.com/prometheus/common/model" in any of:
     /usr/lib/go-1.24/src/github.com/prometheus/common/model (from $GOROOT)
     /tmp/build/source/debian/.build/upstream/src/github.com/prometheus/common/model (from $GOPATH)
    

    golang-github-pingcap-kvproto

    Investigating (0) golang-google-genproto-dev:amd64 < none -> 0.0~git20210726.e7812ac-4 @un uN Ib >
    Broken golang-google-genproto-dev:amd64 Depends on golang-github-golang-protobuf-1-5-dev:amd64 < none | 1.5.4-1 @un uH >
      Considering golang-github-golang-protobuf-1-5-dev:amd64 5 as a solution to golang-google-genproto-dev:amd64 11
      Holding Back golang-google-genproto-dev:amd64 rather than change golang-github-golang-protobuf-1-5-dev:amd64
    Investigating (0) golang-go.opencensus-dev:amd64 < none -> 0.24.0-2 @un uN Ib >
    Broken golang-go.opencensus-dev:amd64 Depends on golang-github-golang-protobuf-1-5-dev:amd64 < none | 1.5.4-1 @un uH >
      Considering golang-github-golang-protobuf-1-5-dev:amd64 5 as a solution to golang-go.opencensus-dev:amd64 8
      Holding Back golang-go.opencensus-dev:amd64 rather than change golang-github-golang-protobuf-1-5-dev:amd64
    Investigating (0) golang-google-cloud-dev:amd64 < none -> 0.56.0-6 @un uN Ib >
    Broken golang-google-cloud-dev:amd64 Depends on golang-github-golang-protobuf-1-5-dev:amd64 < none | 1.5.4-1 @un uH >
      Considering golang-github-golang-protobuf-1-5-dev:amd64 5 as a solution to golang-google-cloud-dev:amd64 6
      Holding Back golang-google-cloud-dev:amd64 rather than change golang-github-golang-protobuf-1-5-dev:amd64
    Investigating (0) golang-github-google-cel-go-dev:amd64 < none -> 0.18.2+ds-5 @un uN Ib >
    Broken golang-github-google-cel-go-dev:amd64 Depends on golang-github-golang-protobuf-1-5-dev:amd64 < none | 1.5.4-1 @un uH >
      Considering golang-github-golang-protobuf-1-5-dev:amd64 5 as a solution to golang-github-google-cel-go-dev:amd64 6
      Holding Back golang-github-google-cel-go-dev:amd64 rather than change golang-github-golang-protobuf-1-5-dev:amd64
    Investigating (0) golang-github-grpc-ecosystem-grpc-gateway-dev:amd64 < none -> 2.20.0-2 @un uN Ib >
    Broken golang-github-grpc-ecosystem-grpc-gateway-dev:amd64 Depends on golang-google-genproto-dev:amd64 < none | 0.0~git20210726.e7812ac-4 @un uH > (>= 0.0~git20210726.e7812ac~)
      Considering golang-google-genproto-dev:amd64 11 as a solution to golang-github-grpc-ecosystem-grpc-gateway-dev:amd64 0
      Holding Back golang-github-grpc-ecosystem-grpc-gateway-dev:amd64 rather than change golang-google-genproto-dev:amd64
    Investigating (0) golang-google-api-dev:amd64 < none -> 0.61.0-6 @un uN Ib >
    Broken golang-google-api-dev:amd64 Depends on golang-go.opencensus-dev:amd64 < none | 0.24.0-2 @un uH > (>= 0.23.0)
      Considering golang-go.opencensus-dev:amd64 8 as a solution to golang-google-api-dev:amd64 0
      Holding Back golang-google-api-dev:amd64 rather than change golang-go.opencensus-dev:amd64
    Investigating (0) golang-github-pingcap-kvproto-build-deps:amd64 < 1.0 @iU K Nb Ib >
    Broken golang-github-pingcap-kvproto-build-deps:amd64 Depends on golang-github-grpc-ecosystem-grpc-gateway-dev:amd64 < none | 2.20.0-2 @un uH >
      Considering golang-github-grpc-ecosystem-grpc-gateway-dev:amd64 0 as a solution to golang-github-pingcap-kvproto-build-deps:amd64 -2
      Removing golang-github-pingcap-kvproto-build-deps:amd64 rather than change golang-github-grpc-ecosystem-grpc-gateway-dev:amd64
    Investigating (1) golang-google-grpc-dev:amd64 < none -> 1.64.0-7 @un uN Ib >
    Broken golang-google-grpc-dev:amd64 Depends on golang-github-google-cel-go-dev:amd64 < none | 0.18.2+ds-5 @un uH >
      Considering golang-github-google-cel-go-dev:amd64 6 as a solution to golang-google-grpc-dev:amd64 14
      Holding Back golang-google-grpc-dev:amd64 rather than change golang-github-google-cel-go-dev:amd64
    Investigating (1) golang-github-googleapis-gax-go-dev:amd64 < none -> 2.14.1-1 @un uN Ib >
    Broken golang-github-googleapis-gax-go-dev:amd64 Depends on golang-google-grpc-dev:amd64 < none | 1.64.0-7 @un uH >
      Considering golang-google-grpc-dev:amd64 14 as a solution to golang-github-googleapis-gax-go-dev:amd64 1
      Holding Back golang-github-googleapis-gax-go-dev:amd64 rather than change golang-google-grpc-dev:amd64
    

    golang-github-pingcap-errors

    === RUN   TestFormatNew
        format_test.go:38: test 3: line 2: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatNew\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:26\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "error\ngithub.com/pkg/errors.TestFormatNew\n\t.+/github.com/pkg/errors/format_test.go:26"
        format_test.go:38: test 3: line 3: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatNew\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:26\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "error\ngithub.com/pkg/errors.TestFormatNew\n\t.+/github.com/pkg/errors/format_test.go:26"
    --- FAIL: TestFormatNew (0.00s)
    === RUN   TestFormatErrorf
        format_test.go:64: test 3: line 2: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatErrorf\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:56\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "error\ngithub.com/pkg/errors.TestFormatErrorf\n\t.+/github.com/pkg/errors/format_test.go:56"
        format_test.go:64: test 3: line 3: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatErrorf\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:56\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "error\ngithub.com/pkg/errors.TestFormatErrorf\n\t.+/github.com/pkg/errors/format_test.go:56"
    --- FAIL: TestFormatErrorf (0.00s)
    === RUN   TestFormatWrap
        format_test.go:116: test 3: line 2: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatWrap\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:82\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700\nerror2"
            want: "error\ngithub.com/pkg/errors.TestFormatWrap\n\t.+/github.com/pkg/errors/format_test.go:82"
        format_test.go:116: test 3: line 3: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatWrap\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:82\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700\nerror2"
            want: "error\ngithub.com/pkg/errors.TestFormatWrap\n\t.+/github.com/pkg/errors/format_test.go:82"
        format_test.go:116: test 6: line 3: fmt.Sprintf("%+v", err):
             got: "EOF\nerror\ngithub.com/pingcap/errors.TestFormatWrap\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:96\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "EOF\nerror\ngithub.com/pkg/errors.TestFormatWrap\n\t.+/github.com/pkg/errors/format_test.go:96"
        format_test.go:116: test 6: line 4: fmt.Sprintf("%+v", err):
             got: "EOF\nerror\ngithub.com/pingcap/errors.TestFormatWrap\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:96\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "EOF\nerror\ngithub.com/pkg/errors.TestFormatWrap\n\t.+/github.com/pkg/errors/format_test.go:96"
        format_test.go:116: test 7: line 3: fmt.Sprintf("%+v", err):
             got: "EOF\nerror1\ngithub.com/pingcap/errors.TestFormatWrap\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:103\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700\nerror2"
            want: "EOF\nerror1\ngithub.com/pkg/errors.TestFormatWrap\n\t.+/github.com/pkg/errors/format_test.go:103\n"
        format_test.go:116: test 7: line 4: fmt.Sprintf("%+v", err):
             got: "EOF\nerror1\ngithub.com/pingcap/errors.TestFormatWrap\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:103\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700\nerror2"
            want: "EOF\nerror1\ngithub.com/pkg/errors.TestFormatWrap\n\t.+/github.com/pkg/errors/format_test.go:103\n"
    --- FAIL: TestFormatWrap (0.00s)
    === RUN   TestFormatWrapf
        format_test.go:157: test 3: line 3: fmt.Sprintf("%+v", err):
             got: "EOF\nerror2\ngithub.com/pingcap/errors.TestFormatWrapf\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:134\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "EOF\nerror2\ngithub.com/pkg/errors.TestFormatWrapf\n\t.+/github.com/pkg/errors/format_test.go:134"
        format_test.go:157: test 3: line 4: fmt.Sprintf("%+v", err):
             got: "EOF\nerror2\ngithub.com/pingcap/errors.TestFormatWrapf\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:134\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want: "EOF\nerror2\ngithub.com/pkg/errors.TestFormatWrapf\n\t.+/github.com/pkg/errors/format_test.go:134"
        format_test.go:157: test 6: line 2: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatWrapf\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:149\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700\nerror2"
            want: "error\ngithub.com/pkg/errors.TestFormatWrapf\n\t.+/github.com/pkg/errors/format_test.go:149"
        format_test.go:157: test 6: line 3: fmt.Sprintf("%+v", err):
             got: "error\ngithub.com/pingcap/errors.TestFormatWrapf\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:149\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700\nerror2"
            want: "error\ngithub.com/pkg/errors.TestFormatWrapf\n\t.+/github.com/pkg/errors/format_test.go:149"
    --- FAIL: TestFormatWrapf (0.00s)
    === RUN   TestFormatWithStack
        format_test.go:476: test 3: block 2: fmt.Sprintf("%+v", err):
            got:
            "github.com/pingcap/errors.TestFormatWithStack\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:175\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want:
            "github.com/pkg/errors.TestFormatWithStack\n\t.+/github.com/pkg/errors/format_test.go:175"
            all-got:
               EOF
               github.com/pingcap/errors.TestFormatWithStack
            	/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:175
            testing.tRunner
            	/usr/lib/go-1.24/src/testing/testing.go:1792
            runtime.goexit
            	/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700
            all-want:
               EOF
               github.com/pkg/errors.TestFormatWithStack
            	.+/github.com/pkg/errors/format_test.go:175
    --- FAIL: TestFormatWithStack (0.00s)
    === RUN   TestFormatWithMessage
        format_test.go:476: test 3: block 2: fmt.Sprintf("%+v", err):
            got:
            "github.com/pingcap/errors.TestFormatWithMessage\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:244\ntesting.tRunner\n\t/usr/lib/go-1.24/src/testing/testing.go:1792\nruntime.goexit\n\t/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700"
            want:
            "github.com/pkg/errors.TestFormatWithMessage\n\t.+/github.com/pkg/errors/format_test.go:244"
            all-got:
               error
               github.com/pingcap/errors.TestFormatWithMessage
            	/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/format_test.go:244
            testing.tRunner
            	/usr/lib/go-1.24/src/testing/testing.go:1792
            runtime.goexit
            	/usr/lib/go-1.24/src/runtime/asm_amd64.s:1700
               error2
            all-want:
               error
               github.com/pkg/errors.TestFormatWithMessage
            	.+/github.com/pkg/errors/format_test.go:244
               error2
    --- FAIL: TestFormatWithMessage (0.00s)
    === RUN   TestFrameLine
        stack_test.go:40: Frame(5391080): want: 9, got: 10
        stack_test.go:40: Frame(5433480): want: 20, got: 21
        stack_test.go:40: Frame(5433563): want: 28, got: 24
    --- FAIL: TestFrameLine (0.00s)
    === RUN   TestFrameFormat
        stack_test.go:125: test 2: line 1: fmt.Sprintf("%+s", err):
             got: "github.com/pingcap/errors.init\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go"
            want: "github.com/pkg/errors.init\n\t.+/github.com/pkg/errors/stack_test.go"
        stack_test.go:125: test 2: line 2: fmt.Sprintf("%+s", err):
             got: "github.com/pingcap/errors.init\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go"
            want: "github.com/pkg/errors.init\n\t.+/github.com/pkg/errors/stack_test.go"
        stack_test.go:125: test 5: line 1: fmt.Sprintf("%d", err):
             got: "10"
            want: "9"
        stack_test.go:125: test 11: line 1: fmt.Sprintf("%v", err):
             got: "stack_test.go:10"
            want: "stack_test.go:9"
        stack_test.go:125: test 12: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.init\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:10"
            want: "github.com/pkg/errors.init\n\t.+/github.com/pkg/errors/stack_test.go:9"
        stack_test.go:125: test 12: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.init\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:10"
            want: "github.com/pkg/errors.init\n\t.+/github.com/pkg/errors/stack_test.go:9"
    --- FAIL: TestFrameFormat (0.00s)
    === RUN   TestFuncname
    --- PASS: TestFuncname (0.00s)
    === RUN   TestStackTrace
        stack_test.go:203: test 1: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:155"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:154"
        stack_test.go:203: test 1: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:155"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:154"
        stack_test.go:203: test 2: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:160"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:159"
        stack_test.go:203: test 2: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:160"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:159"
        stack_test.go:203: test 3: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:165"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:164"
        stack_test.go:203: test 3: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:165"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:164"
        stack_test.go:203: test 4: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace.func1\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:170"
            want: "github.com/pkg/errors.(func·009|TestStackTrace.func1)\n\t.+/github.com/pkg/errors/stack_test.go:169"
        stack_test.go:203: test 4: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace.func1\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:170"
            want: "github.com/pkg/errors.(func·009|TestStackTrace.func1)\n\t.+/github.com/pkg/errors/stack_test.go:169"
        stack_test.go:203: test 4: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:170"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:169"
        stack_test.go:203: test 4: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:170"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:169"
        stack_test.go:203: test 5: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace.TestStackTrace.func2.func3\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:179"
            want: "github.com/pkg/errors.(func·010|TestStackTrace.func2.1)\n\t.+/github.com/pkg/errors/stack_test.go:178"
        stack_test.go:203: test 5: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace.TestStackTrace.func2.func3\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:179"
            want: "github.com/pkg/errors.(func·010|TestStackTrace.func2.1)\n\t.+/github.com/pkg/errors/stack_test.go:178"
        stack_test.go:203: test 5: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace.func2\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:180"
            want: "github.com/pkg/errors.(func·011|TestStackTrace.func2)\n\t.+/github.com/pkg/errors/stack_test.go:179"
        stack_test.go:203: test 5: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace.func2\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:180"
            want: "github.com/pkg/errors.(func·011|TestStackTrace.func2)\n\t.+/github.com/pkg/errors/stack_test.go:179"
        stack_test.go:203: test 5: line 1: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:181"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:180"
        stack_test.go:203: test 5: line 2: fmt.Sprintf("%+v", err):
             got: "github.com/pingcap/errors.TestStackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:181"
            want: "github.com/pkg/errors.TestStackTrace\n\t.+/github.com/pkg/errors/stack_test.go:180"
    --- FAIL: TestStackTrace (0.00s)
    === RUN   TestStackTraceFormat
        stack_test.go:276: test 11: line 2: fmt.Sprintf("%+v", err):
             got: "\ngithub.com/pingcap/errors.stackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:211\ngithub.com/pingcap/errors.TestStackTraceFormat\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:262"
            want: "\ngithub.com/pkg/errors.stackTrace\n\t.+/github.com/pkg/errors/stack_test.go:210\ngithub.com/pkg/errors.TestStackTraceFormat\n\t.+/github.com/pkg/errors/stack_test.go:261"
        stack_test.go:276: test 11: line 3: fmt.Sprintf("%+v", err):
             got: "\ngithub.com/pingcap/errors.stackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:211\ngithub.com/pingcap/errors.TestStackTraceFormat\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:262"
            want: "\ngithub.com/pkg/errors.stackTrace\n\t.+/github.com/pkg/errors/stack_test.go:210\ngithub.com/pkg/errors.TestStackTraceFormat\n\t.+/github.com/pkg/errors/stack_test.go:261"
        stack_test.go:276: test 11: line 4: fmt.Sprintf("%+v", err):
             got: "\ngithub.com/pingcap/errors.stackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:211\ngithub.com/pingcap/errors.TestStackTraceFormat\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:262"
            want: "\ngithub.com/pkg/errors.stackTrace\n\t.+/github.com/pkg/errors/stack_test.go:210\ngithub.com/pkg/errors.TestStackTraceFormat\n\t.+/github.com/pkg/errors/stack_test.go:261"
        stack_test.go:276: test 11: line 5: fmt.Sprintf("%+v", err):
             got: "\ngithub.com/pingcap/errors.stackTrace\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:211\ngithub.com/pingcap/errors.TestStackTraceFormat\n\t/tmp/build/source/debian/.build/upstream/src/github.com/pingcap/errors/stack_test.go:262"
            want: "\ngithub.com/pkg/errors.stackTrace\n\t.+/github.com/pkg/errors/stack_test.go:210\ngithub.com/pkg/errors.TestStackTraceFormat\n\t.+/github.com/pkg/errors/stack_test.go:261"
        stack_test.go:276: test 12: line 1: fmt.Sprintf("%#v", err):
             got: "[]errors.Frame{stack_test.go:211, stack_test.go:270}"
            want: "\\[\\]errors.Frame{stack_test.go:210, stack_test.go:269}"
    --- FAIL: TestStackTraceFormat (0.00s)
    
  11. ottok commented on Jun 25, 2025

    @ottok
    Contributor

    Ttest PPA is now available:

    sudo add-apt-repository ppa:otto/tidb
    sudo apt update
    
  12. ottok commented on Jun 25, 2025

    @ottok
    Contributor

    Notes from chat with @dveeden

    • Daniel will take a look into updating r3labs/diff v2 -> v3 and grpc-gateway v1 -> v2.
    • TiUP has had a policy of not updating dependencies proactively, but only if there are specific errors that absolutely require dependencies to be updates. This explains why many dependencies are outdated, and the Debian packaging may serve as the reason to update some of the dependencies now.
    • Daniel will also check what is the status of these dependencies:
      github.com/pingcap/check v0.0.0-20211026125417-57bd13f7b5f0
      github.com/pingcap/errors v0.11.5-0.20201126102027-b0a155152ca3
      github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86
      github.com/pingcap/fn v1.0.0
      github.com/pingcap/kvproto v0.0.0-20230331024443-349815129e6d
      github.com/pingcap/tidb-insight/collector v0.0.0-20220902034607-fb5ae0ddc8c1
      github.com/pkg/errors v0.9.1
      • Maybe they should be updated to latest to ensure TiUP benefits from fixes done in them, and also to avoid risk of anybody re-doing fixes on old versions that actually already existed in latest version?
      • Maybe the PingCAP maintained modules themselves should have some updates, or at least clarified if the latest tagged version or latest mainline commit should be used?
      • For the pingcap/errors library, consider removing references to original pkg/errors, and in TiUP stop depending direcly on pkg/errors to not have two libraries that are basically the same?
  13. dveeden commented on Jun 25, 2025

    @dveeden
    ContributorAuthor

    Ttest PPA is now available:

    sudo add-apt-repository ppa:otto/tidb
    sudo apt update
    

    This doesn't seem to work with a debian:latest or ubuntu:latest container.

    It does work with a ubuntu:questing container with these steps:

    apt update
    apt install software-properties-common
    add-apt-repository ppa:otto/tidb
    apt update
    apt install tiup
    

    Some things I noticed:

    • Having a marker that this is OS installed in tiup --version might be useful
    • The tiup --version output doesn't show the git hash etc
    • Running tiup client doesn't seem to be ale to find/execute tiup-client
    • tiup-client is directly in the path, but probably this shouldn't be the case as it should not be called directly.
    • Maybe tiup completion bash things could be shipped as a file in /etc/bash_completion.d/ ?
  14. dveeden commented on Jun 26, 2025

    @dveeden
    ContributorAuthor

    For golang-github-pingcap-errors:

    • I get a clean go test on current master
    • The latest release/tag is from a long time ago
    • The README needs some attention as too much of it is copied from upstream
    • Upstream seems to have stopped, the repo is archived.
    • Some (or all?) of this could be replaced with newer error functionality in Go
  15. dveeden commented on Jun 26, 2025

    @dveeden
    ContributorAuthor

    The usage for this:

    dvaneeden@dve-carbon:~/dev/pingcap/tiup$ git grep -E '(errors|perrs)\..*\(' | sed -E 's/^.*(errors|perrs)\.([A-Z][a-zA-Z]*).*$/errors.\2/' | sort | uniq -c | sort -rn
        129 errors.Annotatef
        123 errors.Errorf
        120 errors.Trace
        107 errors.New
         83 errors.AddStack
         68 errors.Is
         65 errors.Annotate
         60 errors.Cause
          7 errors.WithStack
          1 errors.As
    

    This summary mixes pingcap/errors with errors from the standard library.

  16. dveeden commented on Jul 11, 2025

    @dveeden
    ContributorAuthor

    Some updates / notes:

  17. dveeden commented on Aug 1, 2025

    @dveeden
    ContributorAuthor

    #2569 should help to get rid of grpc-gateway

  18. ottok commented on Aug 9, 2025

    @ottok
    Contributor

    I pushed now tiup_1.16.2+20250802~f57cbe37 to my test PPA at https://launchpad.net/~otto/+archive/ubuntu/tidb. The package is only buildable for Ubuntu devel (questing) as it depends on new dependencies not yet in any actual release.

    The package can be tested in e.g. a Ubuntu devel container with:

    add-apt-repository ppa:otto/tidb
    apt update
    apt install tiup
    

    Unfortunately the tiup commands that depend on the real-time update check are segfaulting due to a bug I have in #2538, but the point here is now to demonstrate the build and dependency management.

    Thanks to the latest changes on master, I was able to remove these vendored dependencies:

    • "github.com/AstroProfundis/sysinfo"
    • "github.com/gibson042/canonicaljson-go"
    • "github.com/joomcode/errorx"
    • "github.com/pingcap/fn"
    • "github.com/pingcap/tidb-insight"
    • "github.com/r3labs/diff"
    • "github.com/relex/aini"
    • "github.com/grpc-ecosystem/grpc-gateway"
  19. dveeden commented on Aug 20, 2025

    @dveeden
    ContributorAuthor

    @ottok so these dependencies changed from vendored to non-vendored?

  20. ottok commented on Aug 20, 2025

    @ottok
    Contributor

    @ottok so these dependencies changed from vendored to non-vendored?

    No, they were removed completely.

    Thanks for f6aa0ac too, now we can rely on yaml v3 alone.

  21. dveeden commented on Aug 20, 2025

    @dveeden
    ContributorAuthor

    Are you sure the list is correct? Some of these are still in the go.mod on the master branch

  22. ottok commented on Aug 22, 2025

    @ottok
    Contributor

    Are you sure the list is correct? Some of these are still in the go.mod on the master branch

    You are right, sorry for getting mixed in up in dependency tracking. The only dependencies we got completely rid of was pingcap/tidb-insight and grpc-ecosystem/grpc-gateway.

    While working on the latest git head of TiUP I came across a new finding about very outdated transitive dependency zaf/temp in #2588

  23. dveeden commented on Aug 25, 2025

    @dveeden
    ContributorAuthor

    Didn't we also get rid of pingcap/check and maybe some others?

  24. ottok commented on Aug 26, 2025

    @ottok
    Contributor

    Alright, so recent changes on TiUP git master branch helped get rid of: golang-github-alecthomas-assert-dev, golang-github-grpc-ecosystem-grpc-gateway-dev, golang-github-otiai10-copy-dev and golang-github-pingcap-check-dev.

    Names are Debian package names and screenshot below shows diff between earlier Debian packaging prototype and latest version, which also has new dependencies after I've packaged them for Debian.

    Image

    Latest proto version available in the TiUP PPA. Build logs at https://launchpad.net/~otto/+archive/ubuntu/tidb/+builds?build_text=&build_state=all show what went into it recently.

  25. ottok commented on Sep 10, 2025

    @ottok
    Contributor

    FYI @dveeden I posted now #2602 and also non-native official packaging draft at https://salsa.debian.org/go-team/packages/tiup/-/merge_requests/1

  26. ottok commented on Feb 13, 2026

    @ottok
    Contributor

    FYI: The Debian NEW queue process finally started working again after taken over by a new team, and TiUP got accepted into Debian, and by extension also Ubuntu:

    https://tracker.debian.org/pkg/tiup

    https://launchpad.net/ubuntu/+source/tiup

    I plan to refresh my PRs in this repo, test Go 1.26 compatibility, update the TiUP version in Debian and do other maintenance tasks in coming weeks.

  27. ottok commented on Feb 28, 2026

    @ottok
    Contributor

    I've now uploaded TiUP 1.16.4-1 to Debian unstable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions