|  | 
| 2 | 2 | 
 | 
| 3 | 3 | All notable changes to the project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org). | 
| 4 | 4 | 
 | 
|  | 5 | +## [2.0.0] - 2020-09-18 | 
|  | 6 | +Initial release of the newer types that will be used in Go SDK 5.0 and above. | 
|  | 7 | + | 
|  | 8 | +### Added: | 
|  | 9 | +- Package `ldlog`, which was formerly a subpackage of `go-server-sdk`. | 
|  | 10 | +- Package `ldlogtest`, containing test helpers for use with `ldlog`. | 
|  | 11 | +- Package `ldreason`, containing `EvaluationReason` and related types that were formerly in `go-server-sdk`. | 
|  | 12 | +- Package `ldtime`, containing `UnixMillisecondTime`. | 
|  | 13 | +- Package `lduser`, containing `User` and related types that were formerly in `go-server-sdk`. | 
|  | 14 | +- Package `jsonstream`, a fast JSON encoding tool that is used internally by the SDK. | 
|  | 15 | +- `ldvalue.OptionalString` now implements `encoding.TextMarshaler` and `encoding.TextUnmarshaler`. This is not used by the Go SDK, but can be helpful when using `OptionalString` in other contexts. | 
|  | 16 | +- `ldvalue.OptionalBool` and `ldvalue.OptionalInt` are analogous to `ldvalue.OptionalString`, representing values that may be undefined without using pointers. These are used in the Go SDK. | 
|  | 17 | + | 
|  | 18 | +### Changed: | 
|  | 19 | +- The minimum Go version is now 1.14. | 
|  | 20 | +- The `User` type is now opaque and immutable; there is no direct access to its fields. | 
|  | 21 | +- The `User` type no longer uses pointers or `interface{}` internally, decreasing the need for heap allocations. | 
|  | 22 | +- Reading a `User` from JSON with `json.Unmarshal` now returns an error if the `key` property is missing or null. | 
|  | 23 | +- `EvaluationDetail.VariationIndex` is now an `OptionalInt` rather than an `int`. | 
|  | 24 | +- `EvaluationReason` is now a struct. | 
|  | 25 | +- This project is now a Go module, although it can still be used from non-module code. | 
|  | 26 | + | 
|  | 27 | +### Removed: | 
|  | 28 | +- In `ldvalue`, there are no longer methods for wrapping an existing `interface{}` value in a `Value`. | 
|  | 29 | +- All deprecated members of types that were moved here from `go-server-sdk` have been removed. | 
|  | 30 | + | 
| 5 | 31 | ## [1.0.0] - 2020-02-03 | 
| 6 | 32 | Initial release. This will be used in versions 4.16.0 and above of the LaunchDarkly Server-Side SDK for Go. | 
0 commit comments