)]}'
{
  "log": [
    {
      "commit": "c39628bde8b5d6b6e8f67f46580b5c1dd491b1fd",
      "tree": "8531caa5256bdbbf28c23806870a473a09820f14",
      "parents": [
        "a481f6a22f9426d6c2cc3d4be185b28d156886e4"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Apr 20 11:26:47 2026"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Apr 20 11:27:17 2026"
      },
      "message": "Allow specifying field sort options via textproto comments\n\nPiperOrigin-RevId: 902560769\n"
    },
    {
      "commit": "a481f6a22f9426d6c2cc3d4be185b28d156886e4",
      "tree": "c4858dc08a88cd04311629fc9b79cf1dfe2c7488",
      "parents": [
        "fcb97cc64c7b79be3b13acde32afe2e1ab7563cf"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Feb 17 16:07:19 2026"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Feb 17 16:07:48 2026"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 871323600\n"
    },
    {
      "commit": "fcb97cc64c7b79be3b13acde32afe2e1ab7563cf",
      "tree": "0c0a46cdf460613d440df18896e7d53d88084b9b",
      "parents": [
        "16587c79cd916daf09ade0a7d72e6a5de7c81f81"
      ],
      "author": {
        "name": "Yassin Ezbakhe",
        "email": "yasez@google.com",
        "time": "Mon Nov 24 09:39:25 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Nov 24 09:40:03 2025"
      },
      "message": "`txtpbfmt`: Add support for formatting repeated primitive fields as lists.\n\nWhen this option is used, repeated primitive fields are printed using a more conscice list syntax:\n\n```textproto\nrepeated_field: 1\nrepeated_field: 2\nrepeated_field: 3\n```\n\nvs\n\n```textproto\nrepeated_field: [1, 2, 3]\n```\n\nThis syntax is part of the go/textformat-spec (screen/4cDavcUGvdjyWwN), thus it\u0027s supported by all parsers. Furthermore, some proto implementations (like [C++](http://google3/third_party/protobuf/text_format.h;l\u003d407;rcl\u003d828248838) and [Java](http://google3/third_party/java_src/protobuf/current/java/com/google/protobuf/TextFormat.java;l\u003d385;rcl\u003d815831657)) allow using it when printing text-proto.\n\nThis CL is a no-op if the config option isn\u0027t used.\n\nPiperOrigin-RevId: 836120469\n"
    },
    {
      "commit": "16587c79cd916daf09ade0a7d72e6a5de7c81f81",
      "tree": "11a267f5086459258707cacbcab22e65c62a1f8e",
      "parents": [
        "0b0c2708cf8453209ac9864099a502d5d1723ee4"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Thu Oct 16 06:23:07 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Oct 16 06:23:45 2025"
      },
      "message": "Refactor processChar to reduce complexity\n\nPiperOrigin-RevId: 820081845\n"
    },
    {
      "commit": "0b0c2708cf8453209ac9864099a502d5d1723ee4",
      "tree": "feef9a00d2dca41315e6ab23142bd0711cf70fa7",
      "parents": [
        "3c4024c9cbce255b41110e942a85ac2508cafa9b"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Oct 15 05:57:26 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Oct 15 05:57:54 2025"
      },
      "message": "Refactor parseList to reduce complexity\n\nPiperOrigin-RevId: 819581854\n"
    },
    {
      "commit": "3c4024c9cbce255b41110e942a85ac2508cafa9b",
      "tree": "2d8087987339e0389908f3078ab7b9771dd996e4",
      "parents": [
        "ff5ff96e8aaf0d6acf3284f8208039c562384fc6"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Tue Oct 14 18:20:04 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Oct 14 18:20:42 2025"
      },
      "message": "Refactor the parse function in third_party/txtpbfmt/impl.go to reduce its complexity.\n\nPiperOrigin-RevId: 819314762\n"
    },
    {
      "commit": "ff5ff96e8aaf0d6acf3284f8208039c562384fc6",
      "tree": "35c27099bf4b4a746aa41b97da2171c6f86b9361",
      "parents": [
        "cf07efcaeff78f7d945f844d506daf4cad5a9229",
        "41497d58cdbd6d8e835850b5be8b5e1caa2c4f05"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Oct 02 04:48:16 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Oct 02 04:48:16 2025"
      },
      "message": "Merge pull request #179 from mhsong21:sort-by-descriptor-field\n\nPiperOrigin-RevId: 813377540\n"
    },
    {
      "commit": "41497d58cdbd6d8e835850b5be8b5e1caa2c4f05",
      "tree": "80a224dfe1ff3af76a97f02c6826bc7413b2bd1d",
      "parents": [
        "cbb995920540f2caaf878b4be65c11cd19cf7ebc"
      ],
      "author": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Tue Sep 30 08:01:51 2025"
      },
      "committer": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Tue Sep 30 08:01:51 2025"
      },
      "message": "fix impl_test.go\n"
    },
    {
      "commit": "cbb995920540f2caaf878b4be65c11cd19cf7ebc",
      "tree": "fd9a8a1d75bb9ab32e21edd42fa32d1c591d8abc",
      "parents": [
        "750f0e9d4d33810ae9adc28671e800d47b658a89"
      ],
      "author": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Tue Sep 30 07:55:30 2025"
      },
      "committer": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Tue Sep 30 07:55:30 2025"
      },
      "message": "fix descriptor test\n"
    },
    {
      "commit": "750f0e9d4d33810ae9adc28671e800d47b658a89",
      "tree": "6debe089443dd832a16b5ca3bd974ae2f6227486",
      "parents": [
        "be00ef9c9458fd80643a1fa4f1b7ef851b7c40d4"
      ],
      "author": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Mon Sep 29 12:43:13 2025"
      },
      "committer": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Mon Sep 29 12:43:13 2025"
      },
      "message": "remove redundant code\n"
    },
    {
      "commit": "be00ef9c9458fd80643a1fa4f1b7ef851b7c40d4",
      "tree": "dae17ff34646dddca5ef8a0997b9aa9da4e61e2e",
      "parents": [
        "cf07efcaeff78f7d945f844d506daf4cad5a9229"
      ],
      "author": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Mon Sep 29 12:34:31 2025"
      },
      "committer": {
        "name": "martin",
        "email": "martin@daangn.com",
        "time": "Mon Sep 29 12:34:31 2025"
      },
      "message": "Implement SortFieldsByFieldNumber\n"
    },
    {
      "commit": "cf07efcaeff78f7d945f844d506daf4cad5a9229",
      "tree": "ad315c86092138a5c163537853aea0db445c374c",
      "parents": [
        "f293424e46b51a8dc295a0edf0fe7217ebda2660"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Sep 03 17:36:22 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Sep 03 17:36:55 2025"
      },
      "message": "Support sorting protos in DNS order.\n\nPiperOrigin-RevId: 802614039\n"
    },
    {
      "commit": "f293424e46b51a8dc295a0edf0fe7217ebda2660",
      "tree": "9564d5ba5a75d68c47d609cf447984fb357f5e39",
      "parents": [
        "5749ee81bb51891be2f4cd3be2313196fcda508f"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 15:22:44 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 15:23:18 2025"
      },
      "message": "Move quote functions to a separate package.\n\nPiperOrigin-RevId: 776593011\n"
    },
    {
      "commit": "5749ee81bb51891be2f4cd3be2313196fcda508f",
      "tree": "ac3426ca9c443c53c983b6f18c58525e340cf170",
      "parents": [
        "882eecd6f55cf8f24abdcf2836ac88a34368683a"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 15:02:13 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 15:02:51 2025"
      },
      "message": "Factor wrapping code into separate package.\n\nPiperOrigin-RevId: 776586067\n"
    },
    {
      "commit": "882eecd6f55cf8f24abdcf2836ac88a34368683a",
      "tree": "276bbb6b43a6a8c0befa5b404eae7f9afb28014e",
      "parents": [
        "df82afe37c639c91bce0414bd06288e7f9c7417c"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 14:58:12 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 14:58:44 2025"
      },
      "message": "Extract printing into its own file.\n\nPiperOrigin-RevId: 776584715\n"
    },
    {
      "commit": "df82afe37c639c91bce0414bd06288e7f9c7417c",
      "tree": "27209bec43ffc5c74ad29bf52f4f505d2332eaca",
      "parents": [
        "b5dd51e7bb9ad8e0c66eb71b3a49a3be63059c29"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 14:50:10 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 14:50:34 2025"
      },
      "message": "Move implementation from parser.go to impl.go.\n\nPiperOrigin-RevId: 776582020\n"
    },
    {
      "commit": "b5dd51e7bb9ad8e0c66eb71b3a49a3be63059c29",
      "tree": "e005f6e9c340d3143ffd44ebaa61fc518afae0d9",
      "parents": [
        "3f6fb1af0bb50e3627a248238139bf6b6c23c9d2"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 14:43:33 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 14:44:03 2025"
      },
      "message": "Make private the symbols that don\u0027t have any users.\n\nPiperOrigin-RevId: 776580116\n"
    },
    {
      "commit": "3f6fb1af0bb50e3627a248238139bf6b6c23c9d2",
      "tree": "22ba72e5ad9cca92e43c454c437dc0e269689015",
      "parents": [
        "e38bc7bb9beb1de0985dedd845976e134a014d45"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 14:30:04 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 14:30:37 2025"
      },
      "message": "Move sorting logic to sort.go.\n\nPiperOrigin-RevId: 776576601\n"
    },
    {
      "commit": "e38bc7bb9beb1de0985dedd845976e134a014d45",
      "tree": "5787f8fc5a51af4cffa3ad1200fd0cb577882e95",
      "parents": [
        "c99e9933ed4dd458c1b3d2fbe1de69054b357503"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 07:47:11 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 07:47:47 2025"
      },
      "message": "No public description\n\nPiperOrigin-RevId: 776463573\n"
    },
    {
      "commit": "c99e9933ed4dd458c1b3d2fbe1de69054b357503",
      "tree": "7b8e3b01e95b5fa34625bf1afda59db217c76f95",
      "parents": [
        "ef04f62900c6f11415cd5e8e80623aaa32b9bec7"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 06:30:32 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 06:31:09 2025"
      },
      "message": "Move parser.Config to config.go.\n\nPiperOrigin-RevId: 776442344\n"
    },
    {
      "commit": "ef04f62900c6f11415cd5e8e80623aaa32b9bec7",
      "tree": "6f91628e6177bcf14af9bd2bd019968d0ee72248",
      "parents": [
        "d84393b9139422fd6e96bf0a0dde25b492b65458"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 06:07:48 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 06:08:25 2025"
      },
      "message": "Delete parser.Logger alias.\n\nPiperOrigin-RevId: 776436111\n"
    },
    {
      "commit": "d84393b9139422fd6e96bf0a0dde25b492b65458",
      "tree": "9726bbb57b4c6ba9e5389c51c75412046f92f35f",
      "parents": [
        "88e1abe6e13ab34087bffc06b306e7c124746f2e"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 06:06:09 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 06:06:33 2025"
      },
      "message": "Correct use of the logger in fmt.go.\n\nPiperOrigin-RevId: 776435689\n"
    },
    {
      "commit": "88e1abe6e13ab34087bffc06b306e7c124746f2e",
      "tree": "b371b7f306a00c1d55cfc064961e9d9679700de5",
      "parents": [
        "763389ce3db4515de02158db1a54d86394e44922"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 06:02:17 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 06:02:47 2025"
      },
      "message": "Move parser.Logger to logger.go.\n\nPiperOrigin-RevId: 776434490\n"
    },
    {
      "commit": "763389ce3db4515de02158db1a54d86394e44922",
      "tree": "334fc4de2da25e389077f5a0ffdffb6451ef8f3c",
      "parents": [
        "5e76e95c4d63bd88e95438957df428aee1f64fb6"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 05:58:26 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 05:58:58 2025"
      },
      "message": "Improve formatting of test inputs.\n\nPiperOrigin-RevId: 776433173\n"
    },
    {
      "commit": "5e76e95c4d63bd88e95438957df428aee1f64fb6",
      "tree": "b14e36f858b4f69b0d833ff81ce463881d067cc1",
      "parents": [
        "9bdfa6b1ffe3ea60244715092ce0b3cdf645bda0"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 05:53:45 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 05:54:22 2025"
      },
      "message": "Improve formatting of test inputs.\n\nPiperOrigin-RevId: 776432122\n"
    },
    {
      "commit": "9bdfa6b1ffe3ea60244715092ce0b3cdf645bda0",
      "tree": "3373162d8c8711c890763cca7e25ed8e1d9451e4",
      "parents": [
        "b31462545192ec28e45690818d650d3c93bc1452"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Fri Jun 27 05:48:44 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jun 27 05:49:14 2025"
      },
      "message": "Improve formatting of test inputs.\n\nPiperOrigin-RevId: 776430959\n"
    },
    {
      "commit": "b31462545192ec28e45690818d650d3c93bc1452",
      "tree": "44ea3a8b2593b16888e9338a71c3f8c506b67ba4",
      "parents": [
        "078d4cace0eb7fd924820eb842bc05430fcb8989"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Thu Jun 26 17:15:33 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Jun 26 17:16:07 2025"
      },
      "message": "Fix html wrapping and add test.\n\nPiperOrigin-RevId: 776187072\n"
    },
    {
      "commit": "078d4cace0eb7fd924820eb842bc05430fcb8989",
      "tree": "9f4b0fa94c6101ea099853025d9c8e78bb77e432",
      "parents": [
        "f802d85a469e4b230f3ef4a07ec80d311fba89ba"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Thu Jun 26 11:37:34 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Jun 26 11:38:18 2025"
      },
      "message": "Fix removeDeleted for empty children.\n\nPiperOrigin-RevId: 776083907\n"
    },
    {
      "commit": "f802d85a469e4b230f3ef4a07ec80d311fba89ba",
      "tree": "612ce0f6b13401e2dc78246b5b6b70b8517fc7ec",
      "parents": [
        "92bab533941eb4e9900abb969cdb0f59a247fe54"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Thu Jun 26 05:57:06 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Jun 26 05:57:35 2025"
      },
      "message": "Fix lint errors.\n\nPiperOrigin-RevId: 775989831\n"
    },
    {
      "commit": "92bab533941eb4e9900abb969cdb0f59a247fe54",
      "tree": "823acc2f28cb591397a81e738ebc940f51e1401c",
      "parents": [
        "6faac8e2a9343482bcbfa26acb0277708da6f16f"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Thu Jun 26 05:49:44 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Jun 26 05:50:20 2025"
      },
      "message": "Cover additional error handling paths.\n\nPiperOrigin-RevId: 775987926\n"
    },
    {
      "commit": "6faac8e2a9343482bcbfa26acb0277708da6f16f",
      "tree": "e30313655010efec3759ff78960106a97435529c",
      "parents": [
        "c917e9664b93f5f7ba1890e9fe9db7390758f0e6"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Thu Jun 26 05:45:49 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Jun 26 05:46:23 2025"
      },
      "message": "Migrate deprecated ioutil package calls to os calls.\n\nPiperOrigin-RevId: 775986914\n"
    },
    {
      "commit": "c917e9664b93f5f7ba1890e9fe9db7390758f0e6",
      "tree": "a2d1301ef90bdc70b492f65c7a7d6d0476ae40bd",
      "parents": [
        "ddd2b88184e508cae381c082db391b1ecccadb70"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 08:56:10 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 08:56:47 2025"
      },
      "message": "Use function to append runes.\n\nPiperOrigin-RevId: 775586561\n"
    },
    {
      "commit": "ddd2b88184e508cae381c082db391b1ecccadb70",
      "tree": "de7ed4c431f68aa2d8245e32584389c031bd46e0",
      "parents": [
        "01a3745c6a86f59fbeb92f2c88eac664f7e1b95a"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 08:52:14 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 08:52:44 2025"
      },
      "message": "Refactor: Split Unescape logic into dedicated functions.\n\nPiperOrigin-RevId: 775585293\n"
    },
    {
      "commit": "01a3745c6a86f59fbeb92f2c88eac664f7e1b95a",
      "tree": "bed0c0dacd5416b1a017a697a1a6393182f27b70",
      "parents": [
        "6abc7e910a6905cbd5b6c5f0dd3052d246f5812d"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 08:47:43 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 08:48:13 2025"
      },
      "message": "Reduce cognitive complexity of main function in txtpbfmt.\n\nPiperOrigin-RevId: 775583615\n"
    },
    {
      "commit": "6abc7e910a6905cbd5b6c5f0dd3052d246f5812d",
      "tree": "e0ddb3a5ae1f19c06571d8b1d69b64d1c90b234c",
      "parents": [
        "16d806f8c11f6f480b412cc56d5e357fc0fce318"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 08:44:08 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 08:44:59 2025"
      },
      "message": "Refactor: extract some methods from `readValues`\n\nPiperOrigin-RevId: 775582491\n"
    },
    {
      "commit": "16d806f8c11f6f480b412cc56d5e357fc0fce318",
      "tree": "bb25ccf0b307969d4b966296acf92955f6f69cca",
      "parents": [
        "c439210621198afad2387bdec74647270d042a6f"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 08:39:15 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 08:39:48 2025"
      },
      "message": "Cleanup the code for handling bracket matching in textproto.\n\nPiperOrigin-RevId: 775580862\n"
    },
    {
      "commit": "c439210621198afad2387bdec74647270d042a6f",
      "tree": "fa94d3b0f9b836aa694a10e8277044341016216c",
      "parents": [
        "5d434e0a71d9f314b130bb96836395cb3f577394"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:56:43 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:57:08 2025"
      },
      "message": "Break the parsing of nodes into smaller functions.\n\nPiperOrigin-RevId: 775569123\n"
    },
    {
      "commit": "5d434e0a71d9f314b130bb96836395cb3f577394",
      "tree": "296143d3616e35e6c515b7525e8705a29e0647aa",
      "parents": [
        "cf9b98b6ad26c2a25ed5c093dd2e287a5ba35c1c"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:53:03 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:53:40 2025"
      },
      "message": "Extracted list of values same-line check to it\u0027s own function.\n\nPiperOrigin-RevId: 775568194\n"
    },
    {
      "commit": "cf9b98b6ad26c2a25ed5c093dd2e287a5ba35c1c",
      "tree": "72a9d5d9703e193f11c0643f3c19e0a28a6b0747",
      "parents": [
        "b50f23a8ccbeafc479cbe5ecd7e1d50645e56937"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:49:19 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:49:52 2025"
      },
      "message": "Simplified the readTemplate() function.\n\nPiperOrigin-RevId: 775567131\n"
    },
    {
      "commit": "b50f23a8ccbeafc479cbe5ecd7e1d50645e56937",
      "tree": "14811e19c3ad96102b53f0fad3c5e079da3b7a6c",
      "parents": [
        "45135e733a40501c13b7620468575bc62aef80a4"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:44:55 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:45:30 2025"
      },
      "message": "Move write pre-comments into a separate function.\n\nPiperOrigin-RevId: 775565755\n"
    },
    {
      "commit": "45135e733a40501c13b7620468575bc62aef80a4",
      "tree": "987b531b29b72458c85868789a00bdcacfc7cf6b",
      "parents": [
        "9806ea370dd47a4a60518436d901546463b7bbd3"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:30:40 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:31:18 2025"
      },
      "message": "Refactor `writeNodes` function to be more readable by creating `writeNode` function.\n\nPiperOrigin-RevId: 775561206\n"
    },
    {
      "commit": "9806ea370dd47a4a60518436d901546463b7bbd3",
      "tree": "70b4fc1a1bff269f4219756e9d426c7079a8f8b3",
      "parents": [
        "504d2d47391f4f3d90d0976410e45834670d400b"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:27:42 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:28:15 2025"
      },
      "message": "Reduce cyclomatic complexity in `needsWrappingAtColumn` by extracting `shouldWrapString`.\n\nPiperOrigin-RevId: 775560549\n"
    },
    {
      "commit": "504d2d47391f4f3d90d0976410e45834670d400b",
      "tree": "06d3f50581c731ba83272ed4e8c17b9add6c88c1",
      "parents": [
        "f485d8457fbbda70deff55437d15502973fef895"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:06:55 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:07:24 2025"
      },
      "message": "Simplify implementation of wrapStrings.\n\nPiperOrigin-RevId: 775553801\n"
    },
    {
      "commit": "f485d8457fbbda70deff55437d15502973fef895",
      "tree": "7f524801e0911ee16660edd35830e2e543e658b1",
      "parents": [
        "6e73f7a23b3ac82033efc13696d25f76a69fc3b5"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:04:11 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:04:41 2025"
      },
      "message": "Split text txtpbfmt wrap logic into separate functions.\n\nPiperOrigin-RevId: 775552556\n"
    },
    {
      "commit": "6e73f7a23b3ac82033efc13696d25f76a69fc3b5",
      "tree": "1fc43365bba62a1853c01c98a7aa3bdfceb7ceb8",
      "parents": [
        "a5fe55684d52b017a494471a2a08264d778166ad"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jun 25 07:00:37 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 25 07:01:22 2025"
      },
      "message": "Pull consumeWhitespace out of readFormatterDisabledBlock.\n\nPiperOrigin-RevId: 775551173\n"
    },
    {
      "commit": "a5fe55684d52b017a494471a2a08264d778166ad",
      "tree": "2abb34938a3fcacab4a30a5a6bb41c41cd726808",
      "parents": [
        "bcaa21031d50b90bf873b5e952f30b4721fadfc0"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Mar 26 14:44:01 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Mar 26 14:44:35 2025"
      },
      "message": "Add a config called reverse_sort to reverse the sort order of sort_* configs\n\nPiperOrigin-RevId: 740763654\n"
    },
    {
      "commit": "bcaa21031d50b90bf873b5e952f30b4721fadfc0",
      "tree": "4532892d064667568695f0c835d7dfdb5ac4fc55",
      "parents": [
        "1ee4910263ac60befe5382667ecbdee26f4ab38c"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Mar 17 17:05:53 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Mar 17 17:06:38 2025"
      },
      "message": "Generalize sort_repeated_fields_by_subfield to any path to the subfields.\n\nPiperOrigin-RevId: 737656531\n"
    },
    {
      "commit": "1ee4910263ac60befe5382667ecbdee26f4ab38c",
      "tree": "bf3b6a7cdac98ffbd96adaeff3c1b544d2cecf62",
      "parents": [
        "30b622f9d9ee46bc6f5bc965418a8e8f2235a68c"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Feb 18 08:52:43 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Feb 18 08:53:12 2025"
      },
      "message": "chomp carriage returns\n\nPiperOrigin-RevId: 728088890\n"
    },
    {
      "commit": "30b622f9d9ee46bc6f5bc965418a8e8f2235a68c",
      "tree": "d8437828cd3a2681945c802ac054edd53b531fea",
      "parents": [
        "feedd8250727ff9e001e735bc7700800b79e0f29"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Feb 18 08:43:29 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Feb 18 08:44:01 2025"
      },
      "message": "change to go ver to 1.19\n\nPiperOrigin-RevId: 728086781\n"
    },
    {
      "commit": "feedd8250727ff9e001e735bc7700800b79e0f29",
      "tree": "8390b421a043dc31befd29da6e47a8d86a2565e6",
      "parents": [
        "20d2c9ebc01daa87ca2b7b697a757613012b104d",
        "d2d5496a837f2ab7eb8b5d2dce46196e15c3a8d3"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jan 29 17:15:21 2025"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jan 29 17:15:21 2025"
      },
      "message": "Merge pull request #127 from protocolbuffers:dependabot/go_modules/github.com/golang/glog-1.2.4\n\nPiperOrigin-RevId: 721002144\n"
    },
    {
      "commit": "d2d5496a837f2ab7eb8b5d2dce46196e15c3a8d3",
      "tree": "8390b421a043dc31befd29da6e47a8d86a2565e6",
      "parents": [
        "20d2c9ebc01daa87ca2b7b697a757613012b104d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jan 28 17:30:04 2025"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 28 17:30:04 2025"
      },
      "message": "Bump github.com/golang/glog\n\nBumps [github.com/golang/glog](https://github.com/golang/glog) from 0.0.0-20160126235308-23def4e6c14b to 1.2.4.\n- [Release notes](https://github.com/golang/glog/releases)\n- [Commits](https://github.com/golang/glog/commits/v1.2.4)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/golang/glog\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "20d2c9ebc01daa87ca2b7b697a757613012b104d",
      "tree": "6cd5563c43d1b8ad00755dada4eb968fb689421b",
      "parents": [
        "5c07d7caf7b12063087be45ff1fbe3c80bc97e22"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Nov 12 17:09:01 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Nov 12 17:09:44 2024"
      },
      "message": "Recognize \\r as a valid space separator\n\nPiperOrigin-RevId: 695757909\n"
    },
    {
      "commit": "5c07d7caf7b12063087be45ff1fbe3c80bc97e22",
      "tree": "6bd5f31187dfbb8629ecb23365ccadf8c9efce23",
      "parents": [
        "11f40bd50052b36eb1bbae45adf1f4573d8c82d2"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Nov 12 06:11:08 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Nov 12 06:11:36 2024"
      },
      "message": "Improve error readability\n\nPiperOrigin-RevId: 695596263\n"
    },
    {
      "commit": "11f40bd50052b36eb1bbae45adf1f4573d8c82d2",
      "tree": "123fde3c538c7717f054bc63822a37a390bb206e",
      "parents": [
        "8e6b51fa9bef7d528eb13ce97f356542c8071756"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Oct 23 07:06:05 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Oct 23 07:06:37 2024"
      },
      "message": "Include the line number when reporting an extra \u0027}\u0027 or \u0027\u003e\u0027, rather than just the character index.\n\nPiperOrigin-RevId: 688843455\n"
    },
    {
      "commit": "8e6b51fa9bef7d528eb13ce97f356542c8071756",
      "tree": "18cd3f0597a21c59b475ad525fa23d7400f4e74e",
      "parents": [
        "e3b15047476d10d6fa858119322773dbe0ce7d35"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Aug 23 08:45:05 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Aug 23 08:45:32 2024"
      },
      "message": "Incremental improvement to granular disabling directive.\n\nPiperOrigin-RevId: 666695192\n"
    },
    {
      "commit": "e3b15047476d10d6fa858119322773dbe0ce7d35",
      "tree": "704a513148d12e1d65048f71624968bc59a2d1cb",
      "parents": [
        "21b1d9897dc76b0a16b919a7b5d1af9f74778a81"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Aug 21 14:05:59 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Aug 21 14:06:25 2024"
      },
      "message": "Correctly implement granular formatter disabling and allow some white space before directive.\n\nPiperOrigin-RevId: 665864005\n"
    },
    {
      "commit": "21b1d9897dc76b0a16b919a7b5d1af9f74778a81",
      "tree": "61cacd7d13139ab116960ef9351f18bb2997f59a",
      "parents": [
        "0a5c94ea5f2d61a60e3f73790112616c6eb059da"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Aug 20 13:57:25 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Aug 20 13:57:58 2024"
      },
      "message": "Fix granular formatting disable to allow for preceding blank lines.\n\nPiperOrigin-RevId: 665343471\n"
    },
    {
      "commit": "0a5c94ea5f2d61a60e3f73790112616c6eb059da",
      "tree": "de1b7e0d4df154efcbe32ff7ed9daf77331dfdc6",
      "parents": [
        "a619d35b4548a6e01dcab305e7d971df9a472f7f"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Aug 19 13:48:52 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Aug 19 13:49:31 2024"
      },
      "message": "Fix granular formatting disable to allow for preceding blank lines.\n\nPiperOrigin-RevId: 664785820\n"
    },
    {
      "commit": "a619d35b4548a6e01dcab305e7d971df9a472f7f",
      "tree": "61cacd7d13139ab116960ef9351f18bb2997f59a",
      "parents": [
        "70a59802d0696df0cce396b6971b29e87afe8220"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Sun Aug 18 12:30:35 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Sun Aug 18 12:31:04 2024"
      },
      "message": "txtpbfmt: add support for wrapping without wordwrap\n\nPiperOrigin-RevId: 664420715\n"
    },
    {
      "commit": "70a59802d0696df0cce396b6971b29e87afe8220",
      "tree": "44ee6c48017ded0794ba6e0e7619c329bd73f675",
      "parents": [
        "dedd929c1c222fd4d895cda0e1c87b940262b1f5"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Aug 13 18:03:33 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Aug 13 18:03:55 2024"
      },
      "message": "Allow granular disabling of formatter and fix unnecessary nil check.\n\nPiperOrigin-RevId: 662580778\n"
    },
    {
      "commit": "dedd929c1c222fd4d895cda0e1c87b940262b1f5",
      "tree": "62723cee411ef4cd9b5482d64427a05582e6763c",
      "parents": [
        "1e18ef0a7fdc4d28b9223d2d50b4b2be7024519e"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Tue Jun 11 10:15:07 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jun 11 10:15:34 2024"
      },
      "message": "Internal.\n\nPiperOrigin-RevId: 642203800\n"
    },
    {
      "commit": "1e18ef0a7fdc4d28b9223d2d50b4b2be7024519e",
      "tree": "31f08be87320ba1efac91a34caa3898efddd1a1b",
      "parents": [
        "ef3ab179eed6fa957093608ca1ddef8b0bd48181"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Apr 16 19:36:34 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Apr 16 19:37:09 2024"
      },
      "message": "Make quote symbol preserved in multiline quoted strings.\n\nPiperOrigin-RevId: 625419105\n"
    },
    {
      "commit": "ef3ab179eed6fa957093608ca1ddef8b0bd48181",
      "tree": "a8db608992efa166d52334c7aed080e6e9337ab2",
      "parents": [
        "426a48838e199416670e1bc40643a0f16d4b8bf8"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 16 14:50:10 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 16 14:50:35 2024"
      },
      "message": "Rollback of \"Prevent blank lines between a comment and an item from moving with the item\".\n\nPiperOrigin-RevId: 598827234\n"
    },
    {
      "commit": "426a48838e199416670e1bc40643a0f16d4b8bf8",
      "tree": "65861b21a2dd6e2a4fe86f67b5d7d53deb787ebc",
      "parents": [
        "5d639269de1fec3632750834e0be7c240de90339"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 16 14:04:56 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 16 14:05:30 2024"
      },
      "message": "Sort list values if repeated field sorting is enabled.\n\nPiperOrigin-RevId: 598818840\n"
    },
    {
      "commit": "5d639269de1fec3632750834e0be7c240de90339",
      "tree": "99931a6758badb8a00ef5790321d15132a876e30",
      "parents": [
        "442737fd7ced9dbbcb15b9d1804b24fd3d0d7d4a"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 16 11:44:51 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 16 11:45:14 2024"
      },
      "message": "Prevent blank lines between a comment and an item from moving with the item.\n\nThis makes it possible to keep the file header comment at the top of the file even after multiple rounds of sorting, by adding a blank line after the header comment.\n\nPiperOrigin-RevId: 598791768\n"
    },
    {
      "commit": "442737fd7ced9dbbcb15b9d1804b24fd3d0d7d4a",
      "tree": "1d900f3bd1f64f619e4e96d3923a60e9412f9e55",
      "parents": [
        "75d56e896c677a4f73c8a19ab1bc50152a58936a"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 15 12:13:37 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 15 12:14:05 2024"
      },
      "message": "Add a method for checking if a node is a blank line.\n\nPiperOrigin-RevId: 598573944\n"
    },
    {
      "commit": "75d56e896c677a4f73c8a19ab1bc50152a58936a",
      "tree": "6b2fc904fc66d585d1aec3b69ff805ce96830470",
      "parents": [
        "c34e10ec6191fdc100115bfc4cbfb44cf4a0e47a"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jan 12 16:12:52 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jan 12 16:13:28 2024"
      },
      "message": "Simplify handling of newline characters at the end of previous items in the parse loop.\n\nPiperOrigin-RevId: 597844010\n"
    },
    {
      "commit": "c34e10ec6191fdc100115bfc4cbfb44cf4a0e47a",
      "tree": "749c57e385b8629b4cc6fb5dfae8f61bac56c35a",
      "parents": [
        "7af6c075c39d240db15c57b98f67607af306f40c"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jan 12 16:09:55 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jan 12 16:10:18 2024"
      },
      "message": "Add a test case that makes it easy to see that detached comments affect sorting.\n\nPiperOrigin-RevId: 597843359\n"
    },
    {
      "commit": "7af6c075c39d240db15c57b98f67607af306f40c",
      "tree": "557ccd3836b6a533444a0a8d0130e7f9c24db290",
      "parents": [
        "084445ff1adf0d8a27429bba65dbde5663f02d26"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jan 12 16:08:11 2024"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Jan 12 16:08:39 2024"
      },
      "message": "Add a test case that shows the blank line collapsing behavior.\n\nPiperOrigin-RevId: 597842978\n"
    },
    {
      "commit": "084445ff1adf0d8a27429bba65dbde5663f02d26",
      "tree": "deb21520e66829799851b2984d9748db9fde060c",
      "parents": [
        "1072508f7daa1cfc48ec181e85cacc040cf46f7f"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Oct 25 11:55:04 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Oct 25 11:55:47 2023"
      },
      "message": "Document configurable txtpbfmt features.\n\nPiperOrigin-RevId: 576492135\n"
    },
    {
      "commit": "1072508f7daa1cfc48ec181e85cacc040cf46f7f",
      "tree": "c6a1c4d04eea2215a18a07a273a2bf9e9f244cd9",
      "parents": [
        "d9d085e6be90937c1c4eb99442dcb8cba93e2ef5"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Oct 16 16:56:03 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Oct 16 16:56:30 2023"
      },
      "message": "Add additional tests that demonstrate how textproto lists are parsed\n\nPiperOrigin-RevId: 573844049\n"
    },
    {
      "commit": "d9d085e6be90937c1c4eb99442dcb8cba93e2ef5",
      "tree": "f6d54cb624aeaef217a6a333dd6f144a79e59e8d",
      "parents": [
        "f3cc04160ba48cedaaf788030970332539d1ba19"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Aug 30 07:44:44 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Aug 30 07:45:15 2023"
      },
      "message": "Update `parser.ByFieldOrder` to make it clear that it is transitive and stable.\n\nhttps://pkg.go.dev/sort#Interface says:\n\n\u003e Less must describe a transitive ordering:\n\u003e - if both Less(i, j) and Less(j, k) are true, then Less(i, k) must be true as well.\n\u003e - if both Less(i, j) and Less(j, k) are false, then Less(i, k) must be false as well.\n\nPiperOrigin-RevId: 561258088\n"
    },
    {
      "commit": "f3cc04160ba48cedaaf788030970332539d1ba19",
      "tree": "bcc8ff157bf8e41c2663fc5f3cfb001f16f25e68",
      "parents": [
        "d15414b563ef8e508f5c9f2ad17ed5750f01090e"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Aug 30 07:42:34 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Aug 30 07:43:03 2023"
      },
      "message": "Make `sort_repeated_fields_by_content` transitive and stable.\n\nhttps://pkg.go.dev/sort#Interface says:\n\n\u003e Less must describe a transitive ordering:\n\u003e - if both Less(i, j) and Less(j, k) are true, then Less(i, k) must be true as well.\n\u003e - if both Less(i, j) and Less(j, k) are false, then Less(i, k) must be false as well.\n\nThe previous implementation tried to sort only adjacent fields, but this meant it didn\u0027t follow the requirements of `Less`. This made the sorting unstable for inputs like the attached bug.\n\nThe new implementation makes the order transitive and stable.\n\nThe next change will fix `parser.ByFieldOrder` which has the same problem.\n\nPiperOrigin-RevId: 561257707\n"
    },
    {
      "commit": "d15414b563ef8e508f5c9f2ad17ed5750f01090e",
      "tree": "2383c80dc5115a642a570d9083eb6a5a8e1fa5b9",
      "parents": [
        "c3c0a04699d35bbdb315bb2713731026a00fb41a"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Aug 30 07:27:38 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Aug 30 07:28:07 2023"
      },
      "message": "Make `sort_repeated_fields_by_subfield` transitive and stable.\n\nhttps://pkg.go.dev/sort#Interface says:\n\n\u003e Less must describe a transitive ordering:\n\u003e - if both Less(i, j) and Less(j, k) are true, then Less(i, k) must be true as well.\n\u003e - if both Less(i, j) and Less(j, k) are false, then Less(i, k) must be false as well.\n\nThe previous implementation tried to sort only adjacent fields, but this meant it didn\u0027t follow the requirements of `Less`. This made the sorting unstable for inputs like the attached bug.\n\nThe new implementation makes the order transitive and stable.\n\nThe next change will fix `sort_repeated_fields_by_content` which has the same problem.\n\nPiperOrigin-RevId: 561255014\n"
    },
    {
      "commit": "c3c0a04699d35bbdb315bb2713731026a00fb41a",
      "tree": "748b7412961a3e729a9cccd1ad67cf51a8eeebdf",
      "parents": [
        "0c31dbd32b9fe5e579a57ccfa13bbc7757e8bf18"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Aug 30 07:22:32 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Aug 30 07:23:02 2023"
      },
      "message": "Sort all children and also sort adjacent children with the same name.\n\nhttps://pkg.go.dev/sort#Interface says:\n\n\u003e Less must describe a transitive ordering:\n\u003e - if both Less(i, j) and Less(j, k) are true, then Less(i, k) must be true as well.\n\u003e - if both Less(i, j) and Less(j, k) are false, then Less(i, k) must be false as well.\n\nIn order to follow the requirements of `Less`, we need to individually sort each subslice.\n\nPiperOrigin-RevId: 561254248\n"
    },
    {
      "commit": "0c31dbd32b9fe5e579a57ccfa13bbc7757e8bf18",
      "tree": "147eff2a12674d253044f9c241ac9f1797fd48be",
      "parents": [
        "58d06d1b392659f1b995c6e87b1d3ed766093ab3"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Sun Jul 30 20:12:36 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Sun Jul 30 20:13:08 2023"
      },
      "message": "Preserve multi-line value lists when calling Fix()\n\nPiperOrigin-RevId: 552297750\n"
    },
    {
      "commit": "58d06d1b392659f1b995c6e87b1d3ed766093ab3",
      "tree": "dcc290337cf68ec98d9b2e9d4bef1d3057251470",
      "parents": [
        "fa9f017c0ded2ef73ccab6b508300ee35989355d"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Jul 06 12:19:47 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Jul 06 12:20:21 2023"
      },
      "message": "Replace `out` with `PrettyBytes`\n\nPiperOrigin-RevId: 545955391\n"
    },
    {
      "commit": "fa9f017c0ded2ef73ccab6b508300ee35989355d",
      "tree": "77777995c3aa145d6a683c01482ef76ea8920f4b",
      "parents": [
        "7962e1995b09690ec74fee8d4ec9564ce03f2a13"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Apr 12 06:04:55 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Apr 12 06:05:25 2023"
      },
      "message": "trim trailing newlines\n\nPiperOrigin-RevId: 523610372\n"
    },
    {
      "commit": "7962e1995b09690ec74fee8d4ec9564ce03f2a13",
      "tree": "efe8236d8bfaef81c7c055b28e6d0722e2578c21",
      "parents": [
        "3462fbc510c07c0844c2e370719c9c18302f476f"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Tue Apr 11 07:46:42 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Apr 11 07:47:10 2023"
      },
      "message": "trim trailing newlines\n\nPiperOrigin-RevId: 523324423\n"
    },
    {
      "commit": "3462fbc510c07c0844c2e370719c9c18302f476f",
      "tree": "77777995c3aa145d6a683c01482ef76ea8920f4b",
      "parents": [
        "7e3b7136cc9ff90f3b33c7a207fa96bcb964048a"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Mar 28 19:10:01 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Mar 28 19:10:34 2023"
      },
      "message": "Add more flags to fmt command.\n\nPiperOrigin-RevId: 520097236\n"
    },
    {
      "commit": "7e3b7136cc9ff90f3b33c7a207fa96bcb964048a",
      "tree": "ee336d5f540fb2ef2009aa006e14d4ab3687ad6d",
      "parents": [
        "0e3c6a01a2113bb00ec28638cc1271484c44513a"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Mar 27 18:03:24 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Mar 27 18:03:53 2023"
      },
      "message": "Auto-disable WrapStringsAfterNewlines for binary-ish strings.\n\nPiperOrigin-RevId: 519773224\n"
    },
    {
      "commit": "0e3c6a01a2113bb00ec28638cc1271484c44513a",
      "tree": "ec9584e1dfdab450f129249c439c8123b9ec4840",
      "parents": [
        "9485b87fd499cd59e83aef1f4ac4a9ba1aa3a174"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Mar 08 17:50:02 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Mar 08 17:50:31 2023"
      },
      "message": "Allow \u003cstdin\u003e to be called something else in log/error messages\n\nPiperOrigin-RevId: 515064137\n"
    },
    {
      "commit": "9485b87fd499cd59e83aef1f4ac4a9ba1aa3a174",
      "tree": "9e70d6f1d97f47f61a8b1eafb8b1835defb5d539",
      "parents": [
        "1a4f451475b25a0aaf5b096d9692541fee23cd43"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Mar 06 14:36:52 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Mar 06 15:11:55 2023"
      },
      "message": "Preserve comments between field name and start of field values in list syntax\n\nPiperOrigin-RevId: 514393187\n"
    },
    {
      "commit": "1a4f451475b25a0aaf5b096d9692541fee23cd43",
      "tree": "a0c12903fba12234dd6a03087598e7931a4afe64",
      "parents": [
        "76f626137dc9888fcca74282a55e11789bef79b9"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Mar 02 09:26:34 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Mar 02 09:27:07 2023"
      },
      "message": "Add WrapStringsAfterNewlines config option.\n\nPiperOrigin-RevId: 513467502\n"
    },
    {
      "commit": "76f626137dc9888fcca74282a55e11789bef79b9",
      "tree": "dd6a57a1c913b5c18f6cc38ceb39c69fa8d4219a",
      "parents": [
        "765cbaef8a5e2be6ac60315a3125e369852e330e"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Mon Jan 30 17:34:12 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 30 17:35:31 2023"
      },
      "message": "Update txtpbfmt go.mod to go 1.18.\n\nPiperOrigin-RevId: 505717378\n"
    },
    {
      "commit": "765cbaef8a5e2be6ac60315a3125e369852e330e",
      "tree": "66185c05c5d5aa91c221aaf62efcc7dc14fd9136",
      "parents": [
        "fcc1fa29197ce17bc56812f84f5ff311f767fcd1",
        "ec6184f164e58b996deac1b2572f2befffa77fb9"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 30 09:50:53 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 30 09:50:53 2023"
      },
      "message": "Merge pull request #77 from mvdan:parser-glog\n\nPiperOrigin-RevId: 505623995\n"
    },
    {
      "commit": "ec6184f164e58b996deac1b2572f2befffa77fb9",
      "tree": "31b2825285efe730c2fd00692a63f2cc77e8dd04",
      "parents": [
        "31ca894e336c06f3d001cbc432f681abb05cff9f"
      ],
      "author": {
        "name": "Daniel Martí",
        "email": "mvdan@mvdan.cc",
        "time": "Wed Nov 23 13:19:58 2022"
      },
      "committer": {
        "name": "Daniel Martí",
        "email": "mvdan@mvdan.cc",
        "time": "Mon Jan 23 11:28:08 2023"
      },
      "message": "parser: replace glog Infof calls with an interface\n\nNow that glog.Errorf calls are returned as error values,\nwe can replace glog.Verbose.Infof calls with an interface.\n\nAll calls go through a logger in the config.\nBy default the logger is nil, which disables logging,\nso we have nil checks when logging.\n\nNote that the library uses a nil check on the logger to tell whether or\nnot it can avoid constructing the log messages.\nWe don\u0027t need a method like \"IsInfoLevel\" or \"IsEnabled\",\nsince the interface only knows how to log at the info level.\n\nWith that in mind, keep the behavior in cmd/txtpbfmt unchanged;\nit now passes log.V(2) in the config if its level is enabled.\n\nFixes #70.\n"
    },
    {
      "commit": "31ca894e336c06f3d001cbc432f681abb05cff9f",
      "tree": "66281c735e3098413659751a08f26b2be33f75f1",
      "parents": [
        "fcc1fa29197ce17bc56812f84f5ff311f767fcd1"
      ],
      "author": {
        "name": "Daniel Martí",
        "email": "mvdan@mvdan.cc",
        "time": "Wed Nov 23 13:04:08 2022"
      },
      "committer": {
        "name": "Daniel Martí",
        "email": "mvdan@mvdan.cc",
        "time": "Mon Jan 23 11:12:10 2023"
      },
      "message": "unquote: drop dependency on glog\n\nWe can log straight into testing.T.\n"
    },
    {
      "commit": "fcc1fa29197ce17bc56812f84f5ff311f767fcd1",
      "tree": "614a3bb071d5ad47c50fd83a462b031fa26e3415",
      "parents": [
        "b39e15a31fc798f3be4135f6dea4ae24d3d6a867"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Wed Jan 18 15:58:40 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jan 18 15:59:11 2023"
      },
      "message": "Mark doc as exempt from freshness.\n\nPiperOrigin-RevId: 502877057\n"
    },
    {
      "commit": "b39e15a31fc798f3be4135f6dea4ae24d3d6a867",
      "tree": "7a348e8f53797834b5180a5073d98fa55078ed59",
      "parents": [
        "d8aad3f9e7776a8056a295d0a52afb0f0e191fca",
        "c76798a17fdd417ac707ac2af48370394dd0244b"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 17 15:42:11 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Jan 17 15:42:11 2023"
      },
      "message": "Merge pull request #84 from mvdan:parser-log-errorf-2\n\nPiperOrigin-RevId: 502582850\n"
    },
    {
      "commit": "c76798a17fdd417ac707ac2af48370394dd0244b",
      "tree": "7a348e8f53797834b5180a5073d98fa55078ed59",
      "parents": [
        "d8aad3f9e7776a8056a295d0a52afb0f0e191fca"
      ],
      "author": {
        "name": "Daniel Martí",
        "email": "mvdan@mvdan.cc",
        "time": "Mon Nov 14 08:36:54 2022"
      },
      "committer": {
        "name": "Daniel Martí",
        "email": "mvdan@mvdan.cc",
        "time": "Thu Jan 12 16:59:18 2023"
      },
      "message": "parser: swap all log.Errorf calls with error values, take 2\n\nSecond take, as the first merge was undone by a bot.\n\nAs I was working on my patch for #70, I was wondering if we really\nneeded a logger interface with both Infof and Errorf. After all, a\nlibrary should report its errors as values, not via a logger.\n\nTurns out it\u0027s relatively straightforward to do so. All functions that\nused to call log.Errorf are themselves called from top-level APIs which\nare able to return an error, so we just need to thread them.\n\nOne special case is getMetaCommentStringValues, which used to report\neach error and continue rather than stop. We currently do not have an\nidiomatic way to report multiple errors at once, so return the first\nerror for now. In the future, we could use https://go.dev/issue/53435.\n\nUpdates #70.\n"
    },
    {
      "commit": "d8aad3f9e7776a8056a295d0a52afb0f0e191fca",
      "tree": "ae0fe09977b05e39a5178b637194c2bf4cd410a6",
      "parents": [
        "d5145a94f77d2d580b529e6aa18880b37f52052d"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jan 11 12:11:17 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jan 11 12:12:09 2023"
      },
      "message": "Preserve comments between field name and field values\n\nPiperOrigin-RevId: 501242165\n"
    },
    {
      "commit": "d5145a94f77d2d580b529e6aa18880b37f52052d",
      "tree": "840ea4c065dcc2fb9bd9ed0d0932a7d599a42123",
      "parents": [
        "5ecdd59e9a2484af05fdcbcbf63f5614856326e7"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 09 23:20:03 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 09 23:20:31 2023"
      },
      "message": "Generate stable results when multiple \u0027sort_repeated_fields_by_subfield\u0027 are given.\n\nPiperOrigin-RevId: 500821181\n"
    },
    {
      "commit": "5ecdd59e9a2484af05fdcbcbf63f5614856326e7",
      "tree": "6603997b79ee3465304dfc94c2f70516cc2ec68e",
      "parents": [
        "db1d62a8ded85aa895b50c98891d69237792272d"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 09 09:56:06 2023"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Jan 09 16:01:23 2023"
      },
      "message": "Internal\n\nPiperOrigin-RevId: 500650720\n"
    },
    {
      "commit": "db1d62a8ded85aa895b50c98891d69237792272d",
      "tree": "1d340f0bc378962e46d79fea55eccbb8fc31aaa6",
      "parents": [
        "31e4035b90469c34abcbac82ff709888fb1f5bdb"
      ],
      "author": {
        "name": "Daniel Martí",
        "email": "mvdan@mvdan.cc",
        "time": "Mon Nov 14 08:36:54 2022"
      },
      "committer": {
        "name": "Kauê Soares da Silveira",
        "email": "silveira.kaue@gmail.com",
        "time": "Mon Jan 09 15:48:27 2023"
      },
      "message": "parser: swap all log.Errorf calls with error values\n\nAs I was working on my patch for #70, I was wondering if we really\nneeded a logger interface with both Infof and Errorf. After all, a\nlibrary should report its errors as values, not via a logger.\n\nTurns out it\u0027s relatively straightforward to do so. All functions that\nused to call log.Errorf are themselves called from top-level APIs which\nare able to return an error, so we just need to thread them.\n\nOne special case is getMetaCommentStringValues, which used to report\neach error and continue rather than stop. We currently do not have an\nidiomatic way to report multiple errors at once, so return the first\nerror for now. In the future, we could use https://go.dev/issue/53435.\n\nUpdates #70.\n"
    },
    {
      "commit": "31e4035b90469c34abcbac82ff709888fb1f5bdb",
      "tree": "6603997b79ee3465304dfc94c2f70516cc2ec68e",
      "parents": [
        "61ed6f8e4d6e92a7301dfaf68d23b86976fcf4eb"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Dec 06 07:07:41 2022"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Tue Dec 06 07:08:12 2022"
      },
      "message": "Update install to reflect deprecation of \u0027go get\u0027 outside a module.\n\nPiperOrigin-RevId: 493213030\n"
    },
    {
      "commit": "61ed6f8e4d6e92a7301dfaf68d23b86976fcf4eb",
      "tree": "b47052cd1f2f501a9a3b15a75b058c48a449b1d0",
      "parents": [
        "95970eec0610e0350c3c46b50917d5f5f0f44394"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Mon Sep 26 13:57:03 2022"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Mon Sep 26 13:57:27 2022"
      },
      "message": "update documentation to mention the Text Format Language Specification.\n\nPiperOrigin-RevId: 476884442\n"
    },
    {
      "commit": "95970eec0610e0350c3c46b50917d5f5f0f44394",
      "tree": "5caed7bb8ec784d9660dcab57d5ac7d65c552710",
      "parents": [
        "fc78c767cd6a4e6e3953f5d72f1e0e4c5811990b"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Sep 02 06:08:02 2022"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Fri Sep 02 06:08:34 2022"
      },
      "message": "Fix text wrapping bug, where inline children caused wrapping to\nstop for the rest of the file, rather than the current node.\n\nPiperOrigin-RevId: 471721031\n"
    },
    {
      "commit": "fc78c767cd6a4e6e3953f5d72f1e0e4c5811990b",
      "tree": "8b19fc1303cedd3cd620e022c9a76d0fa7ed5ddd",
      "parents": [
        "74888fd59c2b19248a51d8a5954db1588e18948f"
      ],
      "author": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 08 08:39:35 2022"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Wed Jun 08 08:40:03 2022"
      },
      "message": "Fix misspelling of \"explicitly\"\n\nPiperOrigin-RevId: 453624016\n"
    },
    {
      "commit": "74888fd59c2b19248a51d8a5954db1588e18948f",
      "tree": "b6e488ea9c9f788704466815e83a0b7bd0df72ad",
      "parents": [
        "dea080814aca6224d40ce448cbba8d9429c5b95d"
      ],
      "author": {
        "name": "Kauê Soares da Silveira",
        "email": "kaue@google.com",
        "time": "Thu Apr 28 17:30:40 2022"
      },
      "committer": {
        "name": "txtpbfmt team",
        "email": "txtpbfmt-copybara-robot@google.com",
        "time": "Thu Apr 28 17:31:12 2022"
      },
      "message": "Rollback of: Made the missing colon for scalar check less restrictive, and it now doesn\u0027t error for unexpected invalid textproto, such as `\u003cnil\u003e`.\n\nPiperOrigin-RevId: 445188607\n"
    }
  ],
  "next": "dea080814aca6224d40ce448cbba8d9429c5b95d"
}
