-
-
Notifications
You must be signed in to change notification settings - Fork 511
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
break: return error from Customize request option #2267
Conversation
✅ Deploy Preview for testcontainers-go ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
0a87c6f
to
4c0c443
Compare
Draft as I need to look at the failing tests, looks like the extra error checking is now making a bunch of them fail |
Change ContainerCustomizer.Customize method to return an error so that options can handle errors gracefully instead of relying on panic or just a log entry, neither of which are user friendly. Enable errcheck linter to ensure that errors that aren't handled are reported. Run go mod tidy on k3s and weaviate to allow tests to be run using go 1.22. Run gofumpt on a few files to satisfy golangci-lint. Fix direct comparison with http.ErrServerClosed flagged by errcheck. Fixes #2266 BREAKING CHANGE: `ContainerCustomizer.Customize` now returns an error.
Fix captured loop variable in mongodb test reported by govet.
Fix formatting in test file reported by gci during linting.
Add missing error returns for implementations of CustomizeRequestOption.
4c0c443
to
3542c5c
Compare
* main: (21 commits) feat: optimizes file copies to and from containers (#2450) fix(exec): updates the `Multiplexed` opt to combine stdout and stderr (#2452) Upgrade neo4j module to use features from v0.29.1 of testcontainers-go (#2463) bug:Fix AMQPS url (#2462) chore: more compose updates in comments chore: use "docker compose" (v2) instead of "docker-compose" (v1) (#2464) chore(deps): bump github/codeql-action from 2.22.12 to 3.24.9 (#2459) refactor: Add Weaviate modules tests (#2447) feat(exitcode): Add exit code sugar method (#2342) feat: add module to support InfluxDB v1.x (#1703) feat: authenticate docker on PullImage (#2446) feat: add distribution-registry module (#2341) chore(deps): Bumping ChromaGo client version (#2402) chore(deps): bump github.com/docker/docker from 25.0.3+incompatible to 25.0.5+incompatible (#2444) feat: support passing io.Reader as ContainerFile (#2401) chore: bump ryuk to latest (#2395) feat(MustConn): Add MustConnectionString on (some) dbs (#2343) fix: typo in ci-test-go.yml (#2394) feat: support for waiting for response headers (#2349) chore(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#2392) ...
@stevenh If you agree I'm going to fetch this PR locally and start building on top of your code to make this into the next release. wdyt? |
* main: (22 commits) feat: forward host ports to a container using an SSH tunnel (#2471) Update follow_logs.md with adding missing package (#2513) fix: don't retry on permanent APIClient errors (#2506) feat: support overriding the default recreate options for compose (#2511) feat: support passing io.Reader for compose files when creating a compose instance (#2509) chore: add funding button for testcontainers (#2510) feat: support Ryuk for the compose module (#2485) chore(deps): bump golang.org/x/net in modules (minio, gcloud, weaviate, compose, qdrant, couchbase, k3s, milvus, mockserver, pulsar, kafka) (#2505) fix: fallback to URL-path when parsing auth config URL without scheme (#2488) fix(postgres): Fix the non-default dbname error (#2489) feat: Bump default postgres version (#2481) support Dolt (#2177) chore: create TLS certs in a consistent manner (#2478) chore(deps): bump idna from 3.6 to 3.7 (#2480) Elasticsearch disable CA retrieval when ssl is disabled (#2475) fix: handle dockerignore exclusions properly (#2476) chore: prepare for next minor development cycle (0.31.0) chore: use new version (v0.30.0) in modules and examples Fix url creation to handle query params when using HTTP wait strategy (#2466) fix: data race on container run (#2345) ...
Go for it! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can only comment, as my PR, but some small items to consider @mdelapenya
* main: docs: add documentation for Exec method (#2451)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me
Thank you @stevenh for bringing this issue to the table, and tackling it from the roots. We introduced a breaking change for module creators, but I think it's worth it for the sake of a more robust API design. I'll try to do great job in the release notes explaining it and proposing the upgrade path 🤞 |
Thanks for all your support @mdelapenya and finding the time to address the final issues with the PR, most appreciated! |
* main: (34 commits) break: return error from Customize request option (testcontainers#2267) fix: wrong copy paste (testcontainers#2515) docs: add documentation for Exec method (testcontainers#2451) docs: document the SSHd tunnel (testcontainers#2514) fix: enhance host configuration port binding (testcontainers#2512) feat: forward host ports to a container using an SSH tunnel (testcontainers#2471) Update follow_logs.md with adding missing package (testcontainers#2513) fix: don't retry on permanent APIClient errors (testcontainers#2506) feat: support overriding the default recreate options for compose (testcontainers#2511) feat: support passing io.Reader for compose files when creating a compose instance (testcontainers#2509) chore: add funding button for testcontainers (testcontainers#2510) feat: support Ryuk for the compose module (testcontainers#2485) chore(deps): bump golang.org/x/net in modules (minio, gcloud, weaviate, compose, qdrant, couchbase, k3s, milvus, mockserver, pulsar, kafka) (testcontainers#2505) fix: fallback to URL-path when parsing auth config URL without scheme (testcontainers#2488) fix(postgres): Fix the non-default dbname error (testcontainers#2489) feat: Bump default postgres version (testcontainers#2481) support Dolt (testcontainers#2177) chore: create TLS certs in a consistent manner (testcontainers#2478) chore(deps): bump idna from 3.6 to 3.7 (testcontainers#2480) Elasticsearch disable CA retrieval when ssl is disabled (testcontainers#2475) ...
* main: (44 commits) feat: expose JSON representation of a container with Inspect (testcontainers#2534) chore(deps): bump test-summary action to v2.3 (testcontainers#2535) chore(deps): bump jinja2 from 3.1.3 to 3.1.4 (testcontainers#2533) Update devcontainer image (testcontainers#2531) chore(influxdb): include more characters in wait for log regex (testcontainers#2532) fix(compose): avoid race conditions when caching services (testcontainers#2528) chore(deps): bump golangci/golangci-lint-action from 3.7.0 to 5.1.0 (testcontainers#2525) chore(deps): bump mkdocs-material from 8.2.7 to 9.1.21 (testcontainers#2524) chore(compose): return error in options (testcontainers#2520) chore(deps): bump github.com/compose-spec/compose-go/v2 from v2.0.0-rc8 to v2.1.0 (testcontainers#2519) chore(deps): bump github.com/containerd/containerd from 1.7.12 to 1.7.15 (testcontainers#2517) break: return error from Customize request option (testcontainers#2267) fix: wrong copy paste (testcontainers#2515) docs: add documentation for Exec method (testcontainers#2451) docs: document the SSHd tunnel (testcontainers#2514) fix: enhance host configuration port binding (testcontainers#2512) feat: forward host ports to a container using an SSH tunnel (testcontainers#2471) Update follow_logs.md with adding missing package (testcontainers#2513) fix: don't retry on permanent APIClient errors (testcontainers#2506) feat: support overriding the default recreate options for compose (testcontainers#2511) ...
What does this PR do?
Change
ContainerCustomizer.Customize
method to return an error so that options can handle errors gracefully instead of relying on panic or just a log entry, neither of which are user friendly.Enable errcheck linter to ensure that errors that aren't handled are reported.
Run
go mod tidy
onk3s
andweaviate
to allow tests to be run using go 1.22.Run
gofumpt
on a few files to satisfygolangci-lint
.Fix direct comparison with
http.ErrServerClosed
flagged by errcheck.Closes #2266
BREAKING CHANGE:
ContainerCustomizer.Customize
now returns an error.Why is it important?
Current implementation either hides errors in a log message or triggers a runtime panic, neither of which is ideal.
Related issues
Closes #2266