Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: bump deps #166

Merged
merged 1 commit into from
Feb 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2025-01-16T18:10:29Z by kres 3b3f992.
# Generated on 2025-02-04T17:17:43Z by kres 987bf4d.

# common variables

Expand All @@ -25,7 +25,7 @@ GOIMPORTS_VERSION ?= 0.29.0
DEEPCOPY_VERSION ?= v0.5.6
GOLANGCILINT_VERSION ?= v1.63.4
GOFUMPT_VERSION ?= v0.7.0
GO_VERSION ?= 1.23.4
GO_VERSION ?= 1.23.5
GO_BUILDFLAGS ?=
GO_LDFLAGS ?=
CGO_ENABLED ?= 0
Expand Down
56 changes: 28 additions & 28 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ module github.com/cosi-project/state-etcd
go 1.23.0

require (
github.com/cosi-project/runtime v0.9.1
github.com/cosi-project/runtime v0.9.3
github.com/siderolabs/gen v0.8.0
github.com/stretchr/testify v1.10.0
go.etcd.io/etcd/api/v3 v3.5.17
go.etcd.io/etcd/client/v3 v3.5.17
go.etcd.io/etcd/server/v3 v3.5.17
go.etcd.io/etcd/api/v3 v3.5.18
go.etcd.io/etcd/client/v3 v3.5.18
go.etcd.io/etcd/server/v3 v3.5.18
go.uber.org/goleak v1.3.0
go.uber.org/zap v1.27.0
golang.org/x/sync v0.10.0
google.golang.org/grpc v1.69.4
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

out of my curiousity, what is the reason to bump so much aggressively? this prevents using easily lower versions if these versions are buggy for whatever reason in Omni.

Does this library work any better with new grpc package?

I can understand bumping etcd, as it's clearly the dependency here and the core thing of state-etcd, but why protobuf? Same question for COSI runtime itself?

Why is the fix buried inside chore: bump deps?

Copy link
Member Author

@DmitriyMV DmitriyMV Feb 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

out of my curiousity, what is the reason to bump so much aggressively? this prevents using easily lower versions if these versions are buggy for whatever reason in Omni.

So, it's mostly a hypothesis but it comes from the suggestion that since omni imports so many libraries directly or indirectly, some of those breakages can be caught during lint-test run in our libraries before we get them into Omni. This also also "splits" required work.

I'm coming from this thought:

omni imports state-etcd which imports a lot of third party libraries (Set A). Some of this Set A are also direct imports for Omni (Set B ∩ Set A) or direct imports of omni dependencies (Set C ∩ Set A). Going on updates aggressively means (updating Set A) means we can always revert those changes/fix those before we are forced to update to those dependencies because our direct imports with fixes that we need updated those imports themselves.

Another thought, is that while some of our 3rd party modules tend to stay updated, others do not. That creates complicated situation when, for example updating Set A breaks Set B. This should not happen but in practice in happened before.

But this also creates unpleasant complication that in bad case scenario we have to revert our module which is imported by omni if Omni breaks on production, and we will have to revert this change. I don't have a good answer for that tho.

Same question for COSI runtime itself?

We broke our code transitively before when our updates to COSI runtime broke omni. Since state-etcd is a part of call-chain between omni and a COSI runtime, I think it makes sense to update runtime here before omni.

Why is the fix buried inside chore: bump deps?

There is no fix in this PR, I think?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There were changes that changed the way the bootstrap list is cleared.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There were changes that changed the way the bootstrap list is cleared.

Ah, I removed those. During experiments I assumed that if we return before we reach bootstrapList = nil this will prevent GC from collecting bootstrapList while we are executing defers which can be arbitrary long. But it doesn't look like the case: GC is smart enough to figure out those are no longer used. Actually I'm not sure that even bootstrapList = nil does anything useful at this point.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a tough question about dependencies, but it's also true that libraries should allow some flexibility for consumers on picking up the version they want, as if libraries pull latest and greatest, there is no flexibility whatsoever. So I guess both points are valid (yours and mine), and I'm not sure which one is the best approach.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's merge this one, and probably figure our strategy on updating stuff (Planning? Separate meeting?) and set it in paper. I think we need one anyway, because right now updating stuff relies mostly on intuitive desicion rather than rational one.

golang.org/x/sync v0.11.0
google.golang.org/grpc v1.70.0
)

require (
Expand All @@ -35,7 +35,7 @@ require (
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.0 // indirect
github.com/jonboulle/clockwork v0.5.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.17.11 // indirect
Expand All @@ -46,40 +46,40 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.20.5 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.61.0 // indirect
github.com/prometheus/common v0.62.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/siderolabs/go-pointer v1.0.0 // indirect
github.com/siderolabs/go-retry v0.3.3 // indirect
github.com/siderolabs/protoenc v0.2.1 // indirect
github.com/siderolabs/protoenc v0.2.2 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/soheilhy/cmux v0.1.5 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 // indirect
github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 // indirect
go.etcd.io/bbolt v1.3.11 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.17 // indirect
go.etcd.io/etcd/client/v2 v2.305.17 // indirect
go.etcd.io/etcd/pkg/v3 v3.5.17 // indirect
go.etcd.io/etcd/raft/v3 v3.5.17 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.18 // indirect
go.etcd.io/etcd/client/v2 v2.305.18 // indirect
go.etcd.io/etcd/pkg/v3 v3.5.18 // indirect
go.etcd.io/etcd/raft/v3 v3.5.18 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect
go.opentelemetry.io/otel v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
go.opentelemetry.io/otel/metric v1.33.0 // indirect
go.opentelemetry.io/otel/sdk v1.33.0 // indirect
go.opentelemetry.io/otel/trace v1.33.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 // indirect
go.opentelemetry.io/otel v1.34.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect
go.opentelemetry.io/otel/metric v1.34.0 // indirect
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
go.opentelemetry.io/otel/trace v1.34.0 // indirect
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.32.0 // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/time v0.9.0 // indirect
google.golang.org/genproto v0.0.0-20250115164207-1a7da9e5054f // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
google.golang.org/protobuf v1.36.3 // indirect
golang.org/x/sys v0.30.0 // indirect
golang.org/x/text v0.22.0 // indirect
golang.org/x/time v0.10.0 // indirect
google.golang.org/genproto v0.0.0-20250204164813-702378808489 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250204164813-702378808489 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489 // indirect
google.golang.org/protobuf v1.36.4 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
Expand Down
Loading