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

Hollow out package to just be aliases/shims to the new home #126

Closed
wants to merge 62 commits into from

Conversation

jhump
Copy link
Member

@jhump jhump commented Jul 25, 2023

This draft PR is a preview of what this repo will look like after the module has been moved to a new home at connectrpc.com/otelconnect. For code that continues to refer to the prior module name, all exported vars, consts, and types are just aliases to the new module, and all exported functions are shims that call the new module.

cyinma and others added 30 commits June 9, 2022 16:27
* Initial renaming in README and Actions config

* Add CoC

* Add CONTRIBUTING.md

* Add Dependabot config

* Add release notes config

* Update Makefile to match connect-go

* Update module name in go.mod

* Rename module in buf.gen.yaml

* Use absolute paths to work around Go 1.19 breakages in CLI

* Remove OpenCensus code

* Remove OpenCensus README examples

* Update golangci-lint config

* Use golangci-lint 1.49.0
Part of our compliance work - use centralized workflow
This PR contains the little bit of code I've actually managed to write
in this repo. My intention is to transfer what little knowledge I've
accumulated to @joshcarp, who's going to actually carry this project
over the finish line.

Included here is:

* A bit of Makefile and lint configuration cleanup.
* Some structure for the top-level API. The primary entrypoint is
`otelconnect.WithTelemetry`, which returns a `connect.Option`.
* Configuration and options.
* A no-op metrics interceptor.
* A unary-only tracing interceptor, which doesn't yet have any tests.

The next thing to do is probably to add tests for unary tracing
(following [the approach used in
otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/instrumentation/google.golang.org/grpc/otelgrpc/test/grpc_test.go)),
then refactor and add streaming tracing support, then add metrics and
tests.

Co-authored-by: Joshua Carpeggiani <32605850+joshcarp@users.noreply.github.com>
We're already using GCI (since we default to using all available
linters), so
there's no need for `goimports`. We're landing the same change in Buf,
core,
and the other Go repos.
- Add tests for unarytracing
- Add unarymetrics + tests
- Add client and server streaming  + limited tests

Also adds simple benchmark to make sure that it's not too much slower:
```
goos: darwin
goarch: arm64
pkg: github.com/bufbuild/connect-opentelemetry-go
BenchmarkStreamingServerNoOptions-10                 637           1786482 ns/op
BenchmarkStreamingServerOption-10                    643           1802962 ns/op
PASS
ok      github.com/bufbuild/connect-opentelemetry-go    3.052s
```

