github.com/wI2L/jettison@v0.7.5-0.20230106001914-c70014c6417a/CHANGELOG.md (about)

     1  # Changelog
     2  
     3  All notable changes to this project are documented in this file.
     4  
     5  **THIS LIBRARY IS STILL IN ALPHA AND THERE ARE NO GUARANTEES REGARDING API STABILITY YET**
     6  
     7  ## [v0.7.4] - 2022-03-21
     8  
     9  :warning: Starting from this version, [Go 1.17+](https://golang.org/doc/install) is required to use this package.
    10  
    11  - Fix `reflect.mapiterinit` function prototype for go1.18, changed in https://github.com/golang/go/commit/1b2d794ca3ba60c2dbc958a271662784a7122739.
    12  - Update module version to `1.18` and fix build constraint lines.
    13  
    14  ## [v0.7.3] - 2021-11-02
    15  - Fix the encoding of zero-value time.Duration type in string format.
    16  
    17  ## [v0.7.2] - 2021-08-31
    18  - Minor performances improvements (remove inlined functions in `appendEscapedBytes`).
    19  
    20  ## [v0.7.1] - 2020-03-03
    21  - Fix a regression in the marshaling of `nil` map keys that implement the `encoding.TextMarshaler` interface, intoduced during refactor in version [**v0.5.0**](https://github.com/wI2L/jettison/compare/v0.4.1...v0.5.0).
    22  - Split `TestTextMarshalerMapKey` and `TestNilMarshaler` tests with build constraints to allow previously ignored cases to run with Go1.14.
    23  
    24  ## [v0.7.0] - 2020-02-17
    25  - Add the `omitnil` field tag's option, which specifies that a field with a nil pointer should be omitted from the encoding. This option has precedence over the `omitempty` option. See this issue for more informations about the original proposal: [#22480](https://golang.org/issue/22480).
    26  
    27  ## [v0.6.0] - 2020-02-14
    28  - Add support for the `sync.Map` type. The marshaling behavior for this type is similar to the one of the Go `map`.
    29  
    30  ## [v0.5.0] - 2020-02-02
    31  #### Refactor of the entire project.
    32  This includes the following changes, but not limited to:
    33  
    34  - Remove the `Encoder` type to simplify the usage of the library and stick more closely to the design of `encoding/json`
    35  - Reduce the number of closures used. This improves readability of stacktraces and performance profiles.
    36  - Improve the marshaling performances of many types.
    37  - Add support for marshaling `json.RawMessage` values.
    38  - Add new options `DenyList`, `NoNumberValidation`, `NoCompact`, and rename some others.
    39  - Replace the `Marshaler` and `MarshalerCtx` interfaces by `AppendMarshaler` and `AppendMarshalerCtx` to follow the new *append* model. See this issue for more details: [#34701](https://golang.org/issue/34701).
    40  - Remove the `IntegerBase` option, which didn't worked properly with the `string` JSON tag.
    41  
    42  > Some of the improvements have been inspired by the **github.com/segmentio/encoding** project.
    43  
    44  ## [v0.4.1] - 2019-10-23
    45  - Fix unsafe misuses reported by go vet and the new `-d=checkptr` cmd/compile flag introduced in the Go1.14 development tree by *Matthew Dempsky*. The issues were mostly related to invalid arithmetic operations and dereferences.
    46  - Fix map key types precedence order during marshaling. Keys of any string type are used directly instead of the `MarshalText` method, if the types also implement the `encoding.TextMarshaler` interface.
    47  
    48  ## [v0.4.0] - 2019-10-18
    49  - Add the `Marshaler` interface. Types that implements it can write a JSON representation of themselves to a `Writer` directly, to avoid having to allocate a buffer as they would usually do when using the `json.Marshaler` interface.
    50  
    51  ## [v0.3.1] - 2019-10-09
    52  - Fix HTML characters escaping in struct field names.
    53  - Add examples for Marshal, MarshalTo and Encoder's Encode.
    54  - Refactor string encoding to be compliant with `encoding/json`.
    55  
    56  ## [v0.3.0] - 2019-09-23
    57  - Add global functions `Marshal`, `MarshalTo` and `Register`.
    58  - Update `README.md`: usage, examples and benchmarks.
    59  
    60  ## [v0.2.1] - 2019-09-10
    61  - Refactor instructions for types implementing the `json.Marshaler` and `encoding.TextMarshaler` interfaces.
    62     - Fix encoding of `nil` instances.
    63     - Fix behavior for pointer and non-pointer receivers, to comply with `encoding/json`.
    64  - Fix bug that prevents tagged fields to dominate untagged fields.
    65  - Add support for anonymous struct pointer fields.
    66  - Improve tests coverage of `encoder.go`.
    67  - Add test cases for unexported non-embedded struct fields.
    68  
    69  ## [v0.2.0] - 2019-09-01
    70  - Add support for `json.Number`.
    71  - Update `README.md` to add a Go1.12+ requirement notice.
    72  
    73  ## [v0.1.0] - 2019-08-30
    74  Initial realease.
    75  
    76  [v0.7.4]: https://github.com/wI2L/jettison/compare/v0.7.3...v0.7.4
    77  [v0.7.3]: https://github.com/wI2L/jettison/compare/v0.7.2...v0.7.3
    78  [v0.7.2]: https://github.com/wI2L/jettison/compare/v0.7.1...v0.7.2
    79  [v0.7.1]: https://github.com/wI2L/jettison/compare/v0.7.0...v0.7.1
    80  [v0.7.0]: https://github.com/wI2L/jettison/compare/v0.6.0...v0.7.0
    81  [v0.6.0]: https://github.com/wI2L/jettison/compare/v0.5.0...v0.6.0
    82  [v0.5.0]: https://github.com/wI2L/jettison/compare/v0.4.1...v0.5.0
    83  [v0.4.1]: https://github.com/wI2L/jettison/compare/v0.4.0...v0.4.1
    84  [v0.4.0]: https://github.com/wI2L/jettison/compare/v0.3.1...v0.4.0
    85  [v0.3.1]: https://github.com/wI2L/jettison/compare/v0.3.0...v0.3.1
    86  [v0.3.0]: https://github.com/wI2L/jettison/compare/v0.2.1...v0.3.0
    87  [v0.2.1]: https://github.com/wI2L/jettison/compare/v0.2.0...v0.2.1
    88  [v0.2.0]: https://github.com/wI2L/jettison/compare/0.1.0...v0.2.0
    89  [v0.1.0]: https://github.com/wI2L/jettison/releases/tag/0.1.0