tus / tusd

Reference server implementation in Go of tus: the open protocol for resumable file uploads
https://tus.github.io/tusd
MIT License
2.95k stars 467 forks source link

Upgrade AWS SDK, Google Cloud SDK and go-plugin #1039

Closed dependabot[bot] closed 7 months ago

dependabot[bot] commented 7 months ago

Bumps the go group with 6 updates:

Package From To
cloud.google.com/go/storage 1.34.0 1.35.1
github.com/aws/aws-sdk-go-v2 1.22.0 1.23.4
github.com/aws/aws-sdk-go-v2/config 1.20.0 1.25.10
github.com/aws/aws-sdk-go-v2/service/s3 1.41.0 1.47.1
github.com/hashicorp/go-plugin 1.5.2 1.6.0
google.golang.org/api 0.150.0 0.152.0

Updates cloud.google.com/go/storage from 1.34.0 to 1.35.1

Release notes

Sourced from cloud.google.com/go/storage's releases.

storage: v1.35.1

1.35.1 (2023-11-09)

Bug Fixes

  • storage: Rename aux.go to auxiliary.go fixing windows build (ba23673)

storage: v1.35.0

1.35.0 (2023-11-09)

Features

  • storage: Change gRPC writes to use bi-directional streams (#8930) (3e23a36)

storage: v1.34.1

1.34.1 (2023-11-01)

Bug Fixes

  • storage: Bump google.golang.org/api to v0.149.0 (8d2ab9f)
Commits
  • e3a209d chore(main): release storage 1.35.1 (#8997)
  • 8e63c70 feat(edgenetwork): new client(s) (#8996)
  • ba23673 chore(redis/cluster): Configure clients for google-cloud-redis-cluster (#8980)
  • 57491ae feat(bigquery): add DataGovernanceType to routines (#8990)
  • a0b64f8 test(bigtable): Adding isolation to app profile (#8982)
  • 5d26f0d chore(main): release storage 1.35.0 (#8991)
  • 67fe88e chore(edgenetwork): add config to generate apiv1 (#8995)
  • 99842f0 chore(storage): update apiary dependency (#8993)
  • 880795e chore(owlbot): fix merchant inv API owlbot config (#8992)
  • 244d135 feat(bigtable): Add support for reverse scans (#8755)
  • Additional commits viewable in compare view


Updates github.com/aws/aws-sdk-go-v2 from 1.22.0 to 1.23.4

Commits


Updates github.com/aws/aws-sdk-go-v2/config from 1.20.0 to 1.25.10

Commits


Updates github.com/aws/aws-sdk-go-v2/service/s3 from 1.41.0 to 1.47.1

Commits


Updates github.com/hashicorp/go-plugin from 1.5.2 to 1.6.0

Release notes

Sourced from github.com/hashicorp/go-plugin's releases.

v1.6.0

CHANGES:

  • plugin: Plugins written in other languages can optionally start to advertise whether they support gRPC broker multiplexing. If the environment variable PLUGIN_MULTIPLEX_GRPC is set, it is safe to include a seventh field containing a boolean value in the |-separated protocol negotiation line.

ENHANCEMENTS:

  • Support muxing gRPC broker connections over a single listener [GH-288]
  • client: Configurable buffer size for reading plugin log lines [GH-265]
  • Use buf for proto generation [GH-286]
  • deps: bump golang.org/x/net to v0.17.0 [GH-285]
  • deps: bump golang.org/x/sys to v0.13.0 [GH-285]
  • deps: bump golang.org/x/text to v0.13.0 [GH-285]
Changelog

Sourced from github.com/hashicorp/go-plugin's changelog.

v1.6.0

CHANGES:

  • plugin: Plugins written in other languages can optionally start to advertise whether they support gRPC broker multiplexing. If the environment variable PLUGIN_MULTIPLEX_GRPC is set, it is safe to include a seventh field containing a boolean value in the |-separated protocol negotiation line.

ENHANCEMENTS:

  • Support muxing gRPC broker connections over a single listener [GH-288]
  • client: Configurable buffer size for reading plugin log lines [GH-265]
  • Use buf for proto generation [GH-286]
  • deps: bump golang.org/x/net to v0.17.0 [GH-285]
  • deps: bump golang.org/x/sys to v0.13.0 [GH-285]
  • deps: bump golang.org/x/text to v0.13.0 [GH-285]
Commits
  • 586d14f Changelog++ for v1.6.0 (#293)
  • 7c313e4 Configurable buffer size for reading plugin log lines (#265)
  • d16cec3 Support muxing gRPC broker connections over a single net.Conn (#288)
  • 017b758 fix: move client logic to a function that always return (#262)
  • c69982f [COMPLIANCE] Add Copyright and License Headers (#287)
  • 337cd57 Use buf for proto generation (#286)
  • 5492ff9 Bump golang.org/x/net from 0.7.0 to 0.17.0 (#285)
  • See full diff in compare view


Updates google.golang.org/api from 0.150.0 to 0.152.0

Release notes

Sourced from google.golang.org/api's releases.

v0.152.0

0.152.0 (2023-11-27)

Features

v0.151.0

0.151.0 (2023-11-16)

Features

Changelog

Sourced from google.golang.org/api's changelog.

0.152.0 (2023-11-27)

Features

0.151.0 (2023-11-16)

Features

Commits


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Acconut commented 7 months ago

The build is breaking because of some breaking changes in an AWS SDK release. See https://github.com/tus/tusd/issues/1033#issuecomment-1838310764

Acconut commented 7 months ago

On 2023-11-17, a new version of the S3 package from the AWS SDK for Go V2 was released (see https://github.com/aws/aws-sdk-go-v2/releases/tag/release-2023-11-17 and https://github.com/aws/aws-sdk-go-v2/blob/release-2023-11-17/service/s3/CHANGELOG.md#v1430-2023-11-17). Even though the new version number v1.43.0 indicates a minor releases, the AWS SDK does not follow the SemVer schema. Indeed, this release included a breaking changes to their S3 API. This breaking change was needed to fix a major fault in the entire SDK: https://github.com/aws/aws-sdk-go-v2/issues/2162

The problem is that this breaking change also affects tusd's users now. If tusd's s3store is used as a package and the user installed a more recent version of the AWS SDK, they will run into compilation error. For example, this happened to a tusd user in https://github.com/tus/tusd/issues/1033. This also happened to other users of the AWS SDK: https://github.com/aws/aws-sdk-go-v2/issues/2162#issuecomment-1817376169

What should we do now?

  1. Upgrade the AWS SDK in tusd v2: This will be a breaking change of existing users of the s3store as a package. They have to upgrade to the newer version of the AWS SDK.
  2. Do not upgrade the AWS SDK in tusd v2: This will lead to compilation issues if users installed a newer version of the AWS SDK than tusd uses.
  3. Upgrade the AWS SDK in a new major release tusd v3: Existing users will be able to continue using their integration code with tusd's s3store. However, people on tusd v2 would run into problems anyway if they want to upgrade their AWS SDK.

No option is great, but I prefer the first for now. Most people will run into issues sooner or later with the AWS SDK. If we have a release of tusd which works with the latest AWS SDK, we can tell people to just upgrade both dependencies to the most recent version and it should work.