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

fix(deps): update module github.com/serviceweaver/weaver to v0.24.6 #50

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 25, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/ServiceWeaver/weaver v0.17.0 -> v0.24.6 age adoption passing confidence

Release Notes

ServiceWeaver/weaver (github.com/ServiceWeaver/weaver)

v0.24.6

Compare Source

v0.24.5

Compare Source

v0.24.4

Compare Source

v0.24.3

Compare Source

What's Changed

  • use components for calls between envelope and weavelet (this allows support for grpc + multiple languages)
  • bug fixes based on customer feedback
  • improve documentation
  • improve the health mechanism
  • new blog posts
  • add shutdown method per component
  • reduce the number of buckets for metrics

v0.24.2

Compare Source

v0.24.1

Compare Source

v0.23.2

Compare Source

v0.23.1

Compare Source

v0.23.0

Compare Source

v0.22.0

Compare Source

To use v0.22 of Service Weaver, run the following commands in the root of your application's module:

go get github.com/ServiceWeaver/[email protected]                # Update the weaver module.
go install github.com/ServiceWeaver/weaver/cmd/[email protected] # Update the weaver command line tool.

Runtime Graph API Improvements

A Service Weaver application is composed of a directed acyclic graph of components. When you build a Service Weaver application, the component call graph is embedded into the binary itself. In v0.22.0, we improved the API of the bin.ReadComponentGraph function, which extracts and returns the component call graph. Now, bin.ReadComponentGraph returns a fully-fledged graph data structure, which has some helpful graph algorithms that let you do things like iterate over the graph in topological order.

Example Chat App Improvements

The chat app is an example Service Weaver application that is backed by a MySQL database. v0.22.0 includes instructions on how to run the application locally against a MySQL instance running in Docker, and how to run the application on Kubernetes against a MySQL instance running in the Kubernetes cluster. If you want to learn how to write and deploy a database-backed Service Weaver application, the chat app is a great place to look.

Bank of Anthos Example App

We ported Bank of Anthos to Service Weaver.

Bug Fixes

New Contributors

Full Changelog: ServiceWeaver/weaver@v0.21.2...v0.22.0

v0.21.2

Compare Source

v0.21.1

Compare Source

v0.21.0: v0.21

Compare Source

To use v0.21 of Service Weaver, run the following commands in the root of your application's module:

go get github.com/ServiceWeaver/[email protected]                # Update the weaver module.
go install github.com/ServiceWeaver/weaver/cmd/[email protected] # Update the weaver command line tool.

Automatic Method Retries

Components are the core abstraction of Service Weaver. Two components can be co-located in the same process or distributed across multiple machines. When a component calls a method on a co-located component, the method call is performed as a regular Go method call. When a component calls a method on a component hosted on another machine, the method call is executed as a remote procedure call (RPC).

The network is not reliable, so RPCs can sometimes fail to execute properly. Starting in v0.21, the Service Weaver runtime automatically retries these RPCs for you. The retries are done with jittered exponential back-off, and retries are stopped when the provided context.Context is cancelled. Note that a method call that executes successfully and returns a non-nil error is not retried. Only method calls that fail to execute properly (e.g., because of a network failure) are retried.

Note that in some cases, it may not be safe to arbitrarily retry a method call. In these cases, you can mark a method as NotRetriable, and Service Weaver will not retry it for you.

type Foo interface {
    A(context.Context) error
}

var _ weaver.NotRetriable = Foo.A

weavertests will also spuriously retry method calls to catch any cases where you forget to mark a non-retriable method as non-retriable.

See https://github.com/ServiceWeaver/weaver/pull/570 and https://github.com/ServiceWeaver/weaver/pull/575 for details.

Prettier Logs

v0.21 introduces some small tweaks to our logging pretty printer. See https://github.com/ServiceWeaver/weaver/pull/577, https://github.com/ServiceWeaver/weaver/pull/578, and https://github.com/ServiceWeaver/weaver/pull/579 for details.

pretty_logs

Bug Fixes

New Contributors

Full Changelog: ServiceWeaver/weaver@v0.20.0...v0.21.0

v0.20.0

Compare Source

To use v0.20.0 of Service Weaver, run the following commands in the root of your application's module:

go get github.com/ServiceWeaver/[email protected]                # Update the weaver module.
go install github.com/ServiceWeaver/weaver/cmd/[email protected] # Update the weaver command line tool.

Requiring Go 1.21

Service Weaver now requires Go 1.21. This allows us to use the new slog package. See https://github.com/ServiceWeaver/weaver/pull/520 for details.

Deployer API Changes

