diff --git a/CHANGELOG.md b/CHANGELOG.md index 988dd6c..81f12e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,117 +1,16 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [Unreleased] - -[NEXT]: https://github.com/spandex-project/spandex/compare/vNEXT...v2.3.0 - -## [2.3.0] - -[2.3.0]: https://github.com/spandex-project/spandex/compare/v2.3.0...v2.2.0 - -### Added -- `Spandex.current_context/1` and `Spandex.Tracer.current_context/1` functions, - which get a `Spandex.SpanContext` struct based on the current context. -- `Spandex.inject_context/3` and `Spandex.Tracer.inject_context/2` functions, - which inject a distributed tracing context into a list of HTTP headers. - -### Changed -- The `Spandex.Adapter` behaviour now requires an `inject_context/3` callback, - which encodes a `Spandex.SpanContext` as HTTP headers for distributed - tracing. - -## [2.2.0] - -[2.2.0]: https://github.com/spandex-project/spandex/compare/v2.2.0...v2.1.0 - -### Added -- The `Spandex.Trace` struct now includes `priority` and `baggage` fields, to - support priority sampling of distributed traces and trace-level baggage, - respectively. More details about these concepts can be found in the - OpenTracing documentation. An updated version of the `spandex_datadog` - library will enable support for this feature in terms of the - `Spandex.Adapter` and `Sender` APIs. - -### Changed -- It is no longer required that you specify the `env` option. If not specified, - it will default to `nil`. This is useful, for example, for allowing the - Datadog trace collector configured default to be used. -- The `Spandex.Adapter.distributed_context/2` callback now expects a - `SpanContext` struct to be returned, rather than a `Map`. -- Similarly, the `Spandex.continue_trace` function now expects a `SpanContext` - struct rather than a separate `trace_id` and `span_id`. -- The sender API now calls the `send_trace` function, passing in a - `Spandex.Trace` struct, rather than passing a list of `Spandex.Span` structs. - This means that you need to update the `spandex_datadog` to a compatible - version. - -### Deprecated -- `Spandex.continue_trace/4` is deprecated in favor of - `Spandex.continue_trace/3` -- Similarly, `Tracer.continue_trace/4` is deprecated in favor of - `Tracer.continue_trace/3` +# Change Log -## [2.1.0] -It is recommended to reread the README, to see the upgrade guide and understand the changes. - -[2.1.0]: https://github.com/spandex-project/spandex/compare/v2.1.0...v1.6.1 - -### Added -- Massive changes, including separating adapters into their own repositories - -### Changed -- Many interface changes, specifically around return values - -### Removed -- Adapters now exist in their own repositories - -## [1.6.1] - 2018-06-04 - -[1.6.1]: https://github.com/spandex-project/spandex/compare/v1.6.1...v1.6.0 - -### Added -- `private` key, when updating spans, for non-inheriting meta - -## [1.6.0] - 2018-06-04 - -[1.6.0]: https://github.com/spandex-project/spandex/compare/v1.6.0...v1.5.0 - -### Added -- Storage strategy behaviour - -### Changed -- Centralize most storage logic, requiring only the most adapter specific behaviour to be defined by the adapter. - -## [1.5.0] - 2018-06-02 -### Changed -- Interface for updating span metadata, and creating with metadata has been updated -- Check documentation for examples +All notable changes to this project will be documented in this file. +See [Conventional Commits](Https://conventionalcommits.org) for commit guidelines. -[1.5.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.5.0...v1.4.1 + -## [1.4.1] - 2018-05-31 -### Changed -- Resolved an issue with distributed trace header parsing +## [2.4.0](https://github.com/spandex-project/spandex/compare/2.4.0...2.4.0) (2018-10-11) -[1.4.1]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.4.0...v1.4.1 -## [1.4.0] - 2018-05-29 -### Added -- The tracer pattern -- Modernized configuration -- More: Please read the readme again! -[1.4.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.3.4...v1.4.0 -## [1.3.4] - 2018-05-25 -### Added -- Support distributed tracing via trace headers. -- Added a changelog +### Features: -### Changed -- No new changes +* Add(bring back) span and trace decorators -[1.3.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.3.3...v1.3.4 diff --git a/README.md b/README.md index ee1db02..3c147da 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ would be greatly appreciated. ```elixir def deps do - [{:spandex, "~> 2.3.0"}] + [{:spandex, "~> 2.4.0"}] end ``` diff --git a/config/config.exs b/config/config.exs index 5e2398d..bcc17b7 100644 --- a/config/config.exs +++ b/config/config.exs @@ -2,6 +2,18 @@ # and its dependencies with the aid of the Mix.Config module. use Mix.Config +config :git_ops, + mix_project: Spandex.Mixfile, + changelog_file: "CHANGELOG.md", + repository_url: "https://github.com/spandex-project/spandex", + types: [], + # Instructs the tool to manage your mix version in your `mix.exs` file + # See below for more information + manage_mix_version?: true, + # Instructs the tool to manage the version in your README.md + # Pass in `true` to use `"README.md"` or a string to customize + manage_readme_version: "README.md" + if Mix.env() == :test do import_config "./test.exs" end diff --git a/mix.exs b/mix.exs index d606888..ff2e46d 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule Spandex.Mixfile do def project do [ app: :spandex, - version: "2.3.0", + version: "2.4.0", elixir: "~> 1.3", elixirc_paths: elixirc_paths(Mix.env()), build_embedded: Mix.env() == :prod, @@ -62,6 +62,7 @@ defmodule Spandex.Mixfile do {:dialyxir, "~> 0.5", only: [:dev], runtime: false}, {:ex_doc, "~> 0.19", only: :dev, runtime: false}, {:excoveralls, "~> 0.6", only: :test}, + {:git_ops, "~> 0.3.3", only: :dev}, {:inch_ex, "~> 0.5", only: [:dev, :test]}, {:optimal, "~> 0.3.3"}, {:plug, ">= 1.0.0"}, diff --git a/mix.lock b/mix.lock index 8d3ad86..4d60546 100644 --- a/mix.lock +++ b/mix.lock @@ -12,19 +12,21 @@ "excoveralls": {:hex, :excoveralls, "0.7.0", "05cb3332c2b0f799df3ab90eb7df1ae5a147c86776e91792848a12b7ed87242f", [:mix], [{:exjsx, ">= 3.0.0", [hex: :exjsx, optional: false]}, {:hackney, ">= 0.12.0", [hex: :hackney, optional: false]}]}, "exjsx": {:hex, :exjsx, "3.2.1", "1bc5bf1e4fd249104178f0885030bcd75a4526f4d2a1e976f4b428d347614f0f", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, optional: false]}]}, "exvcr": {:hex, :exvcr, "0.8.11", "76d6f3f93cb764ccb34abca3f54ecdd980a178f908d175e6a326535e0f18e863", [:mix], [{:exactor, "~> 2.2", [hex: :exactor, optional: false]}, {:exjsx, "~> 3.2", [hex: :exjsx, optional: false]}, {:httpoison, "~> 0.11", [hex: :httpoison, optional: true]}, {:httpotion, "~> 3.0", [hex: :httpotion, optional: true]}, {:ibrowse, "~> 4.2.2", [hex: :ibrowse, optional: true]}, {:meck, "~> 0.8.3", [hex: :meck, optional: false]}]}, + "git_cli": {:hex, :git_cli, "0.2.5", "40673235d088d2784d4e03511e62cac2ef520495cb6cc459f00b4e13aaf0fbf4", [:mix], [], "hexpm"}, + "git_ops": {:hex, :git_ops, "0.3.3", "512adfa3fd082fadbee13a05e53cfbd680b2bbf810e8f44b1ba2824040e0605d", [:mix], [{:git_cli, "~> 0.2", [hex: :git_cli, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 0.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, "hackney": {:hex, :hackney, "1.10.1", "c38d0ca52ea80254936a32c45bb7eb414e7a96a521b4ce76d00a69753b157f21", [:rebar3], [{:certifi, "2.0.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "5.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"}, "httpoison": {:hex, :httpoison, "0.13.0", "bfaf44d9f133a6599886720f3937a7699466d23bb0cd7a88b6ba011f53c6f562", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, "idna": {:hex, :idna, "5.1.0", "d72b4effeb324ad5da3cab1767cb16b17939004e789d8c0ad5b70f3cea20c89a", [:rebar3], [{:unicode_util_compat, "0.3.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm"}, "inch_ex": {:hex, :inch_ex, "0.5.6", "418357418a553baa6d04eccd1b44171936817db61f4c0840112b420b8e378e67", [:mix], [{:poison, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :poison, optional: false]}]}, "jsx": {:hex, :jsx, "2.8.2", "7acc7d785b5abe8a6e9adbde926a24e481f29956dd8b4df49e3e4e7bcc92a018", [:mix, :rebar3], []}, - "makeup": {:hex, :makeup, "0.5.1", "966c5c2296da272d42f1de178c1d135e432662eca795d6dc12e5e8787514edf7", [:mix], [{:nimble_parsec, "~> 0.2.2", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, - "makeup_elixir": {:hex, :makeup_elixir, "0.8.0", "1204a2f5b4f181775a0e456154830524cf2207cf4f9112215c05e0b76e4eca8b", [:mix], [{:makeup, "~> 0.5.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 0.2.2", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, + "makeup": {:hex, :makeup, "0.5.5", "9e08dfc45280c5684d771ad58159f718a7b5788596099bdfb0284597d368a882", [:mix], [{:nimble_parsec, "~> 0.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, + "makeup_elixir": {:hex, :makeup_elixir, "0.10.0", "0f09c2ddf352887a956d84f8f7e702111122ca32fbbc84c2f0569b8b65cbf7fa", [:mix], [{:makeup, "~> 0.5.5", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm"}, "meck": {:hex, :meck, "0.8.7", "ebad16ca23f685b07aed3bc011efff65fbaf28881a8adf925428ef5472d390ee", [:rebar3], []}, "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], []}, "mime": {:hex, :mime, "1.1.0", "01c1d6f4083d8aa5c7b8c246ade95139620ef8effb009edde934e0ec3b28090a", [:mix], []}, "mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], []}, "msgpax": {:hex, :msgpax, "1.1.0", "e31625e256db2decca1ae2b841f21b4d2483b1332649ce3ebc96c7ff7a4986e3", [:mix], [{:plug, "~> 1.0", [hex: :plug, optional: true]}]}, - "nimble_parsec": {:hex, :nimble_parsec, "0.2.2", "d526b23bdceb04c7ad15b33c57c4526bf5f50aaa70c7c141b4b4624555c68259", [:mix], [], "hexpm"}, + "nimble_parsec": {:hex, :nimble_parsec, "0.4.0", "ee261bb53214943679422be70f1658fff573c5d0b0a1ecd0f18738944f818efe", [:mix], [], "hexpm"}, "optimal": {:hex, :optimal, "0.3.3", "467d0e9678a92202e3598537b802d868cb982142dff0b8ec2ada53ef612ccf14", [:mix], [], "hexpm"}, "plug": {:hex, :plug, "1.3.5", "7503bfcd7091df2a9761ef8cecea666d1f2cc454cbbaf0afa0b6e259203b7031", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]}, "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm"},