Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

## [0.2.1] - 2026-01-12

### Changed

- **CocoaPods source URL**: Updated `s.source` from SSH git protocol to HTTPS for improved compatibility

### Fixed

- None

### BREAKING CHANGES

- **None** - This release is fully backward compatible with 0.2.0

---

## [0.2.0] - 2026-01-09

### Added
Expand Down Expand Up @@ -36,8 +52,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- **Signal handler safety**: Removed `flush()` from signal handlers to prevent deadlocks (NSLock is not async-signal-safe)
- **AsyncTree context recovery**: Added `defer` to ensure CanopyContext is restored even if log() throws
- **CanopyContext.with()**: Added whitespace trimming and empty string handling
- **Tree.tag()**: Fixed logic to correctly handle empty and whitespace-only strings
- **CanopyContext.with()`: Added whitespace trimming and empty string handling
- **Tree.tag()`: Fixed logic to correctly handle empty and whitespace-only strings
- Thread safety issues with `explicitTag` in concurrent scenarios
- Code duplication in Canopy.swift (reduced from 169 to 138 lines)

Expand All @@ -63,18 +79,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

- (Future development section)
- SwiftLint violations across the codebase

### Performance

- Format message performance improved by ~10%
- Added performance benchmarks for all critical paths
- Zero-overhead logging verified in Release mode

### Security

- **CrashBufferTree**: Fixed potential deadlock in signal handlers by moving flush to atexit() handler
- **Input validation**: Added parameter validation to prevent invalid input scenarios

---

Expand Down Expand Up @@ -113,7 +117,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

| Version | Date | Status |
|---------|------|--------|
| [0.2.0] | 2026-01-09 | **Current Release** - Stability & Security Improvements |
| [0.2.1] | 2026-01-12 | **Current Release** - Update source URL to HTTPS |
| [0.2.0] | 2026-01-09 | Stability & Security Improvements |
| [0.1.0] | 2026-01-08 | Initial release |

---
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,8 @@ All tests must pass before merging.

1. Update version in `Package.swift`
2. Update CHANGELOG.md with new version
3. Create git tag (`git tag v0.2.0`)
4. Push tag (`git push origin v0.2.0`)
3. Create git tag (`git tag v0.2.1`)
4. Push tag (`git push origin v0.2.1`)

### Release Checklist

Expand All @@ -201,7 +201,7 @@ All tests must pass before merging.
### Release Notes Format

```markdown
## v0.2.0
## v0.2.1

### New Features
- Feature description
Expand Down
4 changes: 2 additions & 2 deletions Canopy.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Canopy'
s.version = '0.2.0'
s.version = '0.2.1'
s.summary = 'A lightweight, high-performance logging framework for iOS'
s.description = <<-DESC
Canopy is a logging framework inspired by Android's Timber, using a Tree-based architecture.
Expand All @@ -16,7 +16,7 @@ Features:
s.homepage = 'https://github.com/ding1dingx/Canopy'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'syxc' => 'nian1.wiki@gmail.com' }
s.source = { :git => 'git@github.com:ding1dingx/Canopy.git', :tag => s.version.to_s }
s.source = { :git => 'https://github.com/ding1dingx/Canopy.git', :tag => s.version.to_s }

s.ios.deployment_target = '14.0'
s.swift_version = '5.0'
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ Add Canopy to your project using Swift Package Manager or CocoaPods:
```bash
# Swift Package Manager
dependencies: [
.package(url: "https://github.com/ding1dingx/Canopy.git", from: "0.1.0")
.package(url: "https://github.com/ding1dingx/Canopy.git", from: "0.2.1")
]

# CocoaPods
pod 'Canopy', '~> 0.1.0'
pod 'Canopy', '~> 0.2.1'
```

Initialize in your `AppDelegate`:
Expand Down
4 changes: 2 additions & 2 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
```bash
# Swift Package Manager
dependencies: [
.package(url: "https://github.com/ding1dingx/Canopy.git", from: "0.1.0")
.package(url: "https://github.com/ding1dingx/Canopy.git", from: "0.2.1")
]

# CocoaPods
pod 'Canopy', '~> 0.1.0'
pod 'Canopy', '~> 0.2.1'
```

在 `AppDelegate` 中初始化:
Expand Down