Skip to content

Releases: yarpc/yarpc-go

v1.0.0-rc2

02 Dec 23:42
Compare
Choose a tag to compare
v1.0.0-rc2 Pre-release
Pre-release
  • Breaking Renamed Agent to Transport.
  • Breaking Renamed hostport.Peer's AddSubscriber/RemoveSubscriber
    to Subscribe/Unsubscribe.
  • Breaking Updated Peer.StartRequest to take a dontNotify peer.Subscriber to exempt
    from updates. Also added Peer.EndRequest function to replace the finish callback
    from Peer.StartRequest.
  • Breaking Renamed peer.List to peer.Chooser, peer.ChangeListener to peer.List
    and peer.Chooser.ChoosePeer to peer.Chooser.Choose.
  • Reduced complexity of single peer.Chooser to retain the passed in peer immediately.
  • Breaking Moved /peer/list/single.go to /peer/single/list.go.
  • Breaking Moved /peer/x/list/roundrobin.go to /peer/x/roundrobin/list.go.
  • HTTP Oneway requests will now process http status codes and returns appropriate errors.
  • Breaking Update roundrobin.New function to stop accepting an initial peer list.
    Use list.Update to initialize the peers in the list instead.
  • Breaking: Rename Channel to ClientConfig for both the dispatcher
    method and the interface. mydispatcher.Channel("myservice") becomes
    mydispatcher.ClientConfig("myservice"). The ClientConfig object can
    then used to build a new Client as before:
    NewMyThriftClient(mydispatcher.ClientConfig("myservice")).
  • A comment is added atop YAML files generated by the recorder to help
    understanding where they come from.

v1.0.0-rc1

23 Nov 18:49
Compare
Choose a tag to compare
v1.0.0-rc1 Pre-release
Pre-release
  • Breaking: Rename the Interceptor and Filter types to
    UnaryInboundMiddleware and UnaryOutboundMiddleware respectively.
  • Breaking: yarpc.Config now accepts middleware using the
    InboundMiddleware and OutboundMiddleware fields.

Before:

yarpc.Config{Interceptor: myInterceptor, Filter: myFilter}

Now:

yarpc.Config{
    InboundMiddleware: yarpc.InboundMiddleware{Unary: myInterceptor},
    OutboundMiddleware: yarpc.OutboundMiddleware{Unary: myFilter},
}
  • Add support for Oneway middleware via the OnewayInboundMiddleware and
    OnewayOutboundMiddleware interfaces.

v0.5.0

22 Nov 00:48
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release
  • Breaking: A detail of inbound transports has changed.
    Starting an inbound transport accepts a ServiceDetail, including
    the service name and a Registry. The Registry now must
    implement Choose(context.Context, transport.Request) (HandlerSpec, error)
    instead of GetHandler(service, procedure string) (HandlerSpec, error).
    Note that in the prior release, Handler became HandleSpec to
    accommodate oneway handlers.
  • Upgrade to ThriftRW 1.0.
  • TChannel: NewInbound and NewOutbound now accept any object satisfying
    the Channel interface. This should work with existing *tchannel.Channel
    objects without any changes.
  • Introduced yarpc.Inbounds to be used instead of []transport.Inbound
    when configuring a Dispatcher.
  • Add support for peer lists in HTTP outbounds.

v0.4.0

12 Nov 01:24
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

This release requires regeneration of ThriftRW code.

  • Breaking: Procedure registration must now always be done directly
    against the Dispatcher. Encoding-specific functions json.Register,
    raw.Register, and thrift.Register have been deprecated in favor of
    the Dispatcher.Register method. Existing code may be migrated by running
    the following commands on your go files.
gofmt -w -r 'raw.Register(d, h) -> d.Register(h)' $file.go
gofmt -w -r 'json.Register(d, h) -> d.Register(h)' $file.go
gofmt -w -r 'thrift.Register(d, h) -> d.Register(h)' $file.go
  • Add yarpc.InjectClients to automatically instantiate and inject clients
    into structs that need them.
  • Thrift: Add a Protocol option to change the Thrift protocol used by
    clients and servers.
  • Breaking: Remove the ability to set Baggage Headers through yarpc, use
    opentracing baggage instead
  • Breaking: Transport options have been removed completely. Encoding
    values differently based on the transport is no longer supported.
  • Breaking: Thrift requests and responses are no longer enveloped by
    default. The thrift.Enveloped option may be used to turn enveloping on
    when instantiating Thrift clients or registering handlers.
  • Breaking: Use of golang.org/x/net/context has been dropped in favor
    of the standard library's context package.
  • Add support for providing peer lists to dynamically choose downstream
    peers in HTTP Outbounds
  • Rename Handler interface to UnaryHandler and separate Outbound
    interface into Outbound and UnaryOutbound.
  • Add OnewayHandler and HandlerSpec to support oneway handlers.
    Transport inbounds can choose which RPC types to accept

v0.3.1

30 Sep 23:55
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

Fix missing canonical import path to go.uber.org/yarpc.

v0.3.0

30 Sep 17:38
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release
  • Breaking: Rename project to go.uber.org/yarpc.
  • Breaking: Switch to go.uber.org/thriftrw ~0.3 from
    github.com/thriftrw/thriftrw-go ~0.2.
  • Update opentracing-go to >= 1, < 2.

v0.2.1

28 Sep 22:31
Compare
Choose a tag to compare
v0.2.1 Pre-release
Pre-release

Loosen constraint on opentracing-go to >= 0.9, < 2.

v0.2.0

19 Sep 18:24
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release
  • Update thriftrw-go to >= 0.2, < 0.3.
  • Implemented a ThriftRW plugin. This should now be used instead of the
    ThriftRW --yarpc flag. Check the documentation of the
    thrift
    package for instructions on how to use it.
  • Adds support for OpenTracing. Pass an opentracing instance as a Tracer property of the YARPC config struct and both TChannel and HTTP transports will submit spans and propagate baggage.
  • Panics from user handlers are recovered. The panic is logged (stderr), and
    an unexpected error is returned to the client about it.
  • Thrift clients can now make requests to multiplexed Apache Thrift servers
    using the thrift.Multiplexed client option.

v0.1.1

01 Sep 19:50
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release

This release reverts the import path of the project back to github.com/yarpc/yarpc-go, away from go.uber.org/yarpc. This was done because:

  • Glide 0.11 has a bug which causes installing these packages to fail
  • thriftrw ~0.1's yarpc template is still using github.com/yarpc/yarpc-go.

Users should pin to the minor range >= 0.1.1, < 0.2.0.

If you are using Glide, this can be represented as ~0.1.1.

v0.1.0

31 Aug 21:51
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

This release represents the initial minor release of go.uber.org/yarpc.

Users should pin to the minor range, aka >= 0.1.0, < 0.2.0.

If you are using Glide, this can be represented as ~0.1.