Skip to content

Commit b7f5de6

Browse files
author
Ignacio Van Droogenbroeck
committed
docs: update changelog and add CLAUDE.md project guidelines
Add changelog entries for fixes #2, #3, #12, #15, #22. Add CLAUDE.md with branch workflow and review conventions.
1 parent bfb043b commit b7f5de6

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
- **decode:** cap `DecodeMap()` allocation at `maxMapSize` (1M) — same OOM vector for `map[string]interface{}` path
1616
- **decode:** fix `disableAllocLimitFlag` check in `decodeSliceValue``!= 1` was always true because the flag value is `1 << 3 = 8`, so the alloc limit in `growSliceValue()` was never applied
1717
- **decode:** fix error message in `DecodeFloat64` — said "decoding float32" instead of "decoding float64" ([#13](https://github.com/Basekick-Labs/msgpack/issues/13))
18+
- **decode:** allow float-encoded values to decode into `int64`/`uint64` with validation — rejects NaN, Inf, fractional, and out-of-range values ([#2](https://github.com/Basekick-Labs/msgpack/issues/2))
19+
- **decode:** allow `float64`-encoded values to decode into `float32` with overflow check ([#12](https://github.com/Basekick-Labs/msgpack/issues/12))
20+
- **encode:** handle non-addressable values with pointer receivers — `ensureAddr` creates an addressable copy instead of returning an error ([#3](https://github.com/Basekick-Labs/msgpack/issues/3))
21+
- **encode:** prevent panic when marshalling `reflect.Value` — unwraps and encodes the underlying value ([#15](https://github.com/Basekick-Labs/msgpack/issues/15))
22+
- **encode:** preserve custom error types instead of reducing to plain strings via `.Error()` ([#22](https://github.com/Basekick-Labs/msgpack/issues/22))
1823

1924
### Chores
2025

CLAUDE.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Project Guidelines
2+
3+
## Branch Workflow
4+
5+
- Create a **separate branch** for every fix/feature before making changes.
6+
- Branch naming: `fix/<short-description>` for bugs, `feat/<short-description>` for features.
7+
- Base branches off `v6` (the main development branch).
8+
- Each branch should be committed and a PR created against `v6`.
9+
10+
## Code Review
11+
12+
- After completing each fix, run a review agent to check for:
13+
- Redundant or duplicated code
14+
- Elegance and idiomatic Go style
15+
- Correctness and edge cases
16+
- Whether the change would pass review by a senior/staff engineer
17+
- Do not consider a fix done until it passes review.
18+
19+
## Project Context
20+
21+
- Performance-optimized fork of `vmihailenco/msgpack/v5`, maintained by Basekick Labs.
22+
- Built for Arc, a high-performance time-series database.
23+
- Upstream module path (`github.com/vmihailenco/msgpack/v5`) preserved for drop-in compatibility.
24+
- Go version: 1.26+
25+
26+
## Testing
27+
28+
- Run `go test ./...` to validate changes.
29+
- Run `go test -race ./...` for race condition checks.
30+
- Test files use testify/suite pattern (`MsgpackTest` suite).
31+
- Type tests in `types_test.go` use `typeTest` structs.
32+
33+
## Code Style
34+
35+
- Keep changes minimal and focused.
36+
- Avoid unnecessary refactoring around the fix.
37+
- Add test cases for every bug fix.

0 commit comments

Comments
 (0)