@mathewc mathewc released this Feb 28, 2017 · 284 commits to dev since this release

This 2.0 release has been long overdue :) Following is a list of the changes since the last beta2 release, detailed notes for that and the beta1 release are below as well in their separate beta1, beta2 release note sections. This 2.0 release includes all of those changes, including some breaking changes which we've tried to document here.

  • New built in datetime system binding, and expanding the rand-guid binding
    • you can now use expressions like {datetime}, {datetime:yyyy-mm-dd}, {datetime:G} in your binding expressions, e.g. to timestamp a blob name, etc.
    • you can now use expressions like {rand-guid}, {rand-guid:N} which outputs a guid w/o hyphens.
    • the format expression after the ':' can be any valid format expression for the target type (e.g see doc for DateTime format strings here
  • BlobTrigger poison queue changes in multi storage account scenarios (breaking) #804
    • previously the webjobs-blobtrigger-poison queue was always created in the primary storage account, even if the target account for the BlobTrigger function was a different account.
    • now the behavior is that the poison queue lives in the same account the the trigger targets
  • Made Queue VisibilityTimeout configurable via JobHostQueuesConfiguration.VisibilityTimeout #844
    • this allows you to control the retry interval between failed processing attempts
  • Made JobHostQueuesConfiguration.MaxPollingInterval configurable at the QueueProcessor level as well.
    • you can now configure this per queue like many of the other queue control knobs
  • EventHub binding performance improvements
  • Improvements to ServiceBus BrokeredMessage conversions to byte[] and other types
  • Make IValueProvider.GetValue async (breaking). This is only an issue for extension authors
  • Made TraceFilter.Events a method that returns a snapshot, rather than it being a live collection as it was before (breaking)
  • Large refactoring/replat of Queue/Table input/output bindings
    • we have a bunch of new extensibility interfaces (currently internal, not released) that we're in the process of finishing up. While these are not yet ready for public consumption, we have replatted some of the bindings to them already in a non-breaking way
  • Miscellaneous other bug fixes