# Changelog

All notable changes to this project will be documented in this file.

## [0.6.0] - 2025-12-22

### 🚀 Features

- Added environment variable expansion in configuration values with `${VAR}` and `$VAR` syntax
- Added public `expand_env_var()` function for manual environment variable expansion
- Configuration values can now reference environment variables that are expanded at runtime
- Supports nested expansion in arrays and dictionaries

### 📚 Documentation

- Added comprehensive examples for environment variable expansion in config module

### ⚡ Performance

- Environment variable expansion uses efficient `EnvExpander` provider integrated with Figment

## [0.5.0] - 2025-12-01

### 🚀 Features

- Added `TraceContextCarrier` trait for unified trace context propagation across gRPC, HTTP, and message queues
- Added `TraceContextExt` extension trait with `link_distributed_trace()` convenience method
- Added `prelude` module for convenient imports (`byre::telemetry::prelude::*`)

### 📚 Documentation

- Added Quick Start section to telemetry module docs
- Added Common Patterns cookbook with runnable examples for gRPC, HTTP, and message queue tracing
- Converted all doc tests from `ignore` to compilable/runnable examples

### ⚡ Performance

- Optimized `Extractor::keys()` implementations to only check for W3C Trace Context headers (`traceparent`, `tracestate`) instead of iterating all headers

## [0.4.1] - 2025-11-30

### 🐛 Bug Fixes

- Add tracing-opentelemetry layer to export tracing spans to OpenTelemetry traces. Previously, spans from `#[instrument]` and `info_span!` were not being exported to OTLP backends like Signoz.

### 🚀 Features

- Enhanced example app with comprehensive telemetry generation (traces, metrics, logs)
- Added sample config file for testing with Signoz and other OTLP backends

### ⚙️ Miscellaneous Tasks

- Added tracing-opentelemetry 0.32.0 dependency
- Updated dependencies

## [0.3.0] - 2025-05-01

### 🚜 Refactor

- Clippy - simplify argument handling in CLI by using map_or_else for optional config path
- Clippy - update documentation
- Clippy - reduce error size with Box, remove Error variant Error::...Error repetition
- Enhance telemetry.rs documentation and structure for clarity and consistency
- Improve documentation and structure of CLI module for better clarity and usability
- Enhance documentation in config.rs for clarity and usability

### ⚙️ Miscellaneous Tasks

- Updating changelog
- Update .gitignore and remove Cargo.lock
- [**breaking**] Update dependencies in Cargo.toml and refactor telemetry.rs for improved error handling and structure

## [0.2.2] - 2025-02-02

### 🐛 Bug Fixes

- No longer use otel if all endpoints are omitted

### ⚙️ Miscellaneous Tasks

- Updating changelog and Cargo.lock
- Change version to 0.2.2

## [0.2.1] - 2025-01-31

### 🚀 Features

- Adding Debug to the Telemetry struct

### ⚙️ Miscellaneous Tasks

- Updating release to 0.2.1

## [0.2.0] - 2025-01-31

### 🚀 Features

- Initial Cli & Telemetry

### 🐛 Bug Fixes

- Adding a semicolon to the exit() call
- Removed unused import

### 💼 Other

- Added a full example

### 📚 Documentation

- Added documentation!

### ⚙️ Miscellaneous Tasks

- Updating version to 0.2.0

## [unreleased]

### 🚀 Features

- Initial Cli & Telemetry

<!-- generated by git-cliff -->