Co-authored-by: Akshay Shah <akshay@akshayshah.org>
Bumps
[github.com/bufbuild/connect-go](https://github.com/bufbuild/connect-go)
from 1.2.0 to 1.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bufbuild/connect-go/releases">github.com/bufbuild/connect-go's
releases</a>.</em></p>
<blockquote>
<h2>v1.3.1</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Bugfixes</h3>
<ul>
<li>Don't re-wrap Any when creating ErrorDetails by <a
href="https://github.com/jhump"><code>@​jhump</code></a> in <a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/pull/409">bufbuild/connect-go#409</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/jhump"><code>@​jhump</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/pull/409">bufbuild/connect-go#409</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bufbuild/connect-go/compare/v1.3.0...v1.3.1">https://github.com/bufbuild/connect-go/compare/v1.3.0...v1.3.1</a></p>
<h2>v1.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Ensure streaming <code>http.ResponseWriters</code> implement
<code>http.Flusher</code> by <a
href="https://github.com/akshayjshah"><code>@​akshayjshah</code></a> in
<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/pull/406">bufbuild/connect-go#406</a></li>
<li>Close TLS connection when HTTP/1.1 clients call bidi methods by <a
href="https://github.com/akshayjshah"><code>@​akshayjshah</code></a> in
<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/pull/408">bufbuild/connect-go#408</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bufbuild/connect-go/compare/v1.2.0...v1.3.0">https://github.com/bufbuild/connect-go/compare/v1.2.0...v1.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bufbuild/connect-go/commit/c16c8c96105660bb00226500295476111c0b65b7"><code>c16c8c9</code></a>
add API to make it easier to work with ErrorDetail if you have/want an
Any (#...</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/7a7970478712cfa57384e5f0fd418288b9930e08"><code>7a79704</code></a>
Close conn when HTTP/1.1 clients call bidi methods (<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/issues/408">#408</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/9a4d409e6e126418f6791d5b38864625a67ef84f"><code>9a4d409</code></a>
Ensure streaming ResponseWriters implement Flush (<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/issues/406">#406</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/241768d08ff2091fd73bff6a15899634e7e11d2a"><code>241768d</code></a>
Format imports with GCI (<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/issues/407">#407</a>)</li>
<li>See full diff in <a
href="https://github.com/bufbuild/connect-go/compare/v1.2.0...v1.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/bufbuild/connect-go&package-manager=go_modules&previous-version=1.2.0&new-version=1.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates readme to add examples and matrix of metrics/tracing support
This PR makes a few changes to the README:

* It clarifies the status and support sections to highlight that this is
  currently an untagged alpha release, and that we won't have a stable
  v1 until the underlying OpenTelemetry libraries stabilize.
* It corrects goroutine handling in the README, so that the client
  request doesn't race with the server starting.
* It strips all the prometheus and zipkin initialization from the
  example. Ideally, we'd show users a realistic example, but the
  OpenTelemetry, Prometheus, and Zipkin APIs are all incredibly verbose
  and complex-looking. On balance, I think we're better off pushing that
  complexity off to the OTel documentation.
Pull in the latest connect-go and OTel SDKs.
Currently a bug where propagation only occurs in client interceptors. 
This fixes that and propagates in both server and client interceptors
Bumps
[github.com/bufbuild/connect-go](https://github.com/bufbuild/connect-go)
from 1.4.0 to 1.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bufbuild/connect-go/releases">github.com/bufbuild/connect-go's
releases</a>.</em></p>
<blockquote>
<h2>v1.4.1</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Bugfixes</h3>
<ul>
<li>Ensure server reflection can always access protobuf descriptors by
<a href="https://github.com/joshcarp"><code>@​joshcarp</code></a> in <a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/pull/418">bufbuild/connect-go#418</a></li>
<li>Don't clobber custom User-Agents by <a
href="https://github.com/akshayjshah"><code>@​akshayjshah</code></a> in
<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/pull/423">bufbuild/connect-go#423</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bufbuild/connect-go/compare/v1.4.0...v1.4.1">https://github.com/bufbuild/connect-go/compare/v1.4.0...v1.4.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bufbuild/connect-go/commit/eab7f2a485611c5a2e3f7188c18ac2c612f8ac1b"><code>eab7f2a</code></a>
Prepare for v1.4.1 (<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/issues/425">#425</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/4c75d858192be9df6cdc21b66046140e374a3bc9"><code>4c75d85</code></a>
Don't clobber custom User-Agents (<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/issues/423">#423</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/528158cc6401c1679822b10b08b984fda27a111c"><code>528158c</code></a>
Import base go file even if there are no base types required (<a
href="https://github-redirect.dependabot.com/bufbuild/connect-go/issues/418">#418</a>)</li>
<li>See full diff in <a
href="https://github.com/bufbuild/connect-go/compare/v1.4.0...v1.4.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/bufbuild/connect-go&package-manager=go_modules&previous-version=1.4.0&new-version=1.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Changes:
- Refactor, 
- Implement streaming handler tracing
- Implement streaming client tracing
- Add AttributeFilter
- Remove `Tracer()` method and `traceprovider` on config and just
initialize a single tracer for opentelemetry-connect-go
- Consolidate metrics and span recording together; don't 

### fix existing bugs:
- `success` is recorded instead of any error in `StreamingClient`
- `requests` and `responses` metrics are currently recorded in
`streamingState`, but it has been moved to the interceptors because
`requests` are `send` events for clients and `receive` events for
handlers (and vice versa for `responses`).
- both `instr.requestsPerRPC.Record` and `instr.responsesPerRPC.Record`
are currently called within `streamingstate.receive` which is incorrect
because then any `receive` event records both events when it should be
one. At least one of these calls should be in `send` depending on what
type of handler it is.
- inject trace context from unary client; I don't see any reason why a
span trace can't be handed to a unary call.
- Don't record events when err == io.EOF
- Set span events and attributes at the end of the interceptor (this
helps with readability quite a lot)

### Attribute filter
There is now an option to filter based on attribute.KeyValue + Request. 
This is enabled by passing in an option
`otelconnect.WithAttributeFilter` that takes a `Request` and
`attribute.KeyValue`. Example of filtering out `NetPeerPort` for server
metrics only:
```go
otelconnect.WithAttributeFilter(func(request *otelconnect.Request, value attribute.KeyValue) bool {
		if !request.Spec.IsClient && (value.Key == semconv.NetPeerPortKey || value.Key == semconv.NetPeerIPKey) {
			return false
		}
		return true
	})
```
Re-word README to reflect addition of streaming metrics and tracing.
… servers (#50)

This removes all references to `net.peer.ip` addresses and replaces it
with `net.peer.name` as is required for the opentelemetry specification.



> net.peer.name | string | RPC server host name. [3] | example.com |
Required
> -- | -- | -- | -- | --


> Additional attribute requirements: At least one of the following sets
of attributes is required:

>
[net.sock.peer.addr](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/span-general.md)

[net.peer.name](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/span-general.md)


Also notably this can also be set to up addresses:
> When host component is an IP address, instrumentations SHOULD NOT do a
reverse proxy lookup to obtain DNS name and SHOULD set net.peer.name to
the IP address provided in the host component.


There was also an issue in the logic that wasn't adding `NetPeerPortKey`
correctly, that's now been fixed.

Related: https://github.com/bufbuild/connect-opentelemetry-go/issues/48
…ans (#56)

All server spans are untrusted by default, the user can explicitly trust
with WithTrustRemote()
All client spans are trusted by default, WithTrustRemote() is a noop


Closes: https://github.com/bufbuild/connect-opentelemetry-go/issues/47
We want to use a PR title to enforce cleaner PR titles
- Only set SpanStatus when errors are non nil
- Leave SpanStatus unset for all non error scenarios
- Add test for Streaming 
- Update old tests to check SpanStatus

Fixes: https://github.com/bufbuild/connect-opentelemetry-go/issues/51
The only use case we have of using this package is using a number of
Interceptors instead of just the `WithTelemetry` option. It's
anticipated that if a project is using connect-opentelemetry-go the
chances are that it's probably also using other interceptors. In that
case it makes sense to expose a `New` function that returns an `type
interceptor struct` that can be plugged into the existing interceptor
plumbing.

The only difference this makes to existing projects that are using
`WithTelemetry` is that they now need to use
`connect.WithInterceptor(otelconnect.New())`

Fixes: https://github.com/bufbuild/connect-opentelemetry-go/issues/21
joshcarp and others added 25 commits February 28, 2023 12:56
connect-go v1.5.2 requires go 1.19, this updates both
Prefix OTel unit constants to reduce the chances of unintentional
shadowing later on.
#85)

I am about to release `v0.1.0` of this repo, so this removes references
to `untagged alpha release`
Add ecosystem part in README.md
Changes from `2023` to `2022-2023`
Bumps
[google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go)
from 1.28.1 to 1.29.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's
releases</a>.</em></p>
<blockquote>
<h2>v1.29.0</h2>
<ul>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.29-overview">Overview</a></li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.29-notable-changes">Notable
changes</a></li>
</ul>
<h2>Overview <!-- raw HTML omitted --><!-- raw HTML omitted --></h2>
<p>This version introduces a new package <code>protodelim</code> to
marshal and unmarshal size-delimited messages.
It also bringt the implementation up to date with the latest protobuf
features.</p>
<h2>Notable changes <!-- raw HTML omitted --><!-- raw HTML omitted
--></h2>
<p><strong>New Features.</strong></p>
<ul>
<li><a href="https://go.dev/cl/419254">CL/419254</a>: encoding: add
protodelim package</li>
<li><a href="https://go.dev/cl/450775">CL/450775</a>:
reflect/protoreflect: add Value.Equal method</li>
<li><a href="https://go.dev/cl/462315">CL/462315</a>: cmd/protoc-gen-go:
make deprecated messages more descriptive</li>
<li><a href="https://go.dev/cl/473015">CL/473015</a>:
encoding/prototext: allow whitespace and comments between minus sign and
number in negative numeric literal</li>
</ul>
<p><strong>Alignment with protobuf</strong></p>
<ul>
<li><a href="https://go.dev/cl/426054">CL/426054</a>:
types/descriptorpb: update *.pb.go to use latest protoc release,
21.5</li>
<li><a href="https://go.dev/cl/425554">CL/425554</a>:
encoding/protojson: fix parsing of google.protobuf.Timestamp</li>
<li><a href="https://go.dev/cl/461238">CL/461238</a>: protobuf: remove
the check for reserved field numbers</li>
<li><a href="https://go.dev/cl/469255">CL/469255</a>:
types/descriptorpb: regenerate using latest protobuf v22.0 release</li>
<li><a href="https://go.dev/cl/472696">CL/472696</a>: cmd/protoc-gen-go:
support protobuf retention feature</li>
</ul>
<p><strong>Documentation improvements:</strong></p>
<ul>
<li><a href="https://go.dev/cl/464275">CL/464275</a>: proto: document
Equal behavior of invalid messages</li>
<li><a href="https://go.dev/cl/466375">CL/466375</a>: all: update links
to Protocol Buffer documentation</li>
</ul>
<p><strong>Minor performance improvements</strong></p>
<ul>
<li><a href="https://go.dev/cl/460215">CL/460215</a>:
types/known/structpb: preallocate map in AsMap</li>
<li><a href="https://go.dev/cl/465115">CL/465115</a>: internal/strs:
avoid unnecessary allocations in Builder</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/484b9f31ec32608d11edb577c307741f364e3cff"><code>484b9f3</code></a>
all: release v1.29.0</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/eba8b0975f4efc219baabc1e0e13df28a6e1ad28"><code>eba8b09</code></a>
cmd/protoc-gen-go: support protobuf retention feature</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/fcf5f6cb72978812ac36085183b5c52701c069cb"><code>fcf5f6c</code></a>
encoding/prototext: allow whitespace and comments between minus sign and
numb...</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/bc1253ad37431ee26876db47cd8207cdec81993c"><code>bc1253a</code></a>
types/descriptorpb: regenerate using latest protobuf v22.0 release</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/246af0d153cae8ef4e2915a8d212167ad0751985"><code>246af0d</code></a>
internal,reflect: correct typos</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/49eaa78c6c9cc759b5ac50b64249247f393e9bdd"><code>49eaa78</code></a>
all: update links to Protocol Buffer documentation</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/e831c33179b55b753630e0555cdc32b83b81e954"><code>e831c33</code></a>
proto: document Equal behavior of invalid messages</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/358fe40267afd0cb5380d132cc93ddcbed2beb44"><code>358fe40</code></a>
internal/strs: avoid unnecessary allocations in Builder</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/0430d694e04ae06ca14b27b50e83674d07e2e662"><code>0430d69</code></a>
internal/impl: remove the unreachable line of code</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/a9481185b34db2fb2f5c90fcf7446be1554e42f7"><code>a948118</code></a>
cmd/protoc-gen-go: make deprecated messages more descriptive</li>
<li>Additional commits viewable in <a
href="https://github.com/protocolbuffers/protobuf-go/compare/v1.28.1...v1.29.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.28.1&new-version=1.29.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: joshcarp <jcarpeggiani@buf.build>
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to
4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-go/releases">actions/setup-go's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<p>In scope of release we enable cache by default. The action won’t
throw an error if the cache can’t be restored or saved. The action will
throw a warning message but it won’t stop a build process. The cache can
be disabled by specifying <code>cache: false</code>.</p>
<pre lang="yaml"><code>steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-go@v4
    with:
      go-version: ‘1.19’
  - run: go run hello.go
</code></pre>
<p>Besides, we introduce such changes as</p>
<ul>
<li><a
href="https://redirect.github.com/actions/setup-go/pull/305">Allow to
use only GOCACHE for cache</a></li>
<li><a href="https://redirect.github.com/actions/setup-go/pull/315">Bump
json5 from 2.2.1 to 2.2.3</a></li>
<li><a href="https://redirect.github.com/actions/setup-go/pull/323">Use
proper version for primary key in cache</a></li>
<li><a
href="https://redirect.github.com/actions/setup-go/pull/351">Always add
Go bin to the PATH</a></li>
<li><a href="https://redirect.github.com/actions/setup-go/pull/350">Add
step warning if go-version input is empty</a></li>
</ul>
<h2>Add support for stable and oldstable aliases</h2>
<p>In scope of this release we introduce aliases for the
<code>go-version</code> input. The <code>stable</code> alias instals the
latest stable version of Go. The <code>oldstable</code> alias installs
previous latest minor release (the stable is 1.19.x -&gt; the oldstable
is 1.18.x).</p>
<h3>Stable</h3>
<pre lang="yaml"><code>steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-go@v3
    with:
      go-version: 'stable'
  - run: go run hello.go
</code></pre>
<h3>OldStable</h3>
<pre lang="yaml"><code>steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-go@v3
    with:
      go-version: 'oldstable'
  - run: go run hello.go
</code></pre>
<h2>Add support for go.work and pass the token input through on
GHES</h2>
<p>In scope of this release we added <a
href="https://redirect.github.com/actions/setup-go/pull/283">support for
go.work file to pass it in go-version-file input</a>.</p>
<pre lang="yaml"><code>steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-go@v3
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-go/commit/4d34df0c2316fe8122ab82dc22947d607c0c91f9"><code>4d34df0</code></a>
Update configuration files (<a
href="https://redirect.github.com/actions/setup-go/issues/348">#348</a>)</li>
<li><a
href="https://github.com/actions/setup-go/commit/fdc0d672a12b8fc05ef4c549c3fd5b0f03ebeb4c"><code>fdc0d67</code></a>
Add Go bin if go-version input is empty (<a
href="https://redirect.github.com/actions/setup-go/issues/351">#351</a>)</li>
<li><a
href="https://github.com/actions/setup-go/commit/ebfdf6ac95bce0e7e743a60aba7adf59b400885b"><code>ebfdf6a</code></a>
add warning if go-version is empty (<a
href="https://redirect.github.com/actions/setup-go/issues/350">#350</a>)</li>
<li><a
href="https://github.com/actions/setup-go/commit/b27d76912e7cb72b7262b5be2ec903b6cfaf358a"><code>b27d769</code></a>
fix lockfileVersion (<a
href="https://redirect.github.com/actions/setup-go/issues/349">#349</a>)</li>
<li><a
href="https://github.com/actions/setup-go/commit/c51a7207680f1bee06f4a751214aab70667f9e25"><code>c51a720</code></a>
Enable caching by default with default input (<a
href="https://redirect.github.com/actions/setup-go/issues/332">#332</a>)</li>
<li><a
href="https://github.com/actions/setup-go/commit/6b848af622919e18822928df24a57044dc6ea9ab"><code>6b848af</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-go/issues/343">#343</a>
from akv-platform/reusable-workflow</li>
<li><a
href="https://github.com/actions/setup-go/commit/12741cc20952a981105f1dc8366d69f1d24ed472"><code>12741cc</code></a>
Format update-config-files.yml</li>
<li><a
href="https://github.com/actions/setup-go/commit/7a77a6aab66a15178e313f5908f5ed9b8500894c"><code>7a77a6a</code></a>
Merge branch 'main' into reusable-workflow</li>
<li><a
href="https://github.com/actions/setup-go/commit/42a0cc8e1491c14a0e9486c3a895d2124f51af1a"><code>42a0cc8</code></a>
Add update-config-files.yml</li>
<li><a
href="https://github.com/actions/setup-go/commit/7406d654ad8f517886f6c77135494c2b99355381"><code>7406d65</code></a>
Add and configure ESLint and update configuration for Prettier (<a
href="https://redirect.github.com/actions/setup-go/issues/341">#341</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-go/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-go&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go)
from 1.29.0 to 1.30.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/protocolbuffers/protobuf-go/releases">google.golang.org/protobuf's
releases</a>.</em></p>
<blockquote>
<h2>v1.30.0</h2>
<ul>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.30.0-notable-changes">Notable
changes</a></li>
</ul>
<p><strong>Announcement</strong>
In the previous two releases, v1.29.0 and v1.29.1, we associated the
tags with the wrong commits and thus the tags do not reference any
commit in this repository. This tag, v1.30.0, refers to an existing
commit again. Sorry for the inconvenience.</p>
<h2>Notable changes <!-- raw HTML omitted --><!-- raw HTML omitted
--></h2>
<p><strong>New Features</strong></p>
<ul>
<li><a href="https://go.dev/cl/449576">CL/449576</a>: protoadapt: helper
functions to convert v1 or v2 message to either v1 or v2 message.</li>
</ul>
<h2>v1.29.1</h2>
<ul>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/blob/HEAD/#v1.29.1-notable-changes">Notable
changes</a></li>
</ul>
<h2>Notable changes <!-- raw HTML omitted --><!-- raw HTML omitted
--></h2>
<p><strong>Bug fixes</strong></p>
<ul>
<li><a href="https://go.dev/cl/475995">CL/475995</a>:
internal/encoding/text: fix parsing of incomplete numbers</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/f221882bfb484564f1714ae05f197dea2c76898d"><code>f221882</code></a>
all: release v1.30.0</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/e344383da66ac9cf11000f824674793a77fc7d7e"><code>e344383</code></a>
protoadapt: helper functions to convert v1 or v2 message to either v1 or
v2 m...</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/32efccd1582255f0ef48bcc3942484e81985c76b"><code>32efccd</code></a>
all: start v1.29.1-devel</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/771d8c7a1eefbd21bf7db08ec6967fed9ff9d704"><code>771d8c7</code></a>
all: release v1.29.1</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/edaf511a7a37a90db2727b600d699e1e8d2840b4"><code>edaf511</code></a>
internal/encoding/text: fix parsing of incomplete numbers</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/fe5bc5404151983756ef8980016a7d59bd63bb7e"><code>fe5bc54</code></a>
all: start v1.29.0-devel</li>
<li><a
href="https://github.com/protocolbuffers/protobuf-go/commit/d3c9826520c7d6061812d1d94ad81f871792ea8c"><code>d3c9826</code></a>
all: release v1.29.0</li>
<li>See full diff in <a
href="https://github.com/protocolbuffers/protobuf-go/compare/v1.29.0...v1.30.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/protobuf&package-manager=go_modules&previous-version=1.29.0&new-version=1.30.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: joshcarp <jcarpeggiani@buf.build>
Co-authored-by: Joshua Carpeggiani <32605850+joshcarp@users.noreply.github.com>
Amend the README to include common gotchas (WithTrustRemote and
cardinality), and add a link to the docs on connect.build.

Addresses the comments on #91.
- Updates deps
- Fixes test cases
The go opentelemetry metrics api is now stable
Upgrades from `v1.19.0` to `v1.20.0`
Bumps
[github.com/bufbuild/connect-go](https://github.com/bufbuild/connect-go)
from 1.7.0 to 1.8.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bufbuild/connect-go/releases">github.com/bufbuild/connect-go's
releases</a>.</em></p>
<blockquote>
<h2>v1.8.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Expose HTTP method of unary requests (see <a
href="https://connect.build/docs/go/get-requests-and-caching#distinguishing-get-requests">documentation</a>)
by <a href="https://github.com/jhump"><code>@​jhump</code></a> and <a
href="https://github.com/akshayjshah"><code>@​akshayjshah</code></a> in
<a
href="https://redirect.github.com/bufbuild/connect-go/pull/502">bufbuild/connect-go#502</a>
and <a
href="https://redirect.github.com/bufbuild/connect-go/pull/509">bufbuild/connect-go#509</a></li>
<li>Implement <code>fmt.Stringer</code> interface for StreamType to
improve debug logging by <a
href="https://github.com/svrana"><code>@​svrana</code></a> in <a
href="https://redirect.github.com/bufbuild/connect-go/pull/495">bufbuild/connect-go#495</a></li>
</ul>
<h3>Bugfixes</h3>
<ul>
<li>Fix documentation comments to use correct identifier name by <a
href="https://github.com/cuishuang"><code>@​cuishuang</code></a> in <a
href="https://redirect.github.com/bufbuild/connect-go/pull/498">bufbuild/connect-go#498</a></li>
<li>Fix Makefile quotes to handle paths with spaces by <a
href="https://github.com/bufdev"><code>@​bufdev</code></a> in <a
href="https://redirect.github.com/bufbuild/connect-go/pull/508">bufbuild/connect-go#508</a></li>
<li>Always close response body in <code>CloseRead</code> by <a
href="https://github.com/pkwarren"><code>@​pkwarren</code></a> in <a
href="https://redirect.github.com/bufbuild/connect-go/pull/515">bufbuild/connect-go#515</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/cuishuang"><code>@​cuishuang</code></a>
made their first contribution in <a
href="https://redirect.github.com/bufbuild/connect-go/pull/498">bufbuild/connect-go#498</a></li>
<li><a href="https://github.com/svrana"><code>@​svrana</code></a> made
their first contribution in <a
href="https://redirect.github.com/bufbuild/connect-go/pull/495">bufbuild/connect-go#495</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bufbuild/connect-go/compare/v1.7.0...v1.8.0">https://github.com/bufbuild/connect-go/compare/v1.7.0...v1.8.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bufbuild/connect-go/commit/728fde3b192d9e163186827d75912f6c284fb46f"><code>728fde3</code></a>
Prepare for v1.8.0 (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/516">#516</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/43a6f8347af7f7a2e12b55f8713dd16a3ba9c926"><code>43a6f83</code></a>
Always close response body in CloseRead (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/515">#515</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/b16fbd1009dabe7bfbb94d8d9b36f750ade60b6d"><code>b16fbd1</code></a>
Expose HTTP method in unary handlers (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/509">#509</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/17eb88dfe4c3112c494f2233ccf67d61040da5be"><code>17eb88d</code></a>
Expose request method of unary requests to clients and server handlers
(<a
href="https://redirect.github.com/bufbuild/connect-go/issues/502">#502</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/d82d4724bc78d38019b8e4eee164adcd58f9e604"><code>d82d472</code></a>
Fix Makefile quotes (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/508">#508</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/555c1c027642e50b629b79fd718d058d2d6cacfa"><code>555c1c0</code></a>
Upgrade tool dependencies (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/505">#505</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/783d36764d77aeb03afe33586a3a8de24522e101"><code>783d367</code></a>
Move asMaxBytesError to error.go (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/504">#504</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/acc59cbed359a3f4b014c56dcbbabf59d6c0aba6"><code>acc59cb</code></a>
Implement fmt.Stringer interface for StreamType (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/495">#495</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/e04e4bd94c1d91031cdb2de84a50be3c003b275f"><code>e04e4bd</code></a>
Prefix comments with correct identifier name (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/498">#498</a>)</li>
<li><a
href="https://github.com/bufbuild/connect-go/commit/b41ccea0660379ef573466ad7f3698a1ccb50ec7"><code>b41ccea</code></a>
Back to development (<a
href="https://redirect.github.com/bufbuild/connect-go/issues/497">#497</a>)</li>
<li>See full diff in <a
href="https://github.com/bufbuild/connect-go/compare/v1.7.0...v1.8.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/bufbuild/connect-go&package-manager=go_modules&previous-version=1.7.0&new-version=1.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify)
from 1.8.3 to 1.8.4.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/stretchr/testify/commit/f97607b89807936ac4ff96748d766cf4b9711f78"><code>f97607b</code></a>
Create GitHub release when new release tag is pushed (<a
href="https://redirect.github.com/stretchr/testify/issues/1354">#1354</a>)</li>
<li>See full diff in <a
href="https://github.com/stretchr/testify/compare/v1.8.3...v1.8.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/stretchr/testify&package-manager=go_modules&previous-version=1.8.3&new-version=1.8.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
For Connect RPCs that use GET and a "304 Not Modified" status
is returned, the metric will use the `http.status_code` attribute
with a value of 304, instead of an `rpc.connect.error_code`
attribute. (It would previously label the metric with an error
code of "unknown", which is misleading.)
If the RPC is using the Connect protocol and returns a not modified
error, we shouldn't set the span status to error. Follow-up to #120.

---------

Co-authored-by: Josh Humphries <2035234+jhump@users.noreply.github.com>
Add `connect` and `pingv1` import aliases for packages whose name
doesn't match.

Signed-off-by: Koichi Shiraishi <zchee.io@gmail.com>
- Changes name of option from `OmitRPCEvents` to `OmitTraceEvents` to be
more clear
- Omits trace events for streaming too
- Adds tests
Closes: #92

---------

Co-authored-by: Akshay Shah <akshay@akshayshah.org>
@jhump
Copy link
Member Author

jhump commented Jul 27, 2023

Go does not allow creating an alias for a generic type. That means we can't do this same thing for the connect-go repo. And since this repo depends on that, we can't really do it here either.

@jhump jhump closed this Jul 27, 2023
@smallsamantha smallsamantha deleted the jh/aliases branch September 18, 2023 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants