PackageTrack
Sign in Get early access

github.com/uber-go/fx

v1.9.0 #436 most downloaded on Go modules uber-go/fx

What this package is like to depend on

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

0 releases in the last 12 months

see the full history below

Release timeline

19 releases · Feb 2017 to Sep 2019
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 19
  1. v1.9.1-0.20190910214031-821a8a6fa8e9 10 Sep 2019 pre-release

    Nothing published for this version

  2. v1.9.0 22 Jan 2019
    Release notes

    Added

    • Add the ability to shutdown Fx applications from inside the container. See the Shutdowner documentation for details.
    • Add fx.Annotated to allow users to provide named values without creating a new constructor.
    Open source →
  3. v1.8.0 06 Nov 2018
    Release notes

    Added

    • Provide DOT graph of dependencies in the container.
    Open source →
  4. v1.7.1 26 Sep 2018
    Release notes

    Fixed

    • 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 the error).
    • Update dig container to defer acyclic validation until after Invoke. Application startup time should improve proportional to the size of the dependency graph.
    • Fix a goroutine leak in fxtest.Lifecycle.
    Open source →
  5. v1.7.0 17 Aug 2018
    Release notes

    Added

    • Add fx.ErrorHook option to allow users to provide ErrorHandlers on invoke failures.
    • VisualizeError returns the visualization wrapped in the error if available.
    Open source →
  6. v1.6.0 12 Jun 2018
    Release notes

    Added

    • Add fx.Error option to short-circuit application startup.
    Open source →
  7. v1.5.0 11 Apr 2018
    Release notes

    Added

    • Add fx.StartTimeout and fx.StopTimeout to make configuring application start and stop timeouts easier.
    • Export the default start and stop timeout as fx.DefaultTimeout.

    Fixed

    • Make fxtest respect the application's start and stop timeouts.
    Open source →
  8. v1.4.0 08 Dec 2017
    Release notes

    Added

    • Add fx.Populate to populate variables with values from the dependency injection container without requiring intermediate structs.
    Open source →
  9. v1.3.0 28 Nov 2017
    Release notes

    Changed

    • Improve readability of hook logging in addition to provide and invoke.

    Fixed

    • Fix bug which caused the OnStop for a lifecycle hook to be called even if it failed to start.
    Open source →
  10. v1.2.0 06 Sep 2017
    Release notes

    Added

    • Add fx.NopLogger which disables the Fx application's log output.
    Open source →
  11. v1.1.0 22 Aug 2017
    Release notes

    Changed

    • Improve readability of start up logging.
    Open source →
  12. v1.0.0 31 Jul 2017
    Release notes

    First stable release: no breaking changes will be made in the 1.x series.

    Added

    • fx.Extract now supports fx.In tags on target structs.

    Changed

    • [Breaking] Rename fx.Inject to fx.Extract.
    • [Breaking] Rename fxtest.Must* to fxtest.Require*.

    Removed

    • [Breaking] Remove fx.Timeout and fx.DefaultTimeout.
    Open source →
  13. v1.0.0-rc2 21 Jul 2017 pre-release
    Release notes
    • [Breaking] Lifecycle hooks now take a context.
    • Add 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.
    • Add an Err method to retrieve the underlying errors during the dependency graph construction. The same error is also returned from Start.
    • Graph resolution now happens as part of 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.
    • Add a Logger option, which allows users to send Fx's logs to different sink.
    • Add fxtest.App, which redirects log output to the user's testing.TB and provides some lifecycle helpers.
    Open source →
  14. v1.0.0-rc1 21 Jun 2017 pre-release
    Release notes
    • [Breaking] Providing types into fx.App and invoking functions are now options passed during application construction. This makes users' interactions with modules and collections of modules identical.
    • [Breaking] TestLifecycle is now in a separate fxtest subpackage.
    • Add fx.Inject() to pull values from the container into a struct.
    Open source →
  15. v1.0.0-beta4 12 Jun 2017 pre-release
    Release notes
    • [Breaking] Monolithic framework, as released in initial betas, has been broken into smaller pieces as a result of recent advances in 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.
    • [Breaking] 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.
    • [Breaking] 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.
    Open source →
  16. v1.0.0-beta3.1 05 Jul 2017 pre-release

    Nothing published for this version

  17. v1.0.0-beta3 28 Mar 2017 pre-release
    Release notes
    • [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 Scope method from the config.Provider interface, one can use either ScopedProvider and Value.Get() to access sub fields.
    • Add 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.
    • Expose options on task module to disable execution. This will allow users to enqueue and consume tasks on different clusters.
    • [Breaking] Rename Backend interface Publish to Enqueue. Created a new ExecuteAsync method that will kick off workers to consume tasks and this is subsumed by module Start.
    • [Breaking] Rename package uhttp/client to uhttp/uhttpclient for clarity.
    • [Breaking] Rename PopulateStruct method in value to Populate. The method can now populate not only structs, but anything: slices, maps, builtin types and maps.
    • [Breaking] package dig has moved from go.uber.org/fx/dig to a new home at go.uber.org/dig.
    • [Breaking] Pass a tracer the uhttp/uhttpclient constructor explicitly, instead of using a global tracer. This will allow to use http client in parallel tests.
    Open source →
    Release notes
    • [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 Scope method from the config.Provider interface, one can use either ScopedProvider and Value.Get() to access sub fields.
    • Add 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.
    • Expose options on task module to disable execution. This will allow users to enqueue and consume tasks on different clusters.
    • [Breaking] Rename Backend interface Publish to Enqueue. Created a new ExecuteAsync method that will kick off workers to consume tasks and this is subsumed by module Start.
    • [Breaking] Rename package uhttp/client to uhttp/uhttpclient for clarity.
    • [Breaking] Rename PopulateStruct method in value to Populate. The method can now populate not only structs, but anything: slices, maps, builtin types and maps.
    • [Breaking] package dig has moved from go.uber.org/fx/dig to a new home at go.uber.org/dig.
    • [Breaking] Pass a tracer the uhttp/uhttpclient constructor explicitly, instead of using a global tracer. This will allow to use http client in parallel tests.
    Open source →
  18. v1.0.0-beta2 10 Mar 2017 pre-release
    Release notes
    • [Breaking] Remove ulog.Logger interface and expose *zap.Logger directly.
    • [Breaking] Rename config and module from modules.rpc to modules.yarpc
    • [Breaking] Rename config key from modules.http to modules.uhttp to match the module name
    • [Breaking] Upgrade zap to v1.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 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.
    • Tally now supports reporting histogram samples for a bucket. Upgrade Tally to 2.1.0
    • [Breaking] Make new module naming consistent yarpc.ThriftModule to yarpc.New, task.NewModule to task.New
    • [Breaking] Rename yarpc.CreateThriftServiceFunc to yarpc.ServiceCreateFunc as it is not thrift-specific.
    • Report version metrics for company-wide version usage information.
    • Allow configurable service name and module name via service options.
    • DIG constructors now support returning a tuple with the second argument being an error.
    Open source →
  19. v1.0.0-beta1 22 Feb 2017 pre-release
    Release notes

    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.

    Open source →
    Release notes

    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.

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive