Releases: uber-go/fx
Releases · uber-go/fx
Release list
v1.0.0-beta3.1
Patch release to the widely adopted Beta3 version that updates the obsolete dependencies which have been causing problems, especially the logrus imports.
This release is only intended to remove the immediate pressure to migrate to RC1, there is no current plan to support the "beta3 branch".
v1.0.0-rc1
- [Breaking] Providing types into
fx.Appand invoking functions are now
options passed during application construction. This makes users'
interactions with modules and collections of modules identical. - [Breaking]
TestLifecycleis now in a separatefxtestsubpackage. - Add
fx.Inject()to pull values from the container into a struct.
v1.0.0-beta4
- [Breaking] Monolithic framework, as released in initial betas, has been
broken into smaller pieces as a result of recent advances indiglibrary.
This is a radical departure from the previous direction, but it needed to
be done for the long-term good of the project. - [Breaking]
Module interfacehas been scoped all the way down to being
a single dig constructor. This allows for very sophisticated module
compositions. Seego.uber.org/digfor more information on the constructors. - [Breaking]
package confighas been moved to its own repository.
seego.uber.org/configfor more information. fx.Lifecyclehas been added for modules to hook into the framework
lifecycle events.service.Hostinterface which composed a number of primitives together
(configuration, metrics, tracing) has been deprecated in favor of
fx.App.
v1.0.0-beta3
- [Breaking] Environment config provider was removed. If you were using
environment variables to override YAML values, see
config documentation for more information. - [Breaking] Simplify Provider interface: remove
Scopemethod from the
config.Providerinterface, one can use either ScopedProvider and Value.Get()
to access sub fields. - Add
task.MustRegisterconvenience 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. - Expose options on task module to disable execution. This will allow users to
enqueue and consume tasks on different clusters. - [Breaking] Rename Backend interface
PublishtoEnqueue. Created a new
ExecuteAsyncmethod that will kick off workers to consume tasks and this is
subsumed by module Start. - [Breaking] Rename package
uhttp/clienttouhttp/uhttpclientfor clarity. - [Breaking] Rename
PopulateStructmethod in value toPopulate.
The method can now populate not only structs, but anything: slices,
maps, builtin types and maps. - [Breaking]
package dighas moved fromgo.uber.org/fx/digto a new home
atgo.uber.org/dig. - [Breaking] Pass a tracer the
uhttp/uhttpclientconstructor explicitly, instead
of using a global tracer. This will allow to use http client in parallel tests.
v1.0.0-beta2
- [Breaking] Remove
ulog.Loggerinterface and expose*zap.Loggerdirectly. - [Breaking] Upgrade
zaptov1.0.0-rc.3(now go.uber.org/zap, was
github.com/uber-go/zap) - Remove now-unused
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. - Log
traceIDandspanIDin hex format to match Jaeger UI. Upgrade Jaeger to
min version 2.1.0
and use jaeger's adapters for jaeger and tally initialization. - Tally now supports reporting histogram samples for a bucket. Upgrade Tally to 2.1.0
- [Breaking] Rename
modules/rpctomodules/yarpc - [Breaking] Make new module naming consistent
yarpc.ThriftModuleto
yarpc.New,task.NewModule
totask.New - [Breaking] Rename
yarpc.CreateThriftServiceFunctoyarpc.ServiceCreateFunc
as it is not thrift-specific. - Report version metrics for company-wide version usage information.
- DIG constructors now support returning a tuple with the second argument being
an error.
v1.0.0-beta1
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.