NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #454 by repository stars
Last release 7 years ago
no release in 18 months
Release timing varies
gaps range from 9 days to 8 months
Nearly every release is documented
notes for 11 of 11 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
19 releases · first in 2017
Nothing published for this version
Add the ability to shutdown Fx applications from inside the container. See the Shutdowner documentation for details.
fx.Annotated to allow users to provide named values without creating a
new constructor.Provide DOT graph of dependencies in the container.
One column per quarter.
Make fxtest.New ensure that the app was created successfully. Previously, it would return the app (similar to fx.New, which expects the user to verify
fxtest.New ensure that the app was created successfully. Previously,
it would return the app (similar to fx.New, which expects the user to verify
the error).fxtest.Lifecycle.Add fx.ErrorHook option to allow users to provide ErrorHandlers on invoke failures.
fx.ErrorHook option to allow users to provide ErrorHandlers on invoke
failures.VisualizeError returns the visualization wrapped in the error if available.Add fx.Error option to short-circuit application startup.
fx.Error option to short-circuit application startup.Add fx.StartTimeout and fx.StopTimeout to make configuring application start and stop timeouts easier.
fx.StartTimeout and fx.StopTimeout to make configuring application
start and stop timeouts easier.fx.DefaultTimeout.fxtest respect the application's start and stop timeouts.Add fx.Populate to populate variables with values from the dependency injection container without requiring intermediate structs.
fx.Populate to populate variables with values from the dependency
injection container without requiring intermediate structs.Improve readability of hook logging in addition to provide and invoke.
Add fx.NopLogger which disables the Fx application's log output.
fx.NopLogger which disables the Fx application's log output.Improve readability of start up logging.
First stable release: no breaking changes will be made in the 1.x series.
First stable release: no breaking changes will be made in the 1.x series.
fx.Extract now supports fx.In tags on target structs.fx.Inject to fx.Extract.fxtest.Must* to fxtest.Require*.fx.Timeout and fx.DefaultTimeout.[Breaking] Lifecycle hooks now take a context.
fx.In and fx.Out which exposes optional and named types.
Modules should embed these types instead of relying on dig.In and dig.Out.Err method to retrieve the underlying errors during the dependency
graph construction. The same error is also returned from Start.fx.New, rather than at the beginning
of app.Start. This allows inspection of the graph errors through app.Err()
before the decision to start the app.Logger option, which allows users to send Fx's logs to different
sink.fxtest.App, which redirects log output to the user's testing.TB and
provides some lifecycle helpers.[Breaking] Providing types into fx.App and invoking functions are now options passed during application construction. This makes users' interactions w
fx.App and invoking functions are now
options passed during application construction. This makes users'
interactions with modules and collections of modules identical.TestLifecycle is now in a separate fxtest subpackage.fx.Inject() to pull values from the container into a struct.service.Host interface which composed a number of primitives together (configuration, metrics, tracing) has been deprecated in favor of fx.App.
dig library.
This is a radical departure from the previous direction, but it needed to
be done for the long-term good of the project.Module interface has been scoped all the way down to being
a single dig constructor. This allows for very sophisticated module
compositions. See go.uber.org/dig for more information on the constructors.package config has been moved to its own repository.
see go.uber.org/config for more information.fx.Lifecycle has been added for modules to hook into the framework
lifecycle events.service.Host interface which composed a number of primitives together
(configuration, metrics, tracing) has been deprecated in favor of
fx.App.Nothing published for this version
[Breaking] Environment config provider was removed. If you were using environment variables to override YAML values, see config documentation for more
Scope method from the
config.Provider interface, one can use either ScopedProvider and Value.Get()
to access sub fields.task.MustRegister convenience function which fails fast by panicking
Note that this should only be used during app initialization, and is provided
to avoid repetetive error checking for services which register many tasks.Publish to Enqueue. Created a new
ExecuteAsync method that will kick off workers to consume tasks and this is
subsumed by module Start.uhttp/client to uhttp/uhttpclient for clarity.PopulateStruct method in value to Populate.
The method can now populate not only structs, but anything: slices,
maps, builtin types and maps.package dig has moved from go.uber.org/fx/dig to a new home
at go.uber.org/dig.uhttp/uhttpclient constructor explicitly, instead
of using a global tracer. This will allow to use http client in parallel tests.Remove now-unused config.IsDevelopmentEnv() helper to encourage better testing practices. Not a breaking change as nobody is using this func themselve…
ulog.Logger interface and expose *zap.Logger directly.modules.rpc to modules.yarpcmodules.http to modules.uhttp to match
the module namezap to v1.0.0-rc.3 (now go.uber.org/zap, was
github.com/uber-go/zap)config.IsDevelopmentEnv() helper to encourage better
testing practices. Not a breaking change as nobody is using this func
themselves according to our code search tool.traceID and spanID in hex format to match Jaeger UI. Upgrade Jaeger to
min version 2.1.0
and use jaeger's adapters for jaeger and tally initialization.yarpc.ThriftModule to
yarpc.New, task.NewModule
to task.Newyarpc.CreateThriftServiceFunc to yarpc.ServiceCreateFunc
as it is not thrift-specific.This is the first beta release of the framework, where we invite users to start building services on it and provide us feedback. Warning we are not pr
This is the first beta release of the framework, where we invite users to start building services on it and provide us feedback. Warning we are not promising API compatibility between beta releases and the final 1.0.0 release. In fact, we expect our beta user feedback to require some changes to the way things work. Once we reach 1.0, we will provider proper version compatibility.
This is the first beta release of the framework, where we invite users to start building services on it and provide us feedback. Warning we are not promising API compatibility between beta releases and the final 1.0.0 release. In fact, we expect our beta user feedback to require some changes to the way things work. Once we reach 1.0, we will provider proper version compatibility.
Your coding agent can read these notes before it upgrades. Set up the MCP server →