{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":340448497,"defaultBranch":"master","name":"json","ownerLogin":"go-json-experiment","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-02-19T17:56:21.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/79328822?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1713916756.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"34e76e85b411116b123e90446594cc222f084623","ref":"refs/heads/dsnet-range-int","pushedAt":"2024-04-23T23:59:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use range over integer support in Go 1.22","shortMessageHtmlLink":"Use range over integer support in Go 1.22"}},{"before":null,"after":"ac1b810508eac2a0fb47125a936bf33be936d97f","ref":"refs/heads/typo-getunquoted","pushedAt":"2024-04-23T23:44:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Fix typo in objectNameStack.getUnquoted","shortMessageHtmlLink":"Fix typo in objectNameStack.getUnquoted"}},{"before":"0c38945a6d6c35306a45d7ddd5818040d8216aed","after":null,"ref":"refs/heads/jsontextpointer","pushedAt":"2024-04-18T18:03:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"}},{"before":"adac9ef73881aac7dad87ebedb9cc57181d131c0","after":"af2d5061e6c22478c3df70f3674c70139eabe34b","ref":"refs/heads/master","pushedAt":"2024-04-18T18:03:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use a concrete type for JSON pointer (#30)\n\nWARNING: This commit includes breaking changes.\r\n\r\nDeclare a jsontext.Pointer type as a named string type.\r\n\r\nThis allows us to implement a Tokens method to conveniently\r\niterate over all the reference tokens in the pointer\r\nusing the upcoming iterators support.\r\n\r\nThe new functionally is currently not tested by CI,\r\nbut can be manually tested with:\r\n\r\n\tGOEXPERIMENT=rangefunc go.tip test ./...","shortMessageHtmlLink":"Use a concrete type for JSON pointer (#30)"}},{"before":"fc0d80c82bef2b555a1de10c1db18c4324f5f99a","after":"0c38945a6d6c35306a45d7ddd5818040d8216aed","ref":"refs/heads/jsontextpointer","pushedAt":"2024-04-18T17:58:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use a concrete type for JSON pointer\n\nWARNING: This commit includes breaking changes.\n\nDeclare a jsontext.Pointer type as a named string type.\n\nThis allows us to implement a Tokens method to conveniently\niterate over all the reference tokens in the pointer\nusing the upcoming iterators support.\n\nThe new functionally is currently not tested by CI,\nbut can be manually tested with:\n\n\tGOEXPERIMENT=rangefunc go.tip test ./...","shortMessageHtmlLink":"Use a concrete type for JSON pointer"}},{"before":"2f02d566501e9e17c03eb444b046fb1e0b29e971","after":"adac9ef73881aac7dad87ebedb9cc57181d131c0","ref":"refs/heads/master","pushedAt":"2024-04-18T00:32:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Fix panic message in Decoder.Reset (#32)\n\nDecoder panic message refers to io.Writer, when it should be io.Reader.","shortMessageHtmlLink":"Fix panic message in Decoder.Reset (#32)"}},{"before":null,"after":"fc0d80c82bef2b555a1de10c1db18c4324f5f99a","ref":"refs/heads/jsontextpointer","pushedAt":"2024-04-12T21:33:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use a concrete type for JSON pointer\n\nWARNING: This commit includes breaking changes.\n\nDeclare a jsontext.Pointer type as a named string type.\n\nThis allows us to implement a Tokens method to conveniently\niterate over all the reference tokens in the pointer\nusing the upcoming iterators support.\n\nThe new functionally is currently not tested by CI,\nbut can be manually tested with:\n\n\tGOEXPERIMENT=rangefunc go.tip test ./...","shortMessageHtmlLink":"Use a concrete type for JSON pointer"}},{"before":"922d5893c400b5274dbca79caf17c648c50aa59a","after":null,"ref":"refs/heads/go122-reflect-typefor","pushedAt":"2024-04-12T20:29:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"}},{"before":"fb6d8e74f594a8df1136b608d6f445d1d9a126eb","after":null,"ref":"refs/heads/length64","pushedAt":"2024-04-12T20:29:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"}},{"before":"a256f166e92572cb149818fc104fef7afb82e7e7","after":"2f02d566501e9e17c03eb444b046fb1e0b29e971","ref":"refs/heads/master","pushedAt":"2024-04-12T20:28:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use int64 for object or array length (#27)\n\nWARNING: This commit includes breaking changes.\r\n\r\nWhen processing JSON as a stream, it is conceivable that\r\nthe total number of elements in a JSON object or array\r\nexceeds a 32-bit integer.\r\n\r\nSwitch from int to int64 for a similar reason as why io.Copy\r\nreturns int64 instead of int.\r\n\r\nNote that the depth still uses an int because the stack must\r\nbe representable in memory, which is limited to the native\r\ninteger width of the platform. This is similar to how\r\nio.Reader.Read returns an int because the length of a []byte\r\ncannot possibly be larger than the largest int.","shortMessageHtmlLink":"Use int64 for object or array length (#27)"}},{"before":"8868a69194fa16a548b5c8aa332f4f4a3b9ecd2f","after":"a256f166e92572cb149818fc104fef7afb82e7e7","ref":"refs/heads/master","pushedAt":"2024-04-12T20:28:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use new reflect.TypeFor function available in Go 1.22 (#28)","shortMessageHtmlLink":"Use new reflect.TypeFor function available in Go 1.22 (#28)"}},{"before":"d9307f2b728c1f8838d9f630f2a895eae332de70","after":"922d5893c400b5274dbca79caf17c648c50aa59a","ref":"refs/heads/go122-reflect-typefor","pushedAt":"2024-04-12T20:24:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use new reflect.TypeFor function available in Go 1.22","shortMessageHtmlLink":"Use new reflect.TypeFor function available in Go 1.22"}},{"before":"9fd8f2ca1e234635f8bccd1a277e2449fd45f698","after":null,"ref":"refs/heads/single-line-flags","pushedAt":"2024-04-12T20:21:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"}},{"before":"37be135e8c8c384dda4c854d5a57a2b9067940ed","after":"8868a69194fa16a548b5c8aa332f4f4a3b9ecd2f","ref":"refs/heads/master","pushedAt":"2024-04-12T06:11:11.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"Use bytes.Clone, added in Go 1.20","shortMessageHtmlLink":"Use bytes.Clone, added in Go 1.20"}},{"before":"b15d3effebea83868a1f76352db115fe2afa0061","after":"37be135e8c8c384dda4c854d5a57a2b9067940ed","ref":"refs/heads/master","pushedAt":"2024-04-12T06:09:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"Adjust single-line formatting behavior\n\nChanges made:\n\n* Further separate the behavior of SpaceAfterColon and SpaceAfterComma\n from Multiline. That is, use of Multiline does not affect the behavior\n of SpaceAfterColon or SpaceAfterComma unless it has not been set.\n For example, specifying (SpaceAfterColon(false), Multiline(true))\n should avoid the space after the colon even if we expect this\n combination of options to be seldom used.\n\n* Exclude whitespace formatting flags from DefaultOptionsV1\n since v1 has API support for both single-line and multi-line output,\n so setting (or clearing) them cannot be classified as v1 behavior.\n Similarly, exclude whitespace formatting flags from DefaultOptionsV2.\n\n* Simplify the TestMarshal cases.\n\n* Add explicit TestEncoder cases to exercise all\n Encoder.WriteValue code paths.","shortMessageHtmlLink":"Adjust single-line formatting behavior"}},{"before":"9323fb898c6d627565b09030c612bebb91f11e8d","after":"2b8c8a2020ba3dc1242c8e5d31b603798443765d","ref":"refs/heads/patches-1","pushedAt":"2024-04-12T06:07:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"Use bytes.Clone, added in Go 1.20","shortMessageHtmlLink":"Use bytes.Clone, added in Go 1.20"}},{"before":null,"after":"5df33304e9183a33bc739cbb04e38854148eb004","ref":"refs/heads/immutable-token","pushedAt":"2024-04-12T04:47:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use constructors for static tokens\n\nWARNING: This commit includes breaking changes.\n\nInstead of global variables, use function constructors\nfor static tokens such as Null, ObjectStart, ObjectEnd,\nArrayStart, and ArrayEnd. This provides a greater degree\nof immutability for the API.\n\nNote that static tokens for True and False are dropped\nin favor of the pre-existing Bool constructor.\nIf necessary, we can already re-introduce True and False.","shortMessageHtmlLink":"Use constructors for static tokens"}},{"before":"864a495e4df57b4d7b01077f0b29afacea22c67b","after":"d9307f2b728c1f8838d9f630f2a895eae332de70","ref":"refs/heads/go122-reflect-typefor","pushedAt":"2024-04-12T04:13:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use new reflect.TypeFor function available in Go 1.22","shortMessageHtmlLink":"Use new reflect.TypeFor function available in Go 1.22"}},{"before":null,"after":"864a495e4df57b4d7b01077f0b29afacea22c67b","ref":"refs/heads/go122-reflect-typefor","pushedAt":"2024-04-12T04:10:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use new reflect.TypeFor function available in Go 1.22","shortMessageHtmlLink":"Use new reflect.TypeFor function available in Go 1.22"}},{"before":null,"after":"fb6d8e74f594a8df1136b608d6f445d1d9a126eb","ref":"refs/heads/length64","pushedAt":"2024-04-12T04:07:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Use int64 for object or array length\n\nWARNING: This commit includes breaking changes.\n\nWhen processing JSON as a stream, it is conceivable that\nthe total number of elements in a JSON object or array\nexceeds a 32-bit integer.\n\nSwitch from int to int64 for a similar reason as why io.Copy\nreturns int64 instead of int.\n\nNote that the depth still uses an int because the stack must\nbe representable in memory, which is limited to the native\ninteger width of the platform. This is similar to how\nio.Reader.Read returns an int because the length of a []byte\ncannot possibly be larger than the largest int.","shortMessageHtmlLink":"Use int64 for object or array length"}},{"before":null,"after":"9fd8f2ca1e234635f8bccd1a277e2449fd45f698","ref":"refs/heads/single-line-flags","pushedAt":"2024-04-12T01:01:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Adjust single-line formatting behavior\n\nChanges made:\n\n* Further separate the behavior of SpaceAfterColon and SpaceAfterComma\n from Multiline. That is, use of Multiline does not affect the behavior\n of SpaceAfterColon or SpaceAfterComma unless it has not been set.\n For example, specifying (SpaceAfterColon(false), Multiline(true))\n should avoid the space after the colon even if we expect this\n combination of options to be seldom used.\n\n* Exclude whitespace formatting flags from DefaultOptionsV1\n since v1 has API support for both single-line and multi-line output,\n so setting (or clearing) them cannot be classified as v1 behavior.\n Similarly, exclude whitespace formatting flags from DefaultOptionsV2.\n\n* Simplify the TestMarshal cases.\n\n* Add explicit TestEncoder cases to exercise all\n Encoder.WriteValue code paths.","shortMessageHtmlLink":"Adjust single-line formatting behavior"}},{"before":"2e55bd4e08b08427ba10066e9617338e1f113c53","after":"b15d3effebea83868a1f76352db115fe2afa0061","ref":"refs/heads/master","pushedAt":"2024-04-11T18:15:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Single line pretty-printing options (#20)\n\nAdd SpaceAfterColon and SpaceAfterComma to emit a space after colons and commas.\r\nThis improves readability of JSON in single-line output.\r\n\r\nRename Expand as Multiline to be less ambiguous\r\nas technically SpaceAfterColon and SpaceAfterComma\r\nboth expand the output.","shortMessageHtmlLink":"Single line pretty-printing options (#20)"}},{"before":"2449b35ae8e9c537b51dc23b68b95715d86395cb","after":"9323fb898c6d627565b09030c612bebb91f11e8d","ref":"refs/heads/patches-1","pushedAt":"2024-04-02T06:32:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"use sync.OnceFunc instead of sync.Once\n\nsync.OnceFunc was added in Go 1.21 and simplifies the code slightly.\nWorth noting that, compared to Once, OnceFunc does a bit more work\nas it replays any panic that happens on the first call:\n\n goos: linux\n goarch: amd64\n pkg: github.com/go-json-experiment/json\n cpu: AMD Ryzen 7 PRO 5850U with Radeon Graphics\n │ old │ new │\n │ sec/op │ sec/op vs base │\n Testdata/CanadaGeometry/Marshal/Concrete-8 1.311m ± 0% 1.339m ± 0% +2.17% (p=0.002 n=6)\n Testdata/CanadaGeometry/Marshal/Interface-8 1.347m ± 1% 1.434m ± 0% +6.46% (p=0.002 n=6)\n Testdata/CanadaGeometry/Unmarshal/Concrete-8 1.832m ± 0% 1.867m ± 0% +1.92% (p=0.002 n=6)\n Testdata/CanadaGeometry/Unmarshal/Interface-8 2.962m ± 0% 2.827m ± 1% -4.54% (p=0.002 n=6)\n geomean 1.759m 1.785m +1.43%","shortMessageHtmlLink":"use sync.OnceFunc instead of sync.Once"}},{"before":null,"after":"2449b35ae8e9c537b51dc23b68b95715d86395cb","ref":"refs/heads/patches-1","pushedAt":"2024-04-02T06:30:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"use sync.OnceFunc instead of sync.Once\n\nsync.OnceFunc was added in Go 1.21 and simplifies the code slightly.\nWorth noting that, compared to Once, OnceFunc does a bit more work\nas it replays any panic that happens on the first call:\n\n goos: linux\n goarch: amd64\n pkg: github.com/go-json-experiment/json\n cpu: AMD Ryzen 7 PRO 5850U with Radeon Graphics\n │ old │ new │\n │ sec/op │ sec/op vs base │\n Testdata/CanadaGeometry/Marshal/Concrete-8 1.311m ± 0% 1.339m ± 0% +2.17% (p=0.002 n=6)\n Testdata/CanadaGeometry/Marshal/Interface-8 1.347m ± 1% 1.434m ± 0% +6.46% (p=0.002 n=6)\n Testdata/CanadaGeometry/Unmarshal/Concrete-8 1.832m ± 0% 1.867m ± 0% +1.92% (p=0.002 n=6)\n Testdata/CanadaGeometry/Unmarshal/Interface-8 2.962m ± 0% 2.827m ± 1% -4.54% (p=0.002 n=6)\n geomean 1.759m 1.785m +1.43%","shortMessageHtmlLink":"use sync.OnceFunc instead of sync.Once"}},{"before":"54c864be5b8da112b1492c72087512969f2fdea4","after":"2e55bd4e08b08427ba10066e9617338e1f113c53","ref":"refs/heads/master","pushedAt":"2023-11-02T23:28:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"README.md: link to the GitHub discussion (#19)\n\nAdd a link to the GitHub discussion to the readme.","shortMessageHtmlLink":"README.md: link to the GitHub discussion (#19)"}},{"before":"7d5dece49b7ac20af411d8b15e29679f59012aa9","after":null,"ref":"refs/heads/options-doc","pushedAt":"2023-10-13T22:33:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"}},{"before":"8aa127fd5801b9db7792f3467d6a426a8f83b875","after":"54c864be5b8da112b1492c72087512969f2fdea4","ref":"refs/heads/master","pushedAt":"2023-10-13T22:33:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Fix typo in jsontext.Options documentation (#15)","shortMessageHtmlLink":"Fix typo in jsontext.Options documentation (#15)"}},{"before":null,"after":"7d5dece49b7ac20af411d8b15e29679f59012aa9","ref":"refs/heads/options-doc","pushedAt":"2023-10-13T18:09:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Fix typo in jsontext.Options documentation","shortMessageHtmlLink":"Fix typo in jsontext.Options documentation"}},{"before":"dc36ffcf853375022a55817ac699f310e38cca9b","after":"8aa127fd5801b9db7792f3467d6a426a8f83b875","ref":"refs/heads/master","pushedAt":"2023-10-11T16:39:20.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"dsnet","name":"Joe Tsai","path":"/dsnet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6354026?s=80&v=4"},"commit":{"message":"Fix a typo in Options\n\nFix latter to later in options.go.","shortMessageHtmlLink":"Fix a typo in Options"}},{"before":"f320be06fe37a5779f510672a52a6ef799fd3110","after":"dc36ffcf853375022a55817ac699f310e38cca9b","ref":"refs/heads/master","pushedAt":"2023-09-22T19:02:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"go-json-experiment","name":null,"path":"/go-json-experiment","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/79328822?s=80&v=4"},"commit":{"message":"Adjust and cleanup documentation (#319)","shortMessageHtmlLink":"Adjust and cleanup documentation (#319)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOJfK6gA","startCursor":null,"endCursor":null}},"title":"Activity · go-json-experiment/json"}