All Versions
Latest Version
Avg Release Cycle
61 days
Latest Release
270 days ago

Changelog History
Page 2

  • v1.5.0 Changes

    April 11, 2018

    โž• Added

    • โž• Add fx.StartTimeout and fx.StopTimeout to make configuring application
      start and stop timeouts easier.
    • 0๏ธโƒฃ Export the default start and stop timeout as fx.DefaultTimeout.

    ๐Ÿ›  Fixed

    • โœ… Make fxtest respect the application's start and stop timeouts.
  • v1.4.0 Changes

    December 07, 2017

    โž• Added

    • โž• Add fx.Populate to populate variables with values from the dependency injection container without requiring intermediate structs.
  • v1.3.0 Changes

    November 28, 2017

    ๐Ÿ”„ 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.
  • v1.2.0 Changes

    September 06, 2017

    โž• Added

    • โž• Add fx.NopLogger which disables the Fx application's log output.
  • v1.1.0 Changes

    August 22, 2017

    ๐Ÿ”„ Changed

    • ๐Ÿ‘Œ Improve readability of start up logging.
  • v1.0.0 Changes

    July 31, 2017

    ๐Ÿš€ 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.
  • v1.0.0-rc2 Changes

    July 21, 2017
    • [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.
  • v1.0.0-rc1 Changes

    June 20, 2017
    • [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.
  • v1.0.0-beta4 Changes

    June 12, 2017
    • [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 for more information on the constructors.
    • [Breaking] package config has been moved to its own repository. see 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.
  • v1.0.0-beta3 Changes

    March 28, 2017
    • [Breaking] Environment config provider was removed. If you were using environment variables to override YAML values, see [config documentation](config/ 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 to a new home at
    • [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.