Skip to content

Commit 7b101d7

Browse files
authored
chore: release v0.7.17 (#163)
1 parent bba223d commit 7b101d7

10 files changed

Lines changed: 248 additions & 104 deletions

File tree

CHANGELOG.md

Lines changed: 177 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,160 +1,270 @@
1-
# Changelog
1+
# CHANGELOG
2+
3+
All significant changes to this project will be documented in this file.
24

35
## Unreleased
46

7+
## v0.7.17
8+
9+
### Breaking Changes
10+
11+
* Deprecated `Span::enter_with_parents()`. It now uses the first non-noop parent as the primary parent and converts additional parents to links.
12+
13+
### New Features
14+
15+
* Added `Span::with_link()` and `Span::add_link()`.
16+
* Added `LocalSpan::with_link()` and `LocalSpan::add_link()`.
17+
* Added `SpanRecord.links` and propagated links through collector post-processing.
18+
* Added `serde::Serialize` and `serde::Deserialize` support for `SpanContext` using W3C `traceparent` format.
19+
20+
### Bug Fixes
21+
22+
* Fixed `#[trace]` macro span attachment by generating the wrapper function with the original function span.
23+
524
## v0.7.16
625

7-
- Deprecate `Config::tail_sampled()`; spans are held until the root span finishes by default, and `Span::cancel()` discards spans collected up to the root's drop.
26+
### Improvements
27+
28+
* Deprecated `Config::tail_sampled()`.
29+
* Spans are held until the root span finishes by default, and `Span::cancel()` discards spans collected up to the root span drop.
830

931
## v0.7.15
1032

11-
- `#[trace]` macro now supports trait-object futures and preserves input tokens more faithfully to avoid compilation errors.
12-
- Added `#[allow(unreachable_code)]` on the macro return hint to quiet new compiler warnings.
33+
### Bug Fixes
34+
35+
* `#[trace]` macro now supports trait-object futures and preserves input tokens more faithfully to avoid compilation errors.
36+
37+
### Improvements
38+
39+
* Added `#[allow(unreachable_code)]` on the macro return hint to quiet new compiler warnings.
1340

1441
## v0.7.14
1542

16-
- Fix stale spans not being cleared after reporting.
43+
### Bug Fixes
1744

18-
## v0.7.13
45+
* Fixed stale spans not being cleared after reporting.
1946

20-
- Fix memory leak when reporter is not set.
47+
## v0.7.13
2148

22-
## v0.7.12
49+
### Bug Fixes
2350

24-
- Propagate trace context no matter the reporter is set or not.
51+
* Fixed memory leak when reporter is not set.
2552

2653
## v0.7.12
2754

28-
- Fix the issue that`SpanContext::random()` returns a non-zero parent id.
55+
### Bug Fixes
56+
57+
* Propagated trace context no matter whether the reporter is set.
58+
* Fixed an issue where `SpanContext::random()` returned a non-zero parent id.
2959

3060
## v0.7.10
3161

32-
- `TraceContext::random()` now returns a `TraceContext` with random `TraceId` and `SpanId`.
33-
- Add `Config::tail_sampled()`, which defaults to `false`.
34-
- Add attribute `#[trace(crate = ::fastrace)]` to redirect the path to `fastrace` crate.
35-
- Deprecate `Config::max_spans_per_trace()` and `Config::report_before_root_finish()`.
62+
### New Features
63+
64+
* `TraceContext::random()` now returns a `TraceContext` with random `TraceId` and `SpanId`.
65+
* Added `Config::tail_sampled()`, which defaults to `false`.
66+
* Added attribute `#[trace(crate = ::fastrace)]` to redirect the path to the `fastrace` crate.
67+
68+
### Improvements
69+
70+
* Deprecated `Config::max_spans_per_trace()` and `Config::report_before_root_finish()`.
3671

3772
## v0.7.9
3873

39-
- Upgrade MSRV to 1.80.
40-
- Improved performance.
74+
### Breaking Changes
75+
76+
* Upgraded MSRV to 1.80.
77+
78+
### Improvements
79+
80+
* Improved performance.
4181

4282
## v0.7.8
4383

44-
- Add `TraceId::random()` and `SpanId::random()`.
45-
- Add `FromStr`, `Display`, and `serde` support for `TraceId`, `SpanId`.
46-
- Add `Span::add_property()` and `Span::add_properties()`.
47-
- Add `Span::add_event()` and `LocalSpan::add_event()`.
48-
- Deprecate `Event::add_to_parent()` and `Event::add_to_local_parent()`.
84+
### New Features
85+
86+
* Added `TraceId::random()` and `SpanId::random()`.
87+
* Added `FromStr`, `Display`, and `serde` support for `TraceId` and `SpanId`.
88+
* Added `Span::add_property()` and `Span::add_properties()`.
89+
* Added `Span::add_event()` and `LocalSpan::add_event()`.
90+
91+
### Improvements
92+
93+
* Deprecated `Event::add_to_parent()` and `Event::add_to_local_parent()`.
4994

5095
## v0.7.6
5196

52-
- Reduce dependencies to futures 0.3.
97+
### Improvements
98+
99+
* Reduced dependencies to `futures` 0.3.
53100

54101
## v0.7.5
55102

56-
- Optimize collect behavior when the span is not sampled.
103+
### Improvements
104+
105+
* Optimized collect behavior when the span is not sampled.
57106

58107
## v0.7.4
59108

60-
- Upgrade opentelemtry to 0.26.0.
109+
### Improvements
110+
111+
* Upgraded `opentelemetry` to 0.26.0.
61112

62113
## v0.7.3
63114

64-
- Upgrade opentelemtry to 0.25.0.
115+
### Improvements
116+
117+
* Upgraded `opentelemetry` to 0.25.0.
65118

66119
## v0.7.2
67120

68-
- Allow to `LocalSpan::add_property()` when the local parent is a `Span`.
121+
### New Features
122+
123+
* Allowed `LocalSpan::add_property()` when the local parent is a `Span`.
69124

70125
## v0.7.1
71126

72-
- Lower MSRV to 1.75.
127+
### Improvements
128+
129+
* Lowered MSRV to 1.75.
73130

74131
## v0.7.0
75132

76-
- Upgrade dependencies including opentelemtry and more.
77-
- Remove deprecated methods `Config::batch_report_interval` and `Config::batch_report_max_spans`.
78-
- Deprecate `full_name!()` and rename it to `full_path!()`.
79-
- Deprecate `SpanContext::encode_w3c_traceparent_with_sampled()`.
80-
- Pass `Vec<SpanRecord>` to `Reporter::report()` instead of `&[SpanRecord]`.
81-
- Added `SpanContext.sampled`, which will be propagated through the child spans.
133+
### Breaking Changes
134+
135+
* Upgraded dependencies including `opentelemetry` and more.
136+
* Removed deprecated methods `Config::batch_report_interval` and `Config::batch_report_max_spans`.
137+
* Changed `Reporter::report()` to take `Vec<SpanRecord>` instead of `&[SpanRecord]`.
138+
139+
### New Features
140+
141+
* Added `SpanContext.sampled`, which is propagated through child spans.
142+
143+
### Improvements
144+
145+
* Deprecated `full_name!()` and renamed it to `full_path!()`.
146+
* Deprecated `SpanContext::encode_w3c_traceparent_with_sampled()`.
82147

83148
## v0.6.8
84149

85-
- Project rename to `fastrace`.
150+
### Breaking Changes
151+
152+
* Renamed project to `fastrace`.
86153

87154
## v0.6.7
88155

89-
- Add `Config::report_interval`: The background collector working interval.
90-
- Deprecate `Config::batch_report_interval` and `Config::batch_report_max_spans`.
91-
- Fix a performance issue in object-pool which was causing lock racing.
156+
### New Features
157+
158+
* Added `Config::report_interval` as the background collector interval.
159+
160+
### Improvements
161+
162+
* Deprecated `Config::batch_report_interval` and `Config::batch_report_max_spans`.
163+
* Fixed a performance issue in object-pool that caused lock racing.
92164

93165
## v0.6.6
94166

95-
- Update to opentelemetry, opentelemetry_sdk, and opentelemetry-otlp.
167+
### Improvements
168+
169+
* Upgraded `opentelemetry`, `opentelemetry_sdk`, and `opentelemetry-otlp`.
96170

97171
## v0.6.5
98172

99-
- Update to opentelemetry 0.22, opentelemetry_sdk 0.22.1, and opentelemetry-otlp: 0.15.
173+
### Improvements
174+
175+
* Upgraded to `opentelemetry` 0.22, `opentelemetry_sdk` 0.22.1, and `opentelemetry-otlp` 0.15.
100176

101177
## v0.6.4
102178

103-
- Add `LocalSpan::add_property` and `LocalSpan::add_properties`.
104-
- Add `Config::report_before_root_finish`.
105-
- Add new crate `fastrace-futures`.
179+
### New Features
180+
181+
* Added `LocalSpan::add_property` and `LocalSpan::add_properties`.
182+
* Added `Config::report_before_root_finish`.
183+
* Added new crate `fastrace-futures`.
106184

107185
## v0.6.3
108186

109-
- Add `LocalSpans::to_span_records()`.
110-
- Add `#[trace(properties = { "k1": "v1", "k2": "v2" })]`.
111-
- Add `func_name!()`, `full_name!()`, and `file_location!()` to `fastrace::prelude`.
187+
### New Features
188+
189+
* Added `LocalSpans::to_span_records()`.
190+
* Added `#[trace(properties = { "k1": "v1", "k2": "v2" })]`.
191+
* Added `func_name!()`, `full_name!()`, and `file_location!()` to `fastrace::prelude`.
112192

113193
## v0.6.2
114194

115-
- Improve documentation.
195+
### Improvements
196+
197+
* Improved documentation.
116198

117199
## v0.6.1
118200

119-
- Macro will use the full path of the function as span name instead of the only function name. You can turn it off by setting `#[trace(short_name = true)]`.
120-
- Add utility macros `func_name!()`, `full_name!()`, and `file_location!()` to generate names for use in span.
121-
- Add `Span::elapsed()` that returns the elapsed time since the span is created.
201+
### New Features
202+
203+
* Macro now uses the full function path as the default span name. You can turn this off with `#[trace(short_name = true)]`.
204+
* Added utility macros `func_name!()`, `full_name!()`, and `file_location!()` for span naming.
205+
* Added `Span::elapsed()` that returns elapsed time since span creation.
122206

123207
## v0.6.0
124208

125-
- Span name and event name now accept both `&'static str` and `String` (`Into<Cow<'static, str>>`), which previously only accept `&'static str`.
126-
- `with_property` and `with_properties` now accept `impl Into<Cow<'static, str>>`, which previously accept `Cow<'static, str>`.
209+
### Improvements
210+
211+
* Span name and event name now accept both `&'static str` and `String` (`Into<Cow<'static, str>>`) instead of only `&'static str`.
212+
* `with_property` and `with_properties` now accept `impl Into<Cow<'static, str>>` instead of only `Cow<'static, str>`.
127213

128214
## v0.5.1
129215

130-
- Fix panics due to destruction of Thread Local Storage value
216+
### Bug Fixes
217+
218+
* Fixed panics due to destruction of Thread Local Storage values.
131219

132220
## v0.5.0
133221

134-
- Add `Event` type to represent single points in time during the span's lifetime.
135-
- Add `fastrace-opentelementry` reporter that reports spans to OpenTelemetry collector.
136-
- Removed `Collector` and replaced it with `Reporter`.
137-
- The macro arguments must be named if any, e.g. `#[trace(name="name")]`.
138-
- Allow to statically opt-out of tracing by not setting `enable` feature.
222+
### Breaking Changes
223+
224+
* Removed `Collector` and replaced it with `Reporter`.
225+
* Macro arguments must be named when provided, for example `#[trace(name = "name")]`.
226+
227+
### New Features
228+
229+
* Added `Event` type to represent single points in time during a span lifetime.
230+
* Added `fastrace-opentelemetry` reporter to send spans to OpenTelemetry collectors.
231+
* Allowed statically opting out of tracing by not enabling the `enable` feature.
139232

140233
## v0.4.0
141234

142-
- Remove `LocalSpanGuard` and merge it into `LocalSpan`.
143-
- Remove `LocalSpan::with_property`, `LocalSpan::with_properties`, `Span::with_property` and `Span::with_properties`.
144-
- Add `LocalSpan::add_property`, `LocalSpan::add_properties`, `Span::add_property` and `Span::add_properties`.
145-
- Remove `LocalParentGuard`. `Span::set_local_parent` returns a general `Option<Guard<impl FnOnce()>>` instead.
235+
### Breaking Changes
236+
237+
* Removed `LocalSpanGuard` and merged it into `LocalSpan`.
238+
* Removed `LocalSpan::with_property`, `LocalSpan::with_properties`, `Span::with_property`, and `Span::with_properties`.
239+
* Removed `LocalParentGuard`; `Span::set_local_parent` now returns `Option<Guard<impl FnOnce()>>`.
240+
241+
### New Features
242+
243+
* Added `LocalSpan::add_property`, `LocalSpan::add_properties`, `Span::add_property`, and `Span::add_properties`.
146244

147245
## v0.3.1
148246

149-
- Add an async variant of jaeger reporting function `fastrace::report()`.
150-
- `LocalSpan::with_property` now no longer takes `self` but `&mut self` instead.
247+
### New Features
248+
249+
* Added an async variant of Jaeger reporting function `fastrace::report()`.
250+
251+
### Improvements
252+
253+
* `LocalSpan::with_property` now takes `&mut self` instead of `self`.
151254

152255
## v0.3.0
153256

154-
- `Collector::collect()` becomes an async function because the span collection work is moved to a background thread to extremely reduce the performance overhead on the code being tracing.
155-
- Attribute macro `#[trace]` on async function becomes able to automatically extract the local parent in the caller's context. Previously, the caller must manually call `in_span()`.
257+
### Breaking Changes
258+
259+
* `Collector::collect()` became async because span collection moved to a background thread to reduce tracing overhead.
260+
261+
### New Features
262+
263+
* Attribute macro `#[trace]` on async functions can automatically extract the caller local parent. Previously, the caller had to call `in_span()` manually.
156264

157265
## v0.2.0
158266

159-
- All API get redesigned for better egnormic experience.
160-
- Attribute macro `#[trace]` automatically detects `async fn` and crate `async-trait`, and since that, `#[trace_async]` is removed.
267+
### Breaking Changes
268+
269+
* Redesigned all APIs for a better ergonomic experience.
270+
* `#[trace]` now automatically detects `async fn` and `async-trait`, and `#[trace_async]` was removed.

0 commit comments

Comments
 (0)