{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":177727591,"defaultBranch":"master","name":"protobuf-go","ownerLogin":"protocolbuffers","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-03-26T06:26:40.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/26310541?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715004848.0","currentOid":""},"activityList":{"items":[{"before":"4a76e11653e368b9331815e1eb98e0cedc28997f","after":"09393c19510d9e0ee2040ff18726c006026a089e","ref":"refs/heads/master","pushedAt":"2024-05-06T12:18:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: start v1.34.1-devel\n\nChange-Id: I351d7c1945d8915904a753b8d5faf861d2e06a43\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/583436\nAuto-Submit: Lasse Folger \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"all: start v1.34.1-devel"}},{"before":"9d9d8d3ef53ea2cb021490c2132733b0371e7ec3","after":"4a76e11653e368b9331815e1eb98e0cedc28997f","ref":"refs/heads/master","pushedAt":"2024-05-06T12:17:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: release v1.34.1\n\nChange-Id: Iab8603be47d41f7cc289482b30479c20dcb89986\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/583435\nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Lasse Folger \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"all: release v1.34.1"}},{"before":"6c3ebca21ff888ca7c5bd394ebcb3b85a03e8d9f","after":"9d9d8d3ef53ea2cb021490c2132733b0371e7ec3","ref":"refs/heads/master","pushedAt":"2024-05-06T08:56:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"encoding/proto[json|text]: accept lower case names for group-like fields\n\nThis is a result of the discussion in [1]. Before editions, a group defined a multiple things:\n\n* a type\n* a field\n* an encoding scheme\n\nWith editions this has changed and groups no longer exist and the different parts have to be defined individually. Most importantly, the field and the type also had the same name (usually and CamelCase name). To keep compatibility with proto2 groups, [2] introduced a concept of group-like fields and adjusted the Text/JSON parsers to accept the type name instead of the field name for such fields. This means you can convert from proto2 groups to editions without changing the semantics.\nFurthermore, to avoid suprises with group-like fields (e.g. when a user by coincident specified a field that is group-like) protobuf decided that group-like fields should always accept the type and the field name for group like fields. This also allows us to eventually emit the field name rather than the type name for group like fields in the future.\n\nThis change implements this decision in Go.\n\n\n[1] https://github.com/protocolbuffers/protobuf/issues/16239\n[2] https://go.dev/cl/575916\n\nChange-Id: I701c4cd228d2e0867b2a87771b6c6331459c4910\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/582755\nReviewed-by: Lasse Folger \nReviewed-by: Mike Kruskal \nCommit-Queue: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Michael Stapelberg \nAuto-Submit: Michael Stapelberg ","shortMessageHtmlLink":"encoding/proto[json|text]: accept lower case names for group-like fields"}},{"before":"2939520f4a68512956fbe03218378e33619675a8","after":"6c3ebca21ff888ca7c5bd394ebcb3b85a03e8d9f","ref":"refs/heads/master","pushedAt":"2024-05-03T08:08:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: update to protobuf 27.0-rc1 and regenerate protos\n\nThis change required some changes to the editions default handling code\nbecause the descriptor.proto changed upstream [2]. The defaults are no\nlonger one feature set but are split into overridable and\nnot-overridable features which have to be merged.\n\nI had to do bootstraping in 4 phases but the results should be correct:\n\n1. generate everything depending on descriptor.proto\n2. generate new defaults binary proto\n3. adjust all code that works with defaults (*/edition.go files)\n4. generate everything else\n\nThe was required because 1. is a prerequisite for 3. while 2. and 3. are\na prerequisite for 4. (2. and 3. can probably be done in parallel).\n\nThe new release also introduced new conformance tests. The go\nimplementation is not yet conformant and the tests will be fixed in a\nfollow up change because they require changes to the protojson and\nprotoext encoders.\n\n[1] https://github.com/protocolbuffers/protobuf/commit/e5502c746ef62b3d76f589545803cfb46a5082ea\n\nChange-Id: Iddf248f6582a0402ab31256f6e64755d870ed82c\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/582635\nAuto-Submit: Lasse Folger \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Nicolas Hillegeer ","shortMessageHtmlLink":"all: update to protobuf 27.0-rc1 and regenerate protos"}},{"before":"242df22753274fcd5c7bede317585d5ed8200126","after":"2939520f4a68512956fbe03218378e33619675a8","ref":"refs/heads/master","pushedAt":"2024-04-30T07:43:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: start v1.34.0-devel\n\nChange-Id: Ib41a14bceb14155e4c50c6eabbfab98eb771c002\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/582456\nAuto-Submit: Lasse Folger \nReviewed-by: Chressie Himpel \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"all: start v1.34.0-devel"}},{"before":"c2b76eee36e7ac891e383d8f039e1c7eb5069f5c","after":"242df22753274fcd5c7bede317585d5ed8200126","ref":"refs/heads/master","pushedAt":"2024-04-30T07:43:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: release v1.34.0\n\nChange-Id: I7c2f620c393c0bc7212adb05320d57ea28d580cf\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/582455\nReviewed-by: Chressie Himpel \nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Lasse Folger ","shortMessageHtmlLink":"all: release v1.34.0"}},{"before":"e4ad8f9dfc8bc3184ebb70c296bd63955343e903","after":"c2b76eee36e7ac891e383d8f039e1c7eb5069f5c","ref":"refs/heads/master","pushedAt":"2024-04-23T14:53:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: fix deprecated\n\nChange-Id: I2db557669ada6e031140a09b3a92bd901220f8f3\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/580975\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Lasse Folger \nReviewed-by: Michael Stapelberg \nAuto-Submit: Michael Stapelberg ","shortMessageHtmlLink":"all: fix deprecated"}},{"before":"c2a26e757ed57746693fca53de0b6136a8e46b74","after":"e4ad8f9dfc8bc3184ebb70c296bd63955343e903","ref":"refs/heads/master","pushedAt":"2024-04-22T16:37:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"types/gofeaturespb: move go_feature.proto to be consistent with out languages\n\nhttps://github.com/golang/protobuf/issues/1608\n\nChange-Id: Ie4e60d8c6876e1d308a6119d3ff918bfeadd733e\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/579975\nAuto-Submit: Lasse Folger \nReviewed-by: Damien Neil \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"types/gofeaturespb: move go_feature.proto to be consistent with out l…"}},{"before":"d0f77aedbc0b47f36df559b805a1c25a3630b1d8","after":"c2a26e757ed57746693fca53de0b6136a8e46b74","ref":"refs/heads/master","pushedAt":"2024-04-18T14:49:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"encoding/{protojson,prototext}: strengthen wording on stability\n\nBecause these encoders use internal/detrand to make their output\nnondeterministic across builds, use stronger wording to warn users of\ntheir instability.\n\nUpdates golang/protobuf#1121\n\nChange-Id: Ia809e5c26ce24d17f602e7fbae26d9df2b57d05b\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/579895\nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Lasse Folger \nReviewed-by: Lasse Folger \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"encoding/{protojson,prototext}: strengthen wording on stability"}},{"before":"94bb78c93b96f99652979c7f02fd5c8dcc765d3d","after":"d0f77aedbc0b47f36df559b805a1c25a3630b1d8","ref":"refs/heads/master","pushedAt":"2024-04-18T07:28:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"proto: ensure MarshalOptions are plumbed to all Size calls\n\nThis used to not be necessary, but a subsequent change will change behavior\nbased on MarshalOptions.Deterministic, so it is important that we do not\naccidentally drop MarshalOptions anywhere.\n\nrelated to golang/protobuf#1609\n\nChange-Id: I6b53352707d93939642a627eb41c930f8ac3157f\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/579995\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Lasse Folger ","shortMessageHtmlLink":"proto: ensure MarshalOptions are plumbed to all Size calls"}},{"before":"671c2db9393240d0453b704332b24f6f371d5946","after":"94bb78c93b96f99652979c7f02fd5c8dcc765d3d","ref":"refs/heads/master","pushedAt":"2024-04-18T07:12:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"proto: return an error instead of producing invalid wire format\n\nThere currently is no risk of producing invalid wire format,\nbut that will change with subsequent changes regarding lazy decoding.\n\nWe have been running this change in production for about a month,\nwithout ever triggering the check (until lazy decoding is involved).\n\nrelated to golang/protobuf#1609\n\nChange-Id: I3c5c956aee2fa81f99dea03ed2a977a1547081fc\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/579595\nAuto-Submit: Michael Stapelberg \nReviewed-by: Lasse Folger \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"proto: return an error instead of producing invalid wire format"}},{"before":"98873a205002cd8a9a92e99ced0a7e6e20ceab2f","after":"671c2db9393240d0453b704332b24f6f371d5946","ref":"refs/heads/master","pushedAt":"2024-04-16T13:33:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"[proto] use the correct parent when resolving features for extensions\n\nWhen I implemented this initially, I thought the parent of an extension is the\nextendee. This is incorrect. The parent is the scope in which the extension is\ndefined. This CL changes the code to use the correct parent. This also allows\nus to reduce some complexity in the implementation because we don't need to\nwait until the extendee is resolved before we can resolve the features.\n\nChange-Id: I6d7012f7502ef95457ab96f3e8abc4ab763d5bcb\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/579275\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Michael Stapelberg \nAuto-Submit: Lasse Folger ","shortMessageHtmlLink":"[proto] use the correct parent when resolving features for extensions"}},{"before":"39bbf13930f428c2e82b36d5f92e8f85cc1451cc","after":"98873a205002cd8a9a92e99ced0a7e6e20ceab2f","ref":"refs/heads/master","pushedAt":"2024-04-08T13:08:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/impl: pass ExtensionTypeDescriptor to extensionMap\n\nThe layers freely convert between ExtensionTypeDescriptor (via\nExtensionTypeDescriptor.Type) and ExtensionType (via\nExtensionType.TypeDescriptor()). For certain hot functions , like\n(*extensionMap).Has() and (*extensionMap).Get(), this saves a Type() and\nTypeDescriptor() pair.\n\nOddly, the gains are bigger than I expected. This commit is\n02-typedesciptor-not-type, it is layered on top of CL 576315\n(named 01-cse-hasextension):\n\n benchstat 00-cse-messageinfo 01-cse-hasextension 02-typedesciptor-not-type\n goarch: amd64\n cpu: AMD Ryzen Threadripper PRO 3995WX 64-Cores\n │ 00-cse-messageinfo │ 01-cse-hasextension │ 02-typedesciptor-not-type │\n │ sec/op │ sec/op vs base │ sec/op vs base │\n Extension/Has/None-12 103.30n ± 3% 96.73n ± 1% -6.36% (p=0.000 n=10) 85.54n ± 2% -17.19% (p=0.000 n=10)\n Extension/Has/Set-12 113.05n ± 3% 107.15n ± 1% -5.22% (p=0.000 n=10) 97.36n ± 2% -13.88% (p=0.000 n=10)\n Extension/Get/None-12 182.7n ± 2% 176.3n ± 2% -3.48% (p=0.000 n=10) 173.3n ± 2% -5.09% (p=0.000 n=10)\n Extension/Get/Set-12 140.1n ± 2% 138.0n ± 1% -1.46% (p=0.024 n=10) 135.0n ± 1% -3.64% (p=0.000 n=10)\n Extension/Set-12 218.6n ± 2% 219.5n ± 1% ~ (p=0.172 n=10) 210.2n ± 2% -3.82% (p=0.001 n=10)\n geomean 145.6n 140.8n -3.25% 132.6n -8.91%\n\nChange-Id: If9c67c680ca57b5d93f863bb1c72f3e5031ed18c\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/576316\nReviewed-by: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Nicolas Hillegeer ","shortMessageHtmlLink":"internal/impl: pass ExtensionTypeDescriptor to extensionMap"}},{"before":"b30b634cb868c738b0a283321bba1e744e6ce7c0","after":"39bbf13930f428c2e82b36d5f92e8f85cc1451cc","ref":"refs/heads/master","pushedAt":"2024-04-08T13:07:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"proto: CSE ProtoReflect() and TypeDescriptor() in proto.HasExtension\n\nNo need to call them multiple times, no matter how cheap they are. Mild\nimprovements, this CL is 01-cse-hasextension:\n\n $ perflock -socket=@perflock -shared -cores 12 go test -tags=protolegacy -test.bench=BenchmarkExtension -test.benchmem -test.run=^# -test.count 10 internal/benchmarks/micro/micro_test.go\n\n goarch: amd64\n cpu: AMD Ryzen Threadripper PRO 3995WX 64-Cores\n │ 00-cse-messageinfo │ 01-cse-hasextension │\n │ sec/op │ sec/op vs base │\n Extension/Has/None-12 103.30n ± 3% 96.73n ± 1% -6.36% (p=0.000 n=10)\n Extension/Has/Set-12 113.0n ± 3% 107.1n ± 1% -5.22% (p=0.000 n=10)\n Extension/Get/None-12 182.7n ± 2% 176.3n ± 2% -3.48% (p=0.000 n=10)\n Extension/Get/Set-12 140.1n ± 2% 138.0n ± 1% -1.46% (p=0.024 n=10)\n Extension/Set-12 218.6n ± 2% 219.5n ± 1% ~ (p=0.172 n=10)\n geomean 145.6n 140.8n -3.25%\n\nChange-Id: Ide1a0c0fe4e562ed24f88dc829249fca0f052d48\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/576315\nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Nicolas Hillegeer \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"proto: CSE ProtoReflect() and TypeDescriptor() in proto.HasExtension"}},{"before":"bab4b5da986ef1753d2d3e764289795acf804ded","after":"b30b634cb868c738b0a283321bba1e744e6ce7c0","ref":"refs/heads/master","pushedAt":"2024-04-05T07:47:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"protobuf: fix required/group bug in descriptor proto output of editions files\n\nThese need to be converted back to the appropriate label/type enums to produce valid descriptor protos under editions.\n\nChange-Id: Ife04c4c556ffb06d1bc477725ff49058928a75ca\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/575916\nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Michael Stapelberg \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"protobuf: fix required/group bug in descriptor proto output of editio…"}},{"before":"a18684df74fa71694a001549d6b1dc5e3d40b2ca","after":"bab4b5da986ef1753d2d3e764289795acf804ded","ref":"refs/heads/master","pushedAt":"2024-04-04T07:45:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"protobuf: support gaps in edition defaults calculation\n\nprotoc guarantees that the edition defaults will be ordered, but not contiguous. Gaps represent no changes to the defaults and should be handled.\n\nChange-Id: I01fde5ff89b2b206b066c5a415083f6526a4ed91\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/575876\nLUCI-TryBot-Result: Go LUCI \nAuto-Submit: Michael Stapelberg \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"protobuf: support gaps in edition defaults calculation"}},{"before":"8a744307e30256ea8e3481625a89b436656a96fd","after":"a18684df74fa71694a001549d6b1dc5e3d40b2ca","ref":"refs/heads/master","pushedAt":"2024-04-04T07:31:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"protobuf: fix delimited fields under editions in go\n\nThis brings go into conformance with other implementations. Group-like message fields with delimited encoding will continue to use the type name for text-format, but everything else will use the field name.\n\nChange-Id: Ib6d07f19ccfa853ce0370392c89fd24fb7148793\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/575896\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Michael Stapelberg \nCommit-Queue: Michael Stapelberg ","shortMessageHtmlLink":"protobuf: fix delimited fields under editions in go"}},{"before":"55891d73cfbc5359b84c30625c37144e54c9da36","after":"8a744307e30256ea8e3481625a89b436656a96fd","ref":"refs/heads/master","pushedAt":"2024-04-02T14:35:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/cmd/generate-types: manual CSE of m.messageInfo()\n\nmessageInfo() looks like this:\n\n func (ms *messageState) messageInfo() *MessageInfo {\n \tmi := ms.LoadMessageInfo()\n \tif mi == nil {\n \t\tpanic(\"invalid nil message info; this suggests memory corruption due to a race or shallow copy on the message struct\")\n \t}\n \treturn mi\n }\n\n func (ms *messageState) LoadMessageInfo() *MessageInfo {\n \treturn (*MessageInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo))))\n }\n\nWhich is an atomic load and a predictable branch. On x86, this 64-bit\nload is just a MOV. On other platforms, like ARM64, there's actual\natomics involved (LDAR).\n\nMeaning, it's cheap, but not free. Eliminate redundant copies of this\n(Common Subexpression Elimination).\n\nThe newly added benchmarks improve by (geomean) 2.5%:\n\n $ benchstat pre post | head -10\n goarch: amd64\n cpu: AMD Ryzen Threadripper PRO 3995WX 64-Cores\n │ pre │ post │\n │ sec/op │ sec/op vs base │\n Extension/Has/None-12 106.4n ± 2% 104.0n ± 2% -2.21% (p=0.020 n=10)\n Extension/Has/Set-12 116.4n ± 1% 114.4n ± 2% -1.76% (p=0.017 n=10)\n Extension/Get/None-12 184.2n ± 1% 181.0n ± 1% -1.68% (p=0.003 n=10)\n Extension/Get/Set-12 144.5n ± 3% 140.7n ± 2% -2.63% (p=0.041 n=10)\n Extension/Set-12 227.2n ± 2% 218.6n ± 2% -3.81% (p=0.000 n=10)\n geomean 149.6n 145.9n -2.42%\n\nI didn't test on ARM64, but the difference should be larger due to the\nreduced atomics.\n\nChange-Id: I8eebeb6f753425b743368a7f5c7be4d48537e5c3\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/575036\nReviewed-by: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Damien Neil \nCommit-Queue: Nicolas Hillegeer \nAuto-Submit: Nicolas Hillegeer ","shortMessageHtmlLink":"internal/cmd/generate-types: manual CSE of m.messageInfo()"}},{"before":"87fded5d2a1215165991a86ae377b4361518a6e2","after":"55891d73cfbc5359b84c30625c37144e54c9da36","ref":"refs/heads/master","pushedAt":"2024-04-02T08:47:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"proto: add examples for Size, MarshalAppend (regarding allocations)\n\nHopefully this gives users a better understanding of the MarshalAppend\nentrypoint and what it can be used for, as well as the typical Size usage.\n\nChange-Id: I26c9705c3d1dbfea5f30820d41ccabbb88fbb772\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/573361\nReviewed-by: Lasse Folger \nAuto-Submit: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Cassondra Foesch \nReviewed-by: Damien Neil ","shortMessageHtmlLink":"proto: add examples for Size, MarshalAppend (regarding allocations)"}},{"before":"3797f00bcfc61561b221d1dd709cd439da574695","after":"87fded5d2a1215165991a86ae377b4361518a6e2","ref":"refs/heads/master","pushedAt":"2024-03-28T16:31:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"internal/impl: ensure proto.HasExtension does not allocate\n\nExtensions are unmarshaled lazily if protolegacy is true. The current\nimplementation of proto.HasExtension forces this unmarshaling to happen.\nChange that.\n\nLazy message extensions are unmarshaled on first access, see\n(*ExtensionField).Value. This leads to an (expensive) unmarshal\noperation even if the user only wanted to know whether the extension is\npresent.\n\nGranted, in most cases a HasExtension returning true will be followed by\na GetExtension. Due to memoization (see (*ExtensionField).lazyInit), the\ncost will just shift from HasExtension to GetExtension. But, this CL\nallows building cheaper functionality that only needs to know about\nextension existence.\n\nWhy can this validation be removed?\n\n - All tests pass.\n - This check was added in CL 229558. The author (Joe Tsai) noted:\n\n> Technically this shouldn't be needed, but I couldn't adequately reason\n> whether a nil message value would ever be set through non-reflection\n> means.\n\nLike the author, I believe it's not needed:\n\n - `proto.SetExtension` does not allow setting invalid messages (see\n proto/extension.go).\n - Likewise, (*extensionMap).Set panics when attempting to set an\n invalid value.\n - Unmarshaling does not produce submessages for which `IsValid` is\n false.\n\nThe added test fails without the fix:\n\n $ go test -tags=protolegacy -test.v -test.run=TestHasExtensionNoAlloc proto/extension_test.go\n === RUN TestHasExtensionNoAlloc\n === RUN TestHasExtensionNoAlloc/Nil\n === RUN TestHasExtensionNoAlloc/Eager\n === RUN TestHasExtensionNoAlloc/Lazy\n extension_test.go:156: proto.HasExtension should not allocate, but allocated 3.00B per run\n --- FAIL: TestHasExtensionNoAlloc (0.00s)\n --- PASS: TestHasExtensionNoAlloc/Nil (0.00s)\n --- PASS: TestHasExtensionNoAlloc/Eager (0.00s)\n --- FAIL: TestHasExtensionNoAlloc/Lazy (0.00s)\n FAIL\n FAIL command-line-arguments 0.018s\n\nThe tests are disabled in race mode because the race instrumentation for\nclosures et al. always allocates. The protolegacy tests were previously\nonly run in race mode. I added a non-race variant in\nintegration_test.go.\n\nChange-Id: Idbc67c1cf0aea8833a2735ca7bfc8d2466ceaf44\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/575035\nReviewed-by: Nicolas Hillegeer \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Damien Neil \nReviewed-by: Lasse Folger \nAuto-Submit: Nicolas Hillegeer ","shortMessageHtmlLink":"internal/impl: ensure proto.HasExtension does not allocate"}},{"before":"4fd828fdbf4719ded75c6f44681aea87a10968c2","after":"3797f00bcfc61561b221d1dd709cd439da574695","ref":"refs/heads/master","pushedAt":"2024-03-28T08:30:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"protogen: update Options documentation. protogen.Run doesn't exist.\n\nChange-Id: Iff653cd5b6a7d98ce7e3ead0877cba7b996e9c13\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/574836\nReviewed-by: Lasse Folger \nAuto-Submit: Michael Stapelberg \nReviewed-by: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"protogen: update Options documentation. protogen.Run doesn't exist."}},{"before":"c69658e23457d4e09bce7adc4920817aac8bb4ce","after":"4fd828fdbf4719ded75c6f44681aea87a10968c2","ref":"refs/heads/master","pushedAt":"2024-03-28T08:17:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"proto: extend Unmarshal documentation, include an example\n\nThis example uses the same protobuf and wire format encoding\nas the corresponding Marshal example added in commit\nhttps://go.googlesource.com/protobuf/+/c69658e23457d4e09\n\nChange-Id: Ifd64a93a14589595cbe9b218235b57fb15d423c2\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/574635\nReviewed-by: Lasse Folger \nReviewed-by: Damien Neil \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"proto: extend Unmarshal documentation, include an example"}},{"before":"3ebf7dd8a5331895cd3ffd849d6ebd313c509e0f","after":"c69658e23457d4e09bce7adc4920817aac8bb4ce","ref":"refs/heads/master","pushedAt":"2024-03-27T09:11:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"proto: extend Marshal documentation, include an example\n\nThe example has been written so that it can be run, meaning it only uses\npackages that are included in the protobuf module (durationpb specifically).\n\nI included an Output: comment in the example so that pkgsite displays the\nprogram output even without having to run it (but running it is of course\npossible).\n\nI added a brief tip to protoscope, which is often mentioned in the protobuf.dev\ndocs for illustrative purposes, and I think it really makes much clearer to the\nreader how the protobuf wire format looks like and what information survives the\nencoding process (field numbers and their values, but not field names like in\nJSON).\n\nThe struct literal contains only one field so that we don’t need to marshal this\nmessage deterministically for stable wire format, which is not the point of the\nexample and would be distracting.\n\nThe value was chosen such that the wire format hex representation contains at\nleast one byte that is clearly identifiable as hexadecimal, to avoid confusion.\n\nChange-Id: I86103abfd7d5b3f654aca3bfbb452f8ef7e49828\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/574455\nReviewed-by: Damien Neil \nReviewed-by: Lasse Folger \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"proto: extend Marshal documentation, include an example"}},{"before":"dea00b5e2afefeb92e99793818fa8ff95df6b198","after":"3ebf7dd8a5331895cd3ffd849d6ebd313c509e0f","ref":"refs/heads/master","pushedAt":"2024-03-26T09:29:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"proto: fix HasPresence for extensions and missing plugin response\n\nChange-Id: I9ee81f7a88cf91f3041e89936cb03511bd224603\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/574375\nAuto-Submit: Lasse Folger \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"proto: fix HasPresence for extensions and missing plugin response"}},{"before":"59034d830f736221121ff7590cd95bf40161e931","after":"dea00b5e2afefeb92e99793818fa8ff95df6b198","ref":"refs/heads/master","pushedAt":"2024-03-22T09:09:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: enable editions support\n\nChange-Id: I30e08a1610e11187a7632a409bd001f3bff1ba4a\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/573355\nAuto-Submit: Lasse Folger \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"all: enable editions support"}},{"before":"3039476726e4d5c3b2d7a946b1a5612b278b4525","after":"59034d830f736221121ff7590cd95bf40161e931","ref":"refs/heads/master","pushedAt":"2024-03-21T13:45:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"reflect/protodesc: restore edition in protodesc.ToDescriptorProto\n\nI have choosen to implement this via interace assertion so that\nother implementers of protoreflect.FileDescriptor can implement\nthis as well.\n\nChange-Id: Ib907895044e89bdba1009cc09129d3dd1224561f\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/573055\nReviewed-by: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"reflect/protodesc: restore edition in protodesc.ToDescriptorProto"}},{"before":"7259b467734a1d1adab45105fdef3afc89d61e7c","after":"3039476726e4d5c3b2d7a946b1a5612b278b4525","ref":"refs/heads/master","pushedAt":"2024-03-19T12:54:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: implement proto2/proto3 as editions [2/2]\n\nThis change removes the remaining usages of Syntax() from Go Protobuf\nand uses edition features instead.\n\nIt also adds a new function to the EnumDescriptor interface checking if\nthe enum is using a Closed semantics.\n\nAll of these changes were tested on the Google corpus.\n\nChange-Id: I7a8110f6f3b6ed24bf7ece500b4942371302c56c\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/572695\nReviewed-by: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI ","shortMessageHtmlLink":"all: implement proto2/proto3 as editions [2/2]"}},{"before":"f56368575a2d93d120f68c550720afd5fd39c8c0","after":"7259b467734a1d1adab45105fdef3afc89d61e7c","ref":"refs/heads/master","pushedAt":"2024-03-19T09:40:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: implement proto2/proto3 as editions [1/2]\n\nThis change removes most usages of Syntax() from the repository and uses\nedition features for instead. The appropriate edition feature defaults are\nloaded for proto2/proto3 when the initialization of the descriptors\nstart.\n\nAll of these changes were tested on the Google corpus.\n\nChange-Id: Ieca076a2b38ca8e50e084cd32e725b7b3dcb4171\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/572435\nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Michael Stapelberg ","shortMessageHtmlLink":"all: implement proto2/proto3 as editions [1/2]"}},{"before":"e21680754648204d20794b87e73ec378caefd110","after":"f56368575a2d93d120f68c550720afd5fd39c8c0","ref":"refs/heads/master","pushedAt":"2024-03-07T15:21:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"},"commit":{"message":"all: use subtests to identify the message type\n\nThis makes it a little easier to track down test failures.\n\nAlso add a note to TestMarshalAppendAllocations to explain what it tests.\n\nChange-Id: Ie35f3ddd7c7d5cb300294f0fe665c6711d45d186\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/569775\nAuto-Submit: Michael Stapelberg \nLUCI-TryBot-Result: Go LUCI \nReviewed-by: Lasse Folger ","shortMessageHtmlLink":"all: use subtests to identify the message type"}},{"before":"ec47fd138f9221b19a2afd6570b3c39ede9df3dc","after":null,"ref":"refs/tags/v1.33.0","pushedAt":"2024-03-05T19:16:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"gopherbot","name":"GopherBot","path":"/gopherbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8566911?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQn7XPAA","startCursor":null,"endCursor":null}},"title":"Activity · protocolbuffers/protobuf-go"}