We made some small simplifications to the deployer API in v0.20.0. The SingleProcess field was removed from EnvelopeInfo (https://github.com/ServiceWeaver/weaver/pull/521), and the Pid field was removed from WeaveletInfo (https://github.com/ServiceWeaver/weaver/pull/522). The InternalPort field in EnvelopeInfo was replaced with InternalAddress (https://github.com/ServiceWeaver/weaver/pull/526). These changes shouldn't affect Service Weaver applications. Only deployer implementations need to be updated.

Codegen Changes

weaver generate now generates new reflection-based stubs (https://github.com/ServiceWeaver/weaver/pull/481). These stubs will be used in our ongoing work on implementing deterministic simulation.

Bug Fixes

New Contributors

Full Changelog: ServiceWeaver/weaver@v0.19.0...v0.20.0

v0.19.0

Compare Source

To use v0.19.0 of Service Weaver, run the following commands in the root of your application's module:

go get github.com/ServiceWeaver/[email protected]                # Update the weaver module.
go install github.com/ServiceWeaver/weaver/cmd/[email protected] # Update the weaver command line tool.

Logging

Service Weaver v0.19.0 introduces a small breaking change to the logging API. The Logger method on weaver.Implements now has a context.Context argument. Here's an example:

type Adder interface {
    Add(context.Context, int, int) (int, error) 
}

type adder struct {
    weaver.Implements[Adder]
}

func (a *adder) Add(ctx context.Context, x, y int) (int, error) {
    // NOTE that the Logger method now takes a context. 
    a.Logger(ctx).Debug("Add", "x", x, "y", y) 
    return x + y, nil
}

The logger returned by Logger now includes labels for any OpenTelemetry trace and span ids that are stored in the provided context. This allows you to correlate logs and traces, which makes debugging much easier. We also slightly changed how logs are pretty printed:

Before After
before

See https://github.com/ServiceWeaver/weaver/pull/495, https://github.com/ServiceWeaver/weaver/pull/496, and https://github.com/ServiceWeaver/weaver/pull/512 for details.

RPC Health Checking

We added more sophisticated health checking to our RPC implementation, which is used to remotely execute component method calls. With this change, fewer method calls should fail when a component replica fails. See https://github.com/ServiceWeaver/weaver/pull/498 for details.

Validations

We try to detect invalid Service Weaver applications at compile time (see https://serviceweaver.dev/blog/weaver_generate.html, for example), but some checks have to be done at runtime. We have introduced a number of new validation checks in v0.19.0. Specifically, we check that every component has been registered correctly (https://github.com/ServiceWeaver/weaver/pull/500) and that all listener names are valid (https://github.com/ServiceWeaver/weaver/pull/501). We also report more error messages when things go wrong to make it easier to debug issues (https://github.com/ServiceWeaver/weaver/pull/493).

Full Changelog: ServiceWeaver/weaver@v0.18.0...v0.19.0

v0.18.1

Compare Source

v0.18.0

Compare Source

Custom Error Values

Recall that the final return value of every component method must be an error:

// A calculator component. Note that the final return value of every method is an error.
type Calculator interface {
    Add(context.Context, int, int) (int, error)
    Subtract(context.Context, int, int) (int, error)
    Multiply(context.Context, int, int) (int, error)
}

Before v0.18.0, these error values were encoded and decoded using a custom protocol that did not preserve the type of the error. For example, if you returned a custom error value from a component method (e.g., return &customError{}), the caller of the method would not receive an error of the same type.

In v0.18.0, any errors that embed weaver.AutoMarshal will be properly encoded and decoded. Here's a simple example:

type customError struct {
    weaver.AutoMarshal
    msg string
}

Errors that don't embed weaver.AutoMarshal will continue to use our custom protocol.

See https://github.com/ServiceWeaver/weaver/pull/456, https://github.com/ServiceWeaver/weaver/pull/458, and https://github.com/ServiceWeaver/weaver/pull/457 for details.

Tracing

weaver.InstrumentHandler now automatically implements time-based trace sampling for you. We also optimized how we store and query traces on disk, and we now garbage collect old traces. We also improved the tracing UI in weaver single dashboard and weaver multi dashboard. See https://github.com/ServiceWeaver/weaver/pull/450, https://github.com/ServiceWeaver/weaver/pull/459, https://github.com/ServiceWeaver/weaver/pull/460, https://github.com/ServiceWeaver/weaver/pull/464, https://github.com/ServiceWeaver/weaver/pull/465, https://github.com/ServiceWeaver/weaver/pull/472, and https://github.com/ServiceWeaver/weaver/pull/478 for details

weaver.Instance Removed

The weaver.Instance interface was removed (https://github.com/ServiceWeaver/weaver/pull/455). It was not being used and was obsoleted by weaver.InstanceOf[T].

Bug Fixes

Internals

Most of the core weaver implementation has moved to the private internal/weaver package. This has no effect on the users of Service Weaver, but does enable some internal cleanups. For example, we split the weavelet implementation into two separate and much simpler weavelets, one for go run and one for all other deployers. For those interested in learning more about the internals of Service Weaver, this change should make it much easier to understand what's going on under the hood. See https://github.com/ServiceWeaver/weaver/pull/461 and https://github.com/ServiceWeaver/weaver/pull/466 for details.

Full Changelog: ServiceWeaver/weaver@v0.17.0...v0.18.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.18.0 fix(deps): update module github.com/serviceweaver/weaver to v0.18.1 Aug 4, 2023
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from cc0c823 to c7c0726 Compare August 4, 2023 02:12
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.18.1 fix(deps): update module github.com/serviceweaver/weaver to v0.19.0 Aug 11, 2023
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from c7c0726 to 55451db Compare August 11, 2023 18:26
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.19.0 fix(deps): update module github.com/serviceweaver/weaver to v0.20.0 Aug 23, 2023
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 55451db to 65ab34f Compare August 23, 2023 19:27
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.20.0 fix(deps): update module github.com/serviceweaver/weaver to v0.21.2 Sep 13, 2023
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 65ab34f to 3ecbcc7 Compare September 13, 2023 00:45
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 3ecbcc7 to 2dc0e61 Compare September 24, 2023 02:15
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.21.2 fix(deps): update module github.com/serviceweaver/weaver to v0.22.0 Oct 13, 2023
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 2dc0e61 to 9f4a0cc Compare October 13, 2023 18:55
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch 3 times, most recently from d576b7a to 349a997 Compare October 27, 2023 19:43
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 349a997 to b06b8e5 Compare November 19, 2023 07:23
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from b06b8e5 to 6ea15be Compare February 29, 2024 03:10
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.22.0 fix(deps): update module github.com/serviceweaver/weaver to v0.23.0 Feb 29, 2024
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 6ea15be to ccdf2c3 Compare April 10, 2024 21:35
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.23.0 fix(deps): update module github.com/serviceweaver/weaver to v0.23.1 Apr 10, 2024
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from ccdf2c3 to 0bd0bbc Compare May 7, 2024 00:59
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.23.1 fix(deps): update module github.com/serviceweaver/weaver to v0.23.2 May 7, 2024
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 0bd0bbc to 54b6bdf Compare May 10, 2024 02:27
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.23.2 fix(deps): update module github.com/serviceweaver/weaver to v0.24.1 May 10, 2024
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 54b6bdf to d1bbd5f Compare May 30, 2024 18:27
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.24.1 fix(deps): update module github.com/serviceweaver/weaver to v0.24.2 May 30, 2024
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from d1bbd5f to 6bdf61e Compare July 11, 2024 21:41
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.24.2 fix(deps): update module github.com/serviceweaver/weaver to v0.24.3 Jul 11, 2024
Copy link
Contributor Author

renovate bot commented Jul 11, 2024

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 6 additional dependencies were updated

Details:

Package Change
github.com/magiconair/properties v1.8.6 -> v1.8.7
github.com/DataDog/hyperloglog v0.0.0-20220214164406-974598347557 -> v0.0.0-20220804205443-1806d9b66146
github.com/fsnotify/fsnotify v1.5.4 -> v1.6.0
github.com/lightstep/varopt v1.3.0 -> v1.4.0
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.7.0 -> v1.16.0
go.opentelemetry.io/otel/sdk v1.16.0 -> v1.19.0

@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 6bdf61e to 3a306d3 Compare August 23, 2024 20:03
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.24.3 fix(deps): update module github.com/serviceweaver/weaver to v0.24.4 Aug 23, 2024
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 3a306d3 to ff86c0b Compare September 10, 2024 22:59
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.24.4 fix(deps): update module github.com/serviceweaver/weaver to v0.24.5 Sep 10, 2024
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from ff86c0b to 54cce88 Compare September 23, 2024 04:39
@renovate renovate bot force-pushed the renovate/github.com-serviceweaver-weaver-0.x branch from 54cce88 to 663b9e0 Compare October 11, 2024 19:41
@renovate renovate bot changed the title fix(deps): update module github.com/serviceweaver/weaver to v0.24.5 fix(deps): update module github.com/serviceweaver/weaver to v0.24.6 Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants