You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Temporal Server should not be depending on deprecated libraries.
Actual Behavior
AWS SDK for Go v1
GitHub repo archived on July 31, 2025. Banner reads: "This repository was archived by the owner on Jul 31, 2025" and "This SDK has reached end-of-support... It will not receive further updates."
Official AWS blog announcement "Announcing end-of-support for AWS SDK for Go (v1) effective July 31, 2025". Maintenance mode began July 31, 2024; end-of-support July 31, 2025.
Issue #1533 - Oliver Eilhard's announcement (July 2022): "Elastic v8 won't happen. I will polish v7 if I have the time and energy, but v8 won't happen."
Steps to Reproduce the Problem
I couldn't decide between a bug and a feature. I'm went the bug direction because these are WAY out of date. So... reproduction steps are to use your eyes?
Specifications
Version: latest
Platform: all
Recommendations
AWS is easy, upgrade to v2
olivere/elastic is a little more interesting, but probably using the elastic/go-elasticsearch library is the way to go. A combination of AWS+ES would satisfy the original intent of olivere/elastic.
Other deprecated Libs
I was looking at this from a very specific direction, but @claude and I found some other dependencies it would be worth processing:
Tier 1: Archived/Deprecated Direct Dependencies
These libraries are explicitly archived or deprecated and should be migrated.
github.com/pkg/errors v0.9.1 -> stdlib errors/fmt
Status: Archived by owner (Dec 2021). Read-only, no patches.
Last release: v0.9.1 (2020)
Replacement:fmt.Errorf("context: %w", err) with errors.Is()/errors.As() (stdlib since Go 1.13)
Effort: High -- likely widespread usage across the codebase.
Status: Archived by Mitchell Hashimoto (Jul 2024). Read-only.
Replacement:github.com/go-viper/mapstructure/v2 -- the blessed fork maintained by the Viper project. API-compatible. A replace directive can be used as an interim step.
Status: v2 is actively maintained (v2.4.0, Jan 2026) with generics support and new features (distributed circuit breaker, Redis store). v1 receives no development.
These are transitive dependencies. They can't be directly fixed but should be tracked for awareness and upstream pressure.
Library
Status
Replacement
Likely Source
github.com/gogo/protobuf v1.3.2
Deprecated (marked in repo title), last release Jan 2021
google.golang.org/protobuf
ringpop-go, tchannel-go
github.com/golang/mock v1.6.0
Archived Jun 2023
go.uber.org/mock (already a direct dep)
Transitive
github.com/opentracing/opentracing-go v1.2.0
Archived May 2023, officially deprecated
go.opentelemetry.io/otel (already used)
ringpop-go
github.com/json-iterator/go v1.1.12
Archived Dec 2025
encoding/json (stdlib)
Kubernetes client libs, Uber packages
github.com/facebookgo/clock
Archived Mar 2019
jonboulle/clockwork
ringpop-go
github.com/benbjohnson/clock v1.3.5
Archived May 2023
jonboulle/clockwork
ringpop-go or fx
github.com/rcrowley/go-metrics
Archived Apr 2025
OpenTelemetry or Prometheus client
gocql
github.com/uber-common/bark v1.3.0
Unmaintained since Mar 2020
go.uber.org/zap (already used)
ringpop-go, tchannel-go
github.com/hailocab/go-hostpool
Unmaintained since Jan 2016
bitly/go-hostpool
gocql
github.com/sirupsen/logrus v1.9.3
Maintenance mode per README
log/slog or go.uber.org/zap
Multiple transitive
github.com/robfig/cron v1.2.0
Unmaintained since Jan 2021
robfig/cron/v3 (already a direct dep)
ringpop-go
Note: Many of these indirect dependencies are pulled in by temporalio/ringpop-go and temporalio/tchannel-go. As Temporal phases out Ringpop (per its README: "This project is no longer under active development"), several of these transitive issues will resolve naturally.
Expected Behavior
Temporal Server should not be depending on deprecated libraries.
Actual Behavior
AWS SDK for Go v1
olivere/elastic
Steps to Reproduce the Problem
I couldn't decide between a bug and a feature. I'm went the bug direction because these are WAY out of date. So... reproduction steps are to use your eyes?
Specifications
Recommendations
Other deprecated Libs
I was looking at this from a very specific direction, but @claude and I found some other dependencies it would be worth processing:
Tier 1: Archived/Deprecated Direct Dependencies
These libraries are explicitly archived or deprecated and should be migrated.
github.com/pkg/errorsv0.9.1 -> stdliberrors/fmtfmt.Errorf("context: %w", err)witherrors.Is()/errors.As()(stdlib since Go 1.13)github.com/mitchellh/mapstructurev1.5.0 ->go-viper/mapstructure/v2github.com/go-viper/mapstructure/v2-- the blessed fork maintained by the Viper project. API-compatible. Areplacedirective can be used as an interim step.gopkg.in/validator.v2v2.0.1 ->go-playground/validator/v10github.com/go-playground/validator/v10-- the de facto standard for Go struct validation (23,000+ importers).Tier 2: Major Version Behind (Direct Dependencies)
These dependencies have newer major versions available. The current versions receive security patches at best.
github.com/golang-jwt/jwt/v4v4.5.2 -> v5StandardClaimsremoved (useRegisteredClaims), redesigned error handling.github.com/urfave/cliv1.22.16 -> v3urfave/cli/v2. Consider consolidating directly to v3.github.com/gocql/gocqlv1.7.0 ->apache/cassandra-gocql-driver/v2gocql/gocqlhas been superseded by the Apache Foundation fork. v2.0.0 was released Oct 2025.github.com/sony/gobreakerv1.0.0 -> v2github.com/olekukonko/tablewriterv0.0.5 -> v1.1.3+SetHeader()->Header(),AppendBulk()->Bulk(), constructor uses functional options.github.com/lib/pqv1.10.9 -> remove (pgx already in use)jackc/pgx.jackc/pgx/v5is already a direct dependency.lib/pqusage can likely be fully migrated to pgx.github.com/gorilla/muxv1.8.1 ->net/httporgo-chi/chinet/http.ServeMuxnow supports method-based routing and path parameters, covering most gorilla/mux use cases.github.com/cactus/go-statsd-client/v5-> v6Tier 3: Archived/Deprecated Indirect Dependencies
These are transitive dependencies. They can't be directly fixed but should be tracked for awareness and upstream pressure.
github.com/gogo/protobufv1.3.2google.golang.org/protobufgithub.com/golang/mockv1.6.0go.uber.org/mock(already a direct dep)github.com/opentracing/opentracing-gov1.2.0go.opentelemetry.io/otel(already used)github.com/json-iterator/gov1.1.12encoding/json(stdlib)github.com/facebookgo/clockjonboulle/clockworkgithub.com/benbjohnson/clockv1.3.5jonboulle/clockworkgithub.com/rcrowley/go-metricsgithub.com/uber-common/barkv1.3.0go.uber.org/zap(already used)github.com/hailocab/go-hostpoolbitly/go-hostpoolgithub.com/sirupsen/logrusv1.9.3log/slogorgo.uber.org/zapgithub.com/robfig/cronv1.2.0robfig/cron/v3(already a direct dep)Note: Many of these indirect dependencies are pulled in by
temporalio/ringpop-goandtemporalio/tchannel-go. As Temporal phases out Ringpop (per its README: "This project is no longer under active development"), several of these transitive issues will resolve naturally.