-
Notifications
You must be signed in to change notification settings - Fork 813
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
blob: convert gocloud errors in Open()
into appropriate fs errors
#3443
Conversation
- wraps gocloud NotFound and PermissionDenied errors around their `io/fs` counterparts - does not perform wrapping for other gocloud errors as they can either not occur or are ambiguous in this context
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
@peczenyj it seems you've had some luck getting things merged into this repo. Do you have any tips or tricks on how to get this one reviewed? |
Please be patient. |
I had no idea, to be honest. I send the first pull request without any expectations based on my previous attempts to contribute to other google projects. Somehow this project is different, maybe it is more close to the open source community. Is there any mailing list where you can expose your problem and mention that you have an awesome pull request for that? If the maintainers do not react with the necessary speed, perhaps you should consider fork the project - if the license allow - and if your fork get some attention maybe it change things (like archive this repo and point yours as the replacement - why not?) Sometimes I just start pull requests because code can be more direct than discussions. But not all maintainers like this approach, since I can suggest something undesirable or using the wrong design. It can end in frustration. But I try not to be sentimental. When issues or pull requests have no feedback for some time it give the wrong impression that they just don’t care. But in fact they can be very busy. In fact I saw, on this project, many small opportunities to contribute and things to improve, etc. I would love continue to send PRs but first I’d to see what I just did being released. maybe one day I can have a more substantial role, the I can do more than just write random thoughts |
Or we can just ping @vangent and try to bribe him and with some beers |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3443 +/- ##
==========================================
- Coverage 73.40% 73.37% -0.03%
==========================================
Files 113 113
Lines 14948 14954 +6
==========================================
Hits 10973 10973
- Misses 3201 3207 +6
Partials 774 774 ☔ View full report in Codecov by Sentry. |
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [gocloud.dev](https://redirect.github.com/google/go-cloud) | `v0.37.0` -> `v0.39.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/gocloud.dev/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/gocloud.dev/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/gocloud.dev/v0.37.0/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/gocloud.dev/v0.37.0/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>google/go-cloud (gocloud.dev)</summary> ### [`v0.39.0`](https://redirect.github.com/google/go-cloud/releases/tag/v0.39.0) [Compare Source](https://redirect.github.com/google/go-cloud/compare/v0.38.0...v0.39.0) #### BREAKING CHANGE (AWS only, V1 vs V2 SDK) Context: AWS has [announced maintenance mode](https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-go-v1-on-july-31-2025/) for the Go V1 SDK. Go CDK has changed the default SDK for URLs across all modules except `docstore/awsdynamodb` to be V2 (previously you needed to add `awssdk=v2` to the URL to get V2). Most URLs should continue to work, but in some cases you may need to add `awssdk=v1` to force V1 explicitly. Also, concrete type constructors (e.g., `OpenBucket`) for V1 (again, except `docstore/awsdynamodb`) have been marked deprecated; please migrate to using the V2 versions (e.g., `OpenBucketV2`). Our tentative plan is to remove support for V1 in early 2025; please [file a bug](https://redirect.github.com/google/go-cloud/issues/new/choose) if you have concerns about that. #### What's Changed - pubsub: Make batch request results independent by [@​mitsos1os](https://redirect.github.com/mitsos1os) in [https://github.com/google/go-cloud/pull/3457](https://redirect.github.com/google/go-cloud/pull/3457) - docstore/all: Add support for boolean filter by [@​ybourgery](https://redirect.github.com/ybourgery) in [https://github.com/google/go-cloud/pull/3464](https://redirect.github.com/google/go-cloud/pull/3464) - aws/all: Mark V1 constructors deprecated. by [@​vangent](https://redirect.github.com/vangent) in [https://github.com/google/go-cloud/pull/3466](https://redirect.github.com/google/go-cloud/pull/3466) - aws/all: Change the default for AWS URLs from V1 to V2. by [@​vangent](https://redirect.github.com/vangent) in [https://github.com/google/go-cloud/pull/3465](https://redirect.github.com/google/go-cloud/pull/3465) - all: update to go version 1.23 by [@​vangent](https://redirect.github.com/vangent) in [https://github.com/google/go-cloud/pull/3467](https://redirect.github.com/google/go-cloud/pull/3467) #### New Contributors - [@​mitsos1os](https://redirect.github.com/mitsos1os) made their first contribution in [https://github.com/google/go-cloud/pull/3457](https://redirect.github.com/google/go-cloud/pull/3457) - [@​dependabot](https://redirect.github.com/dependabot) made their first contribution in [https://github.com/google/go-cloud/pull/3448](https://redirect.github.com/google/go-cloud/pull/3448) **Full Changelog**: google/go-cloud@v0.38.0...v0.39.0 ### [`v0.38.0`](https://redirect.github.com/google/go-cloud/releases/tag/v0.38.0) [Compare Source](https://redirect.github.com/google/go-cloud/compare/v0.37.0...v0.38.0) **blob** - **all**: Fix panics if reader recreation fails after Seek by [@​vangent](https://redirect.github.com/vangent) in [https://github.com/google/go-cloud/pull/3425](https://redirect.github.com/google/go-cloud/pull/3425) - **all**: Convert errors in `Open()` into appropriate fs errors by [@​milescrabill](https://redirect.github.com/milescrabill) in [https://github.com/google/go-cloud/pull/3443](https://redirect.github.com/google/go-cloud/pull/3443) - **s3blob**: Fix Copy to work with keys that need escaping by [@​vangent](https://redirect.github.com/vangent) in [https://github.com/google/go-cloud/pull/3403](https://redirect.github.com/google/go-cloud/pull/3403) - **azureblob**: Do not panic if Content-Length and Content-Range are missing by [@​chancez](https://redirect.github.com/chancez) in [https://github.com/google/go-cloud/pull/3445](https://redirect.github.com/google/go-cloud/pull/3445) - **fileblob**: Allow customization of the FileMode by [@​vangent](https://redirect.github.com/vangent) in [https://github.com/google/go-cloud/pull/3426](https://redirect.github.com/google/go-cloud/pull/3426) **pubsub** - **awssnssqs**: Add support for setting FIFO message metadata by [@​bartventer](https://redirect.github.com/bartventer) in [https://github.com/google/go-cloud/pull/3435](https://redirect.github.com/google/go-cloud/pull/3435) - **kafkapubsub**: Configuring key_name when OpenTopicURL by [@​ssetin](https://redirect.github.com/ssetin) in [https://github.com/google/go-cloud/pull/3404](https://redirect.github.com/google/go-cloud/pull/3404) - **rabbitpubsub**: Add query string set the qos prefetch count by [@​peczenyj](https://redirect.github.com/peczenyj) in [https://github.com/google/go-cloud/pull/3431](https://redirect.github.com/google/go-cloud/pull/3431) - **rabbitpubsub**: Add query string to set the routing key from metadata by [@​peczenyj](https://redirect.github.com/peczenyj) in [https://github.com/google/go-cloud/pull/3433](https://redirect.github.com/google/go-cloud/pull/3433) - **rabbitpubsub**: Wrap pubsub rabbitmq errors by [@​peczenyj](https://redirect.github.com/peczenyj) in [https://github.com/google/go-cloud/pull/3437](https://redirect.github.com/google/go-cloud/pull/3437) **docstore** - **all**: Fix offset handling and extend test coverage by [@​bartventer](https://redirect.github.com/bartventer) in [https://github.com/google/go-cloud/pull/3409](https://redirect.github.com/google/go-cloud/pull/3409) - **awsdynamodb**: Ensure Next returns EOF when no more items by [@​bartventer](https://redirect.github.com/bartventer) in [https://github.com/google/go-cloud/pull/3406](https://redirect.github.com/google/go-cloud/pull/3406) - **mongodocstore**: Update Mongo dialer when MONGO_SERVER_URL rotates by [@​concaf](https://redirect.github.com/concaf) in [https://github.com/google/go-cloud/pull/3429](https://redirect.github.com/google/go-cloud/pull/3429) #### New Contributors - [@​ssetin](https://redirect.github.com/ssetin) made their first contribution in [https://github.com/google/go-cloud/pull/3404](https://redirect.github.com/google/go-cloud/pull/3404) - [@​concaf](https://redirect.github.com/concaf) made their first contribution in [https://github.com/google/go-cloud/pull/3429](https://redirect.github.com/google/go-cloud/pull/3429) - [@​peczenyj](https://redirect.github.com/peczenyj) made their first contribution in [https://github.com/google/go-cloud/pull/3431](https://redirect.github.com/google/go-cloud/pull/3431) - [@​chancez](https://redirect.github.com/chancez) made their first contribution in [https://github.com/google/go-cloud/pull/3445](https://redirect.github.com/google/go-cloud/pull/3445) - [@​milescrabill](https://redirect.github.com/milescrabill) made their first contribution in [https://github.com/google/go-cloud/pull/3443](https://redirect.github.com/google/go-cloud/pull/3443) - [@​samlaf](https://redirect.github.com/samlaf) made their first contribution in [https://github.com/google/go-cloud/pull/3450](https://redirect.github.com/google/go-cloud/pull/3450) **Full Changelog**: google/go-cloud@v0.37.0...v0.38.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-feature/flagd). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Motivation:
http.ServeFileFS()
useserrors.Is()
to match onfs.ErrNotExist
andfs.ErrPermission
errors and return corresponding HTTP status codes.fs.PathError
which do not wrap the underlyingfs
errors, and which are not handled byhttp.ServeFileFS()
's error handling.fs.PathError
s results inhttp.ServeFileFS()
serving Internal Server Errors instead of Not Found or Permission Denied errors.Fix:
Open()
around theirio/fs
counterparts