)]}'
{
  "log": [
    {
      "commit": "a83ed8aa6e5090d2db769f4229d3742be47b2985",
      "tree": "34d051b650fc1ee722492d3cbe1ca5c43d1e2137",
      "parents": [
        "bb64b98539d8d15049db9ebd30838f28718a9574"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Apr 20 09:50:51 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Apr 20 09:51:14 2026"
      },
      "message": "Parallelize some passes in Binder\n\nMost of the binding passes are parallelizable (the units being processed don\u0027t depend on each other), and the shared state from earlier passes is mostly thread-safe.\n\nAn exception is LazyEnv which supports completing things that depend on each other, like the type hierarchy and constant field values. For now LazyEnv is not parallelized, it also doesn\u0027t show up as much in profiles.\n\nMake TurbineLog thread-safe, to allow it to be shared, and refactor parallelization of Lower a bit to make use of a shared log. Create helpers for getting a list of futures and handling any `TurbineError`s.\n\nTests pass with TSAN.\n\nPiperOrigin-RevId: 902522786\n"
    },
    {
      "commit": "bb64b98539d8d15049db9ebd30838f28718a9574",
      "tree": "b5d44d79d0c7eb585aa1760304344221c96d6a39",
      "parents": [
        "a06086ec3dbf83a0c01aaa205a12794f40a21b51"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Apr 20 09:25:25 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Apr 20 09:25:51 2026"
      },
      "message": "Parse markdown javadoc comments in turbine\n\nand return them from calls to [`Elements#getDocComment`](https://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/lang/model/util/Elements.html#getDocComment(javax.lang.model.element.Element)).\n\nThe tokenizer now has separate logic for `///` comments, and processes consecutive `///` line comments (with no blank lines separating them) into a single markdown javadoc comment token.\n\nThe pieces for `getDocCommentKind` are all there, but `TurbineElements` can\u0027t implement it directly until the min supported JDK is 23+.\n\nFunctionality for normalizing the javadoc text was moved from `TurbineElements` to `TurbineJavadoc#value`, the original unprocessed source text can be provided if any clients require it.\n\nPiperOrigin-RevId: 902512125\n"
    },
    {
      "commit": "a06086ec3dbf83a0c01aaa205a12794f40a21b51",
      "tree": "cd1fcc70c4f82ee92f496ea8c2bf910023d71b9b",
      "parents": [
        "c7f1e97777ee983a58d8f188350f50d37dea879b"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Apr 17 11:12:12 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri Apr 17 11:12:57 2026"
      },
      "message": "Parallelize parsing and lowering in turbine\n\nPiperOrigin-RevId: 901216861\n"
    },
    {
      "commit": "c7f1e97777ee983a58d8f188350f50d37dea879b",
      "tree": "6e47e971290a9b8d1aa3337f243c6bbd54aa8b5f",
      "parents": [
        "943a894f9cb4bf96e9f902861a93438adb376e64"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Apr 14 14:05:46 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Apr 14 14:06:16 2026"
      },
      "message": "Don\u0027t hard-code `error:` in formatted turbine diagnostics\n\nEarly versions of turbine only reported errors, but other diagnostic severities may be reported by annotation processors.\n\nPiperOrigin-RevId: 899566710\n"
    },
    {
      "commit": "943a894f9cb4bf96e9f902861a93438adb376e64",
      "tree": "b215d5581ad107821f5d3e9c59a9f3a03c94d8c7",
      "parents": [
        "d8aa754fc7528fdda84959dd75ce87ee4bb08a32"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Apr 09 21:11:32 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Apr 09 21:11:56 2026"
      },
      "message": "Refactor handling of javacopt-based LowerOptions\n\nPiperOrigin-RevId: 897295458\n"
    },
    {
      "commit": "d8aa754fc7528fdda84959dd75ce87ee4bb08a32",
      "tree": "e351287291c5b2a191ef80ffa6c4db900b27fe86",
      "parents": [
        "dafb4d78adbf4c5d8be9442887a42783a6922812"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Apr 09 13:31:57 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Apr 09 13:32:26 2026"
      },
      "message": "Handle `PermittedSubclasses` when reading classes\n\nthe attribute is needed to implement `TypeElement#getPermittedSubclasses` for classes loaded from the classpath.\n\nPiperOrigin-RevId: 897078748\n"
    },
    {
      "commit": "dafb4d78adbf4c5d8be9442887a42783a6922812",
      "tree": "b35679aa4891b9857fc175d0598506b74988745c",
      "parents": [
        "d6d16048b02fdee491ac20d18abc40484037db48"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Apr 09 09:15:46 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Apr 09 09:16:13 2026"
      },
      "message": "Remove private member classes in turbine\n\nIf a private member class isn\u0027t referenced in the signature of any non-private APIs, it can be removed without affecting the API.\n\nPiperOrigin-RevId: 896972297\n"
    },
    {
      "commit": "d6d16048b02fdee491ac20d18abc40484037db48",
      "tree": "36cae9e6956accfe3f71ef0698930fbdae40a45e",
      "parents": [
        "14a0b04e8cf3e1c5b75599658fa46e4f35ff7005"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Apr 08 15:39:02 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Apr 08 15:39:44 2026"
      },
      "message": "Fix `getBinaryName` handling of type elements for error types\n\nPiperOrigin-RevId: 896521376\n"
    },
    {
      "commit": "14a0b04e8cf3e1c5b75599658fa46e4f35ff7005",
      "tree": "39d7d1b266361f4f2de60e468c16b4633e743e00",
      "parents": [
        "27c760b74da1405e8102dc05b33b8edbf5feb75d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Mar 30 17:42:38 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Mar 30 17:43:06 2026"
      },
      "message": "Add an assertion that the turbine integration tests produce the same `.class` files\n\nThis makes the assertion failure more concise if there are failures because the wrong outputs are generated.\n\nPiperOrigin-RevId: 891794290\n"
    },
    {
      "commit": "27c760b74da1405e8102dc05b33b8edbf5feb75d",
      "tree": "dbe5e725726f0c58319d24d58b9ae59317cd6649",
      "parents": [
        "13851d5acd01e407d5f5e234d25dc41e0d8c5752"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Mar 30 08:53:57 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Mar 30 08:54:26 2026"
      },
      "message": "Don\u0027t pass a classloader into TurbineAnnotationProxy\n\nWhen creating annotation proxies, the class for nested annotations or for enum constants can be obtained from the passed-in class literal for the annotation. This matches javac behaviour, and avoids some plumbing to pass the classloader through.\n\nThe annotation processor loader is still used for implementing\n\n```\nprocessingEnvironment.getFiler().getResource(StandardLocation.ANNOTATION_PROCESSOR_PATH, ...);\n```\n\nand as an internal API equivalent to `JavacProcessingEnvironment#getProcessorClassLoader` which is used by dagger for service loading dagger plugins.\n\nPiperOrigin-RevId: 891581706\n"
    },
    {
      "commit": "13851d5acd01e407d5f5e234d25dc41e0d8c5752",
      "tree": "274d6aba3c59025e7f5a40e8f79c9b9304e30062",
      "parents": [
        "e51610911f21450f4435b4c121e1a36544b24b8d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Mar 24 16:13:50 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Mar 24 16:14:15 2026"
      },
      "message": "Support annotation processing in TurbineTool API\n\nAlso refactor to provide TurbineTool as a separate target from the CLI.\n\nPiperOrigin-RevId: 888700841\n"
    },
    {
      "commit": "e51610911f21450f4435b4c121e1a36544b24b8d",
      "tree": "94a25dd19000c5a621c56e3cb6080bc7509e41dd",
      "parents": [
        "9fa75fd4484036d6a7d2378e754c959096ceb5bd"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Mar 24 13:25:09 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Mar 24 13:25:35 2026"
      },
      "message": "Record the AST node that declares a RecordComponentInfo\n\nto allow it\u0027s source position to be retrieved\n\nPiperOrigin-RevId: 888628860\n"
    },
    {
      "commit": "9fa75fd4484036d6a7d2378e754c959096ceb5bd",
      "tree": "0d4299813a66eaae135beefe226130fef513832a",
      "parents": [
        "3dfe3d6b8ba45701fff6b0f56e2e024bbfa98417"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Feb 24 19:29:23 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Feb 24 19:29:59 2026"
      },
      "message": "Stricter javadoc parsing\n\nPreviously turbine was saving javadoc comments and associating them with the\nparsed declaration that javadoc could be applied to, which was incorrectly\nadding comments from skipped declarations (e.g. anonymous or local classes) to\nunrelated declarations.\n\nThis change updates the lexer so javadoc comments have to be retrieved at the\nsame time as the next non-comment token, and updates the parser to check for\ncomments at the expected location for the documented declaration.\n\nPiperOrigin-RevId: 874712509\n"
    },
    {
      "commit": "3dfe3d6b8ba45701fff6b0f56e2e024bbfa98417",
      "tree": "1634a8b5123dd2abd4d981987d7e0628f6fdfab1",
      "parents": [
        "95f385a6d0d008adcbfe74f11fecfdad03553110"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Feb 24 16:02:31 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Feb 24 16:02:53 2026"
      },
      "message": "Fix source position of enum constants\n\nPiperOrigin-RevId: 874616379\n"
    },
    {
      "commit": "95f385a6d0d008adcbfe74f11fecfdad03553110",
      "tree": "5ec7972d4bc83a9809cfc123b0affef707dc1397",
      "parents": [
        "41661c4d3a855161df1188a2926d7767a8436c3d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Feb 24 15:42:29 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Feb 24 15:42:57 2026"
      },
      "message": "Add test coverage for javadoc on multi-variable declarations\n\nPiperOrigin-RevId: 874608876\n"
    },
    {
      "commit": "41661c4d3a855161df1188a2926d7767a8436c3d",
      "tree": "84aadf492965281fcfa1abeb43b494f18adec942",
      "parents": [
        "83edd2184557f8ca098256c312b095584ee32fb9"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Feb 23 20:12:38 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Feb 23 20:13:33 2026"
      },
      "message": "Short circuit canonicalization of types that don\u0027t have enclosing classes\n\nThe binary name of an inner class will always contain `$`. Names that contain `$` may not be inner classes, and will fall through to the full canonicalization logic.\n\nThis makes turbine more lenient of missing built-in types, like classes in `java.lang`.\n\nPiperOrigin-RevId: 874193666\n"
    },
    {
      "commit": "83edd2184557f8ca098256c312b095584ee32fb9",
      "tree": "4a98d7d76b935a48f2912ee32b333f296fbc4aed",
      "parents": [
        "fb39330013f624f17f40afd4b3de0069cf44d84e"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Feb 23 18:02:12 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Feb 23 18:02:40 2026"
      },
      "message": "Don\u0027t crash on missing annotation value types\n\nPiperOrigin-RevId: 874130064\n"
    },
    {
      "commit": "fb39330013f624f17f40afd4b3de0069cf44d84e",
      "tree": "5a68ae1980f7bcb9b0f1fa32485138684a4f6d3a",
      "parents": [
        "dad6b6e33694d15905390989483b64e9a661136a"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Feb 19 09:02:27 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Feb 19 09:03:09 2026"
      },
      "message": "Improve modeling of error types\n\nPreserve type arguments of generic enclosing classes and type annotations when binding error types. This information isn\u0027t exposed to the annotation processing API for consistency with javac (https://bugs.openjdk.org/browse/JDK-8340694), but can be used by clients of internal turbine APIs.\n\nPiperOrigin-RevId: 872261630\n"
    },
    {
      "commit": "dad6b6e33694d15905390989483b64e9a661136a",
      "tree": "a6a438adaffcb086fb42d7231e4925e708732a10",
      "parents": [
        "551c38ef19e968028b89de1351b00bb75603994c"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Feb 19 08:10:01 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Feb 19 08:10:31 2026"
      },
      "message": "Report diagnostics if `java.lang` doesn\u0027t exist instead of crashing\n\nPiperOrigin-RevId: 872244253\n"
    },
    {
      "commit": "551c38ef19e968028b89de1351b00bb75603994c",
      "tree": "c336257f460c579eef01d1b1b5e6066b405f5ac1",
      "parents": [
        "917249e83a94e36f87b3ca46397fe084774b25e1"
      ],
      "author": {
        "name": "Ben Knutson",
        "email": "benknutson@google.com",
        "time": "Tue Feb 17 23:34:58 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Feb 18 20:29:23 2026"
      },
      "message": "Refactor Github Action per b/485167538\n"
    },
    {
      "commit": "917249e83a94e36f87b3ca46397fe084774b25e1",
      "tree": "a0dd7fc664d22cc09335b7e492ee0f6f51a12f12",
      "parents": [
        "fb566bb721d8be31eceff6bea3cc5a1fedd79f8b"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Feb 18 08:17:22 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Feb 18 08:18:54 2026"
      },
      "message": "Automatic code cleanup.\n\nPiperOrigin-RevId: 871707222\n"
    },
    {
      "commit": "fb566bb721d8be31eceff6bea3cc5a1fedd79f8b",
      "tree": "038416c376da3076ed4629fbb3bbc3cae47d7953",
      "parents": [
        "edfffe9c77a0977450305ac9914ed8f8d45f7b57"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Feb 02 13:42:15 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Feb 02 13:42:56 2026"
      },
      "message": "Miscellaneous cleanups\n\nPiperOrigin-RevId: 864314875\n"
    },
    {
      "commit": "edfffe9c77a0977450305ac9914ed8f8d45f7b57",
      "tree": "c7d9119bf871a7b16ce291f51b8b3855b803d7a3",
      "parents": [
        "6cd866f390cd9bcb32845c7072003aa12600d313"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jan 14 18:49:41 2026"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jan 14 18:50:16 2026"
      },
      "message": "Use `JarEntry.getTimeLocal()` for jar entry timestamps\n\nPiperOrigin-RevId: 856278114\n"
    },
    {
      "commit": "6cd866f390cd9bcb32845c7072003aa12600d313",
      "tree": "4444e527f334558d72deb4a12b5398b550f01fd4",
      "parents": [
        "70f21666e3de54b0268e94d00e8b0f600d60b66f"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Thu Dec 18 15:23:05 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Dec 18 15:23:50 2025"
      },
      "message": "Fix a minor typo.\n\nPiperOrigin-RevId: 846257658\n"
    },
    {
      "commit": "70f21666e3de54b0268e94d00e8b0f600d60b66f",
      "tree": "2ecc78b53322439605e09995ff394169ca813a5b",
      "parents": [
        "26a904311e8ef468a15becf7d2b1e11eb7ac6d5c"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Dec 18 14:41:22 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Dec 18 14:42:05 2025"
      },
      "message": "Handle mis-matched type arguments during canonicalization\n\nand report a diagnostic instead of crashing.\n\nPiperOrigin-RevId: 846244275\n"
    },
    {
      "commit": "26a904311e8ef468a15becf7d2b1e11eb7ac6d5c",
      "tree": "175e276254f21a07c2ca94e073b1f8c9fc4cca18",
      "parents": [
        "04157d7f6be85076272157a547c6314aafc125f4"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Dec 11 09:14:22 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Dec 11 09:15:13 2025"
      },
      "message": "Fix `TypeElement#getKind` for records loaded from the classpath\n\nPiperOrigin-RevId: 843102798\n"
    },
    {
      "commit": "04157d7f6be85076272157a547c6314aafc125f4",
      "tree": "d8493db5c02f5a4f24cdd8fd7ce1565c3c530854",
      "parents": [
        "33d9cee633f77e5f385c835c42603288a7799933"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Dec 09 16:05:35 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Dec 09 16:06:13 2025"
      },
      "message": "Migrate some anonymous classes to lambdas in turbine\n\nPiperOrigin-RevId: 842242554\n"
    },
    {
      "commit": "33d9cee633f77e5f385c835c42603288a7799933",
      "tree": "08be260b4dd98f93cd96451143925bf2470faef7",
      "parents": [
        "d57ebff764b1ec97938b18b629238d3e4e51649b"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Dec 09 15:33:29 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Dec 09 15:34:06 2025"
      },
      "message": "Handle varargs in `ExecutableElement#toString`\n\nPiperOrigin-RevId: 842231184\n"
    },
    {
      "commit": "d57ebff764b1ec97938b18b629238d3e4e51649b",
      "tree": "4f05b77e946edc9006e6a3351e2aea749ffaf958",
      "parents": [
        "fa5ad86422d3b81a9d9f23f8527f2b005a0c5111"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Dec 09 09:52:50 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Dec 09 09:53:32 2025"
      },
      "message": "Optimize flattening of of ClassTy trees\n\nQualified class names are represented recursively, and need to be flattened in\nseveral places during binding. Add a recursive method to ClassTy to do the\nflattening, and avoid some garbage from using ArrayDeque and doing a copy.\n\nPiperOrigin-RevId: 842129206\n"
    },
    {
      "commit": "fa5ad86422d3b81a9d9f23f8527f2b005a0c5111",
      "tree": "62f934657d4947f9bcd1d8dc4e65fb3dcd65d77f",
      "parents": [
        "c1282e8bb48e425fac46f96a00e2da8589f75036"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Dec 08 19:58:56 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Dec 08 19:59:36 2025"
      },
      "message": "Address ShortCircuitBoolean findings\n\nThis code is implementing short circuiting boolean operators, so the use of |\nand \u0026 was intentional, but it also isn\u0027t necessary.\n\nPiperOrigin-RevId: 841860073\n"
    },
    {
      "commit": "c1282e8bb48e425fac46f96a00e2da8589f75036",
      "tree": "a2d5fd2f465346118edccd3712c11d4b98dfb4ae",
      "parents": [
        "c86723dfc1bebf662682addf083dc41965420992"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Dec 04 18:11:31 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Dec 04 18:12:29 2025"
      },
      "message": "Fix handling of declared fields in records after https://github.com/google/turbine/commit/c86723dfc1bebf662682addf083dc41965420992\n\nhttps://github.com/bazelbuild/bazel/issues/27862\n\nPiperOrigin-RevId: 840295505\n"
    },
    {
      "commit": "c86723dfc1bebf662682addf083dc41965420992",
      "tree": "b6ac2f6626daa6ec9730308d6199c52278e6b973",
      "parents": [
        "1c9a53833e0ccf8acc16221cf41abbdac4590370"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Dec 01 09:00:24 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Dec 01 09:01:11 2025"
      },
      "message": "Model private synthetic record fields for annotation processing\n\nhttps://github.com/bazelbuild/bazel/issues/27810\n\nPiperOrigin-RevId: 838647742\n"
    },
    {
      "commit": "1c9a53833e0ccf8acc16221cf41abbdac4590370",
      "tree": "356eaf4a0057b49ea775a3c01806d4e1ee366c63",
      "parents": [
        "07d173b0f7a95b50662114467dd711f04008fa84"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Nov 28 03:08:50 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri Nov 28 03:09:41 2025"
      },
      "message": "Update Error Prone version\n\nPiperOrigin-RevId: 837665878\n"
    },
    {
      "commit": "07d173b0f7a95b50662114467dd711f04008fa84",
      "tree": "717208f45f7c55e402e51e359bf6e5b0d46f7348",
      "parents": [
        "9e362e1fc17fc3d7013570cbf33550691495cb02"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Nov 27 09:11:42 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Nov 27 09:12:24 2025"
      },
      "message": "Use `String(byte[], Charset)` to create strings for zip entry names\n\nInstead of `CharsetDecoder`, which is less well optimized.\n\nPiperOrigin-RevId: 837427006\n"
    },
    {
      "commit": "9e362e1fc17fc3d7013570cbf33550691495cb02",
      "tree": "c774f8f5aac4dfe830b3fe5fcbc29af3f185f3fd",
      "parents": [
        "61e99802deff35c866532c9f9f1a9d1c05693870"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Nov 25 17:54:33 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Nov 25 17:55:19 2025"
      },
      "message": "Clean up package name handling\n\nFollow-up to https://github.com/google/turbine/commit/61e99802deff35c866532c9f9f1a9d1c05693870\n\nPiperOrigin-RevId: 836710974\n"
    },
    {
      "commit": "61e99802deff35c866532c9f9f1a9d1c05693870",
      "tree": "2398461510814a9965a27aae0b9e9c8e2eb59eaf",
      "parents": [
        "d79f9a1052f41bcf1ddd993a19f9faf9e8a467ae"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Nov 24 10:24:21 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Nov 24 10:25:08 2025"
      },
      "message": "Fix handling of unnamed packages in `getPackageElement`\n\nPiperOrigin-RevId: 836134198\n"
    },
    {
      "commit": "d79f9a1052f41bcf1ddd993a19f9faf9e8a467ae",
      "tree": "f18513d3d9ef8bbfe6881303ea849b74d28eec70",
      "parents": [
        "4214fb61a0b3b0b5282d415de4bf83ebf2d00052"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Nov 17 14:54:14 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Nov 17 14:54:49 2025"
      },
      "message": "Update an obsolete comment in turbine\u0027s zip implementation\n\nzip64 extensible data sectors are now supported.\n\nPiperOrigin-RevId: 833320215\n"
    },
    {
      "commit": "4214fb61a0b3b0b5282d415de4bf83ebf2d00052",
      "tree": "9480d2a00c9471b93d25e8ca10d193045150df37",
      "parents": [
        "3899d6b01e80a38dd2041fb6e2eefbb703bdd9b5"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Nov 12 15:23:34 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Nov 12 15:24:18 2025"
      },
      "message": "Update target Java version to 21\n\nAlso `getFirst()` and `getLast()`\n\nPiperOrigin-RevId: 831378131\n"
    },
    {
      "commit": "3899d6b01e80a38dd2041fb6e2eefbb703bdd9b5",
      "tree": "02678b8c86dccc2f89ecf9b304953c46e1869905",
      "parents": [
        "c58cef8deaeafafdc140c32f661bb7776f152f8d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Nov 12 14:50:14 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Nov 12 14:51:00 2025"
      },
      "message": "Defer creating a substring for javadoc until it is actually used\n\nThese strings are only used by `Elements#getDocComment`, which we don\u0027t expect to be called for most strings.\n\nPiperOrigin-RevId: 831368393\n"
    },
    {
      "commit": "c58cef8deaeafafdc140c32f661bb7776f152f8d",
      "tree": "41eb46cda67b750dc76952a8412706720b05536c",
      "parents": [
        "25c3b642386abbf2705b3bcb594e7d3231f3f8f2"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Nov 12 12:31:27 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Nov 12 12:32:13 2025"
      },
      "message": "Log instead of throwing errors for fields that can\u0027t be resolved\n\nAlso add a separate CANNOT_RESOLVE_FIELD diagnostic for these.\n\nLong term turbine is move away from throwing exceptions to eagerly fail on errors towards logging and continuing, which is necessary for annotation processing to allow processors to inspect compilations with errors. But throwing is still expedient sometimes for diagnostics that are rare and hard to recover from, and that in practice will not be fixed by later rounds of annotation processing.\n\nPiperOrigin-RevId: 831327842\n"
    },
    {
      "commit": "25c3b642386abbf2705b3bcb594e7d3231f3f8f2",
      "tree": "2d7f65eb7e90c05ea4ecfb101e21417c05df07d6",
      "parents": [
        "d5f42ab03aca2666450ab4fa26a99f0a60a624d8"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Nov 12 10:53:36 2025"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 12 10:53:36 2025"
      },
      "message": "Update Java version from 17 to 21 in release workflow"
    },
    {
      "commit": "d5f42ab03aca2666450ab4fa26a99f0a60a624d8",
      "tree": "099947b96dc07d72d3701d309355bd5f78ef0ca4",
      "parents": [
        "e567a7bae8f0e58fb6e26af89c38c754eea5359d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Nov 12 10:53:15 2025"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 12 10:53:15 2025"
      },
      "message": "Update Java versions in CI workflow"
    },
    {
      "commit": "e567a7bae8f0e58fb6e26af89c38c754eea5359d",
      "tree": "e79e833fba06e13181ac733452b6d2526f78c1c7",
      "parents": [
        "58d35ddf23adc416c5f077b6eabf029c8bc15b04"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Nov 12 10:51:29 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Nov 12 10:52:11 2025"
      },
      "message": "Include type name in expected/unexpected interface diagnostics\n\nPiperOrigin-RevId: 831300494\n"
    },
    {
      "commit": "58d35ddf23adc416c5f077b6eabf029c8bc15b04",
      "tree": "1da2f663c1a9de221bccaa599c84b23f67401bcc",
      "parents": [
        "113871486026a5d77282856c61cea5b2e124373e"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Nov 11 13:47:11 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Nov 11 13:47:54 2025"
      },
      "message": "Add a test to confirm non-javadoc package comments are not treated as javadoc\n\nPiperOrigin-RevId: 830874109\n"
    },
    {
      "commit": "113871486026a5d77282856c61cea5b2e124373e",
      "tree": "1c8b6825856b0b9baeac6e90e137d5c2e0b14f05",
      "parents": [
        "da5d1fdd9de0fd3081bd900b4281d9cc2eba424a"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Nov 11 10:07:16 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Nov 11 10:08:04 2025"
      },
      "message": "Fix ConstVarName javadoc\n\nThe mention of \u0027simple names\u0027 is incorrect, it can represent qualified names.\n\nPiperOrigin-RevId: 830813900\n"
    },
    {
      "commit": "da5d1fdd9de0fd3081bd900b4281d9cc2eba424a",
      "tree": "baa413f6e8a1eb52e32482ba21498dbdd6f4aa5b",
      "parents": [
        "b660ca21727523f32cbfa2d6a39912102ce97a04"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Nov 11 09:55:28 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Nov 11 09:56:12 2025"
      },
      "message": "Support javadoc comments in `Elements#getDocComment`\n\nPiperOrigin-RevId: 830809164\n"
    },
    {
      "commit": "b660ca21727523f32cbfa2d6a39912102ce97a04",
      "tree": "33d6b5c82eafc0f777c5f506614dc1d2e6f545eb",
      "parents": [
        "8b108c665d2cd9071b04dbebf76328daf6e521a4"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Nov 10 16:31:47 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Nov 10 16:32:29 2025"
      },
      "message": "Record the position of javadoc comments\n\nPiperOrigin-RevId: 830456185\n"
    },
    {
      "commit": "8b108c665d2cd9071b04dbebf76328daf6e521a4",
      "tree": "d757d0767fdd9549f464149817931a9e990f007e",
      "parents": [
        "67bf3aedeaf952e0a46f0adc4132ead6dad8324c"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Nov 07 15:41:59 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri Nov 07 15:42:31 2025"
      },
      "message": "Remove an unnecessary use of reflection\n\nPiperOrigin-RevId: 829433456\n"
    },
    {
      "commit": "67bf3aedeaf952e0a46f0adc4132ead6dad8324c",
      "tree": "096481875c591d651d70322a7cd898d930b54ad5",
      "parents": [
        "9d618857b0ede5585a5f2bcbe58e00d28e2d604b"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Oct 10 09:10:14 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri Oct 10 09:10:55 2025"
      },
      "message": "Use pattern matching instanceof in turbine\n\nStartblock:\n  cl-status javac.jspecify contains unknown commit in prod\nPiperOrigin-RevId: 817544534\n"
    },
    {
      "commit": "9d618857b0ede5585a5f2bcbe58e00d28e2d604b",
      "tree": "e564a5956db71ab6f70773ab27643d4aabb28324",
      "parents": [
        "e688404aeda581591490d4cf249f0358ff151f76"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Oct 03 12:54:55 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri Oct 03 12:55:48 2025"
      },
      "message": "Migrate Turbine to arrow switches\n\nPiperOrigin-RevId: 814660867\n"
    },
    {
      "commit": "e688404aeda581591490d4cf249f0358ff151f76",
      "tree": "6b01c427857626baf9e38341ed1aebdf510c275f",
      "parents": [
        "0dc0866c3586a29235844df77af20a9815aab878"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Oct 01 12:26:00 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Oct 01 12:26:49 2025"
      },
      "message": "Migrate some uses of `@AutoValue` in turbine to records\n\nPiperOrigin-RevId: 813707396\n"
    },
    {
      "commit": "0dc0866c3586a29235844df77af20a9815aab878",
      "tree": "095691a4c83529feb122c1472d173069fa2d0df5",
      "parents": [
        "b0f059e49f1dcdd4e579e00e39c3c09cf8047e65"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sun Sep 21 05:58:02 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Sun Sep 21 05:58:57 2025"
      },
      "message": "Upgrade Error Prone dependency\n\nPiperOrigin-RevId: 809594101\n"
    },
    {
      "commit": "b0f059e49f1dcdd4e579e00e39c3c09cf8047e65",
      "tree": "03bacdb06b11cdb1f46655b40d1c8d3daefb007a",
      "parents": [
        "c11dbd84dcad3aba447f4dd58e42e33838f9cf4d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Aug 07 21:16:46 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Aug 07 21:17:43 2025"
      },
      "message": "Provide an option to opt-out of MethodParameters\n\nThis information is optional in javac, with the `-parameters` flag.\n\nPiperOrigin-RevId: 792305182\n"
    },
    {
      "commit": "c11dbd84dcad3aba447f4dd58e42e33838f9cf4d",
      "tree": "56cad52e8acc584c8c2226f16ab47eae59946d82",
      "parents": [
        "474faa1ae8ba7c3e3d8e19f2e03a1bf3d71a0f6a"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Jul 18 19:05:33 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri Jul 18 19:06:24 2025"
      },
      "message": "Update Error Prone version\n\nPiperOrigin-RevId: 784658430\n"
    },
    {
      "commit": "474faa1ae8ba7c3e3d8e19f2e03a1bf3d71a0f6a",
      "tree": "adb96b1d45cf3c80984af5e5c849cb909ab681e0",
      "parents": [
        "9af339062c8b8d151108a0ec67491d97283d1d6d"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jul 16 20:23:13 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jul 16 20:24:07 2025"
      },
      "message": "Automated rollback of commit 9af339062c8b8d151108a0ec67491d97283d1d6d.\n\n*** Reason for rollback ***\n\nRoll forward after making an external release without this change for Bazel\n\n*** Original change description ***\n\nAutomated rollback of commit f740e3b1bf0a48c74529ae9ffab1705e940eced0.\n\n*** Reason for rollback ***\n\nWait until `--experimental_java_header_compilation_direct_deps` is flipped for Bazel\n\n*** Original change description ***\n\nStop including transitive outputs in the regular output jar if a separate header compilation output is being emitted\n\n***\n\n***\n\nPiperOrigin-RevId: 783872204\n"
    },
    {
      "commit": "9af339062c8b8d151108a0ec67491d97283d1d6d",
      "tree": "0af0ba6fef6569126f491f792a825de4f1f793ef",
      "parents": [
        "560017dc2798a580b1ec5b578b09b17894938176"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jul 09 21:20:13 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jul 09 21:21:00 2025"
      },
      "message": "Automated rollback of commit f740e3b1bf0a48c74529ae9ffab1705e940eced0.\n\n*** Reason for rollback ***\n\nWait until `--experimental_java_header_compilation_direct_deps` is flipped for Bazel\n\n*** Original change description ***\n\nStop including transitive outputs in the regular output jar if a separate header compilation output is being emitted\n\n***\n\nPiperOrigin-RevId: 781209018\n"
    },
    {
      "commit": "560017dc2798a580b1ec5b578b09b17894938176",
      "tree": "adb96b1d45cf3c80984af5e5c849cb909ab681e0",
      "parents": [
        "1eb354772e7cee9d38983ab8d0c6f71573175687"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jul 09 21:00:06 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jul 09 21:00:49 2025"
      },
      "message": "Migrate to Sonatype Maven Central releases\n\nPiperOrigin-RevId: 781199945\n"
    },
    {
      "commit": "1eb354772e7cee9d38983ab8d0c6f71573175687",
      "tree": "eb11a78cf128fef9be9813d772237550a9120342",
      "parents": [
        "f740e3b1bf0a48c74529ae9ffab1705e940eced0"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jul 09 20:39:40 2025"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 09 20:39:40 2025"
      },
      "message": "Update release.yml"
    },
    {
      "commit": "f740e3b1bf0a48c74529ae9ffab1705e940eced0",
      "tree": "32cd4823ce390cb6ebe8cd87e513d89808747ae9",
      "parents": [
        "409eb60c53a588aa6d4026e5c2ef3f6217b988e2"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sat Jun 21 02:29:09 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Sat Jun 21 02:29:50 2025"
      },
      "message": "Stop including transitive outputs in the regular output jar if a separate header compilation output is being emitted\n\nPiperOrigin-RevId: 773937385\n"
    },
    {
      "commit": "409eb60c53a588aa6d4026e5c2ef3f6217b988e2",
      "tree": "d4cfdcb5220bd310ebbf52a2d117678274b95ca9",
      "parents": [
        "aa33851fc814e8904d72664340582664290569c2"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 27 19:42:09 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue May 27 19:43:00 2025"
      },
      "message": "Add support for writing separate outputs for downstream header compilations\n\nIf `--header_compilation_output` is set, turbine will write a separate jar containing information needed by downstream header compilations, which includes the repackaged transitive classes used for direct classpaths, and also applies the same trimming to the outputs of the current compilation. In practice this means downstream turbine invocations can use a separate classpath with a smaller cache footprint.\n\nPiperOrigin-RevId: 763906802\n"
    },
    {
      "commit": "aa33851fc814e8904d72664340582664290569c2",
      "tree": "3e6285f04b234496d1a7143c30347b3b34a761c5",
      "parents": [
        "1c3f45426ce6ffbea07f8ef4ab9de6a26df641a1"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri May 16 18:19:58 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri May 16 18:20:43 2025"
      },
      "message": "Keep enum constants in transitive dependencies\n\nEnums can be used as annotation values, and keeping only constant fields caused compilation errors if an enum that was in scope of as a member of a transitive supertype was used as an annotation value.\n\nPiperOrigin-RevId: 759687277\n"
    },
    {
      "commit": "1c3f45426ce6ffbea07f8ef4ab9de6a26df641a1",
      "tree": "1219f775916cccc084e6b082c010a9e6e2357bfa",
      "parents": [
        "7d09f865692da20e13a79108700f97d8570f4a96"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 13 16:01:51 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue May 13 16:02:43 2025"
      },
      "message": "Improve handling of constant expression String casts\n\nFix a bug with handling of constant string casts of parenthesized expressions like `(String) (\"\")`. Also abort constant expression parsing earlier for some cast expressions that are not valid constant expression, e.g. `(String) false`.\n\nPiperOrigin-RevId: 758242988\n"
    },
    {
      "commit": "7d09f865692da20e13a79108700f97d8570f4a96",
      "tree": "731984ad38c8023fdfdf4b91ddd90de202d16c85",
      "parents": [
        "5ab9d461d6f7cee9794d9c04181fa8bc076fa746"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 06 17:27:49 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue May 06 17:28:30 2025"
      },
      "message": "Fix recovery of non-constant expressions\n\nWhen parsing potentially constant expressions, turbine only needs to handle JLS 15.29 constant expressions. If it sees a non-constant expression it should ignore the expression, instead of reporting an error. This fixes a case where a diagnostic was incorrectly reported when parsing a non-constant expression that appeared as the initializer of a final field.\n\nPiperOrigin-RevId: 755425814\n"
    },
    {
      "commit": "5ab9d461d6f7cee9794d9c04181fa8bc076fa746",
      "tree": "341df0d1e662c9cf3611f0794a92f7358b2e76ca",
      "parents": [
        "aaf377ce72a16a4924a1b03d174f496fb54e07bf"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 06 17:18:03 2025"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 06 17:18:03 2025"
      },
      "message": "Update ci.yml"
    },
    {
      "commit": "aaf377ce72a16a4924a1b03d174f496fb54e07bf",
      "tree": "0eb3efbf41f306d392a5ba8263bac05262bff5ff",
      "parents": [
        "4fd0fbaa21e08b753db0a7727fa93406332d9c46"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue May 06 17:17:46 2025"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 06 17:17:46 2025"
      },
      "message": "Update release.yml"
    },
    {
      "commit": "4fd0fbaa21e08b753db0a7727fa93406332d9c46",
      "tree": "03571bcf4c7fcddf8c31ea7958a09cd65c744131",
      "parents": [
        "2eba4504053929a91a779e66a2c7bc0d1923a0af"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Mar 26 01:59:31 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Mar 26 02:00:14 2025"
      },
      "message": "Reformat with latest version of g-j-f\n\nPiperOrigin-RevId: 740568517\n"
    },
    {
      "commit": "2eba4504053929a91a779e66a2c7bc0d1923a0af",
      "tree": "ac66a4a99fc569f0c9e91974188467af6d21523e",
      "parents": [
        "a2aa5bee245643d1939c16c3c2e9f67ab51da5e7"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Mar 20 18:17:34 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Mar 20 18:18:21 2025"
      },
      "message": "Update Error Prone version\n\nPiperOrigin-RevId: 738874322\n"
    },
    {
      "commit": "a2aa5bee245643d1939c16c3c2e9f67ab51da5e7",
      "tree": "2149f546af1056f625b61b390017fe32fb3df573",
      "parents": [
        "93b273e1f22ba1bbb9c9778056f69ea6034b2682"
      ],
      "author": {
        "name": "Fabian Meumertzheim",
        "email": "fabian@meumertzhe.im",
        "time": "Mon Mar 03 21:51:13 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Mar 03 21:52:13 2025"
      },
      "message": "Always emit paths with forward slashes into deps proto\n\nWork towards https://github.com/bazelbuild/bazel/pull/24876#issuecomment-2693939424\n\nFixes #363\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/turbine/pull/363 from fmeum:patch-1 311cb801c3d574194e0db1f2482cabcfb81a746d\nPiperOrigin-RevId: 733047922\n"
    },
    {
      "commit": "93b273e1f22ba1bbb9c9778056f69ea6034b2682",
      "tree": "87d80c911aac46dec42b6fb64adc480f5a54be70",
      "parents": [
        "11aed5b6ab19e57b9955f3d9e1e96c340f74f9dc"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Mar 03 18:36:44 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Mar 03 18:37:24 2025"
      },
      "message": "Support TypeMirror#getAnnotation in turbine\n\njavac added support for these APIs in JDK 23: https://bugs.openjdk.org/browse/JDK-8323684\n\n`AnnotationMirror` is usually a better choice, but the machinery to support these is all there and there isn\u0027t a principled reason to support the other `getAnnotation` methods and not these ones.\n\nPiperOrigin-RevId: 732975839\n"
    },
    {
      "commit": "11aed5b6ab19e57b9955f3d9e1e96c340f74f9dc",
      "tree": "5fa75e273cfe523299a9cfeb599579bcad11b880",
      "parents": [
        "b714e8b14c86a6b4920d8e158228830f7868fb67"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Feb 11 22:59:19 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Feb 11 23:00:05 2025"
      },
      "message": "Improve diagnostic reporting for repeated annotations\n\nPass a log into DisambiguateTypeAnnotations, and use it to allow reporting multiple diagnostics for invalid repeated annotations instead of failing fast on the first one.\n\nPiperOrigin-RevId: 725784135\n"
    },
    {
      "commit": "b714e8b14c86a6b4920d8e158228830f7868fb67",
      "tree": "bcd7e74000df1487d47908c9e7a7f0a051f41187",
      "parents": [
        "5d422e5bc6ff4928223ea049856d27590661db04"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Feb 11 17:02:18 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Feb 11 17:03:00 2025"
      },
      "message": "Remove an obsolete workaround for an issue with repeated annotations in Kotlin stubs\n\nPiperOrigin-RevId: 725652117\n"
    },
    {
      "commit": "5d422e5bc6ff4928223ea049856d27590661db04",
      "tree": "f00bd7caf115e35aca3ae2c4c7ec16030f5d05d4",
      "parents": [
        "f69f1cb33fad14393273ae05d8b86f6d1c9ceb34"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jan 15 18:44:55 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jan 15 18:45:31 2025"
      },
      "message": "TypeMirror#toString should include type annotations for primitive types\n\nA few of the `toString` overrides in `TurbineTypeMirror` were unnecessary, and the one for primitives was incorrect because it dropped the type annotations.\n\nPiperOrigin-RevId: 715858768\n"
    },
    {
      "commit": "f69f1cb33fad14393273ae05d8b86f6d1c9ceb34",
      "tree": "cd4351002c816f5935a33c6ef4e12358c4a5ea40",
      "parents": [
        "ee12b9a2163aa03d6307c0be52ca2bee0492158a"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jan 15 01:13:53 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jan 15 01:14:37 2025"
      },
      "message": "Type tests are vacuously true for error types, for compatibility with javac\n\nPiperOrigin-RevId: 715584830\n"
    },
    {
      "commit": "ee12b9a2163aa03d6307c0be52ca2bee0492158a",
      "tree": "fa33350836bbe7d9d7beacc56e41a43c113f6470",
      "parents": [
        "370011cc971faba2d9dbd7cb18d8b2a90d0c8cc9"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jan 15 00:33:40 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jan 15 00:34:28 2025"
      },
      "message": "`getLowerBound()` should return `NULL` instead of `NONE` for variables without a lower bound\n\nAlso fix handling of `null` in assignment and subtype tests, and update string representation to match javac.\n\nhttps://docs.oracle.com/en/java/javase/23/docs/api/java.compiler/javax/lang/model/type/TypeVariable.html#getLowerBound()\n\nPiperOrigin-RevId: 715574037\n"
    },
    {
      "commit": "370011cc971faba2d9dbd7cb18d8b2a90d0c8cc9",
      "tree": "bb266be26ae5a8e270389678fd916ea52d9395f7",
      "parents": [
        "706588c0ea176427c1561a2d3ea1f642270c6b92"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jan 15 00:17:00 2025"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Jan 15 00:17:47 2025"
      },
      "message": "Skip `ErrorType`s in `Types#directSupertypes` for compatibility with javac.\n\nPiperOrigin-RevId: 715569286\n"
    },
    {
      "commit": "706588c0ea176427c1561a2d3ea1f642270c6b92",
      "tree": "21c41ca9c327d9324dd0063d2cf83f270c9d79ef",
      "parents": [
        "f04e3d2b7feda2ca373d72bacbde5c25959fae13"
      ],
      "author": {
        "name": "Javac Team",
        "email": "java-team-github-bot@google.com",
        "time": "Thu Dec 12 23:41:23 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Dec 12 23:42:10 2024"
      },
      "message": "Support record components when reading records from the classpath.\n\nThere was a bit of guesswork involved in BytecodeBoundClass.\n\nPiperOrigin-RevId: 705653337\n"
    },
    {
      "commit": "f04e3d2b7feda2ca373d72bacbde5c25959fae13",
      "tree": "63f5e72abeb77d537d0362043f67210a124898b8",
      "parents": [
        "1a595dd8fd3ad59d6a6fd05499d5ad7cf95a2a66"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Nov 19 15:56:12 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Nov 19 15:56:59 2024"
      },
      "message": "Update Error Prone to version 2.36.0\n\nPiperOrigin-RevId: 698016480\n"
    },
    {
      "commit": "1a595dd8fd3ad59d6a6fd05499d5ad7cf95a2a66",
      "tree": "1010333ead0a1cbd78dedc149ad6a8e27b0e6397",
      "parents": [
        "3fcb10a2324dd46d1677f86b10d7d8691f6e2edb"
      ],
      "author": {
        "name": "Javac Team",
        "email": "java-team-github-bot@google.com",
        "time": "Wed Nov 13 00:43:31 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Nov 13 00:44:12 2024"
      },
      "message": "Promptly end() the Inflater in Turbine. This will more-eagerly release memory allocated via JNI calls to zlib.\n\nSee the API note on the Inflater javadoc: \"To release resources used by this Inflater, the end() method should be called explicitly. Subclasses are responsible for the cleanup of resources acquired by the subclass.\"\n\nhttps://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/zip/Inflater.html\n\nPiperOrigin-RevId: 695914851\n"
    },
    {
      "commit": "3fcb10a2324dd46d1677f86b10d7d8691f6e2edb",
      "tree": "641577ee925b629774eb53fa0d15ec50cc4c6dd0",
      "parents": [
        "b7b55365f9ef9b4ec05ddf973df41d8f1198187b"
      ],
      "author": {
        "name": "nickreid",
        "email": "nickreid@google.com",
        "time": "Wed Oct 30 03:18:06 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Oct 30 03:18:59 2024"
      },
      "message": "Optimize SimpleTopLevelIndex by using a StringCache to canonicalize strings\n\nThe idea is to prevent allocation lots of duplicate strings, by exploiting the fact that most class files in a JAR have a lot of common path segments.\n\nPiperOrigin-RevId: 691260507\n"
    },
    {
      "commit": "b7b55365f9ef9b4ec05ddf973df41d8f1198187b",
      "tree": "08fc34ab6a13ce89f15b6dd6bf64a26559055e0e",
      "parents": [
        "81d79e3f8d22a2b2799e0e01136b8505f7da50e0"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Oct 28 18:03:07 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Oct 28 18:03:58 2024"
      },
      "message": "Lazily create `BytecodeBoundClass` objects\n\nMost of the classes on the classpath are never loaded, and `BytecodeBoundClass` has a relatively expensive constructor that creates a bunch of suppliers to try to defer work until it\u0027s needed. Putting yet another lazy supplier in front of the entire `BytecodeBoundClass` makes classes that are never loaded cheaper.\n\nPiperOrigin-RevId: 690677848\n"
    },
    {
      "commit": "81d79e3f8d22a2b2799e0e01136b8505f7da50e0",
      "tree": "89f8b3a0b6924d1af92c9ce31ddc95d289a6c179",
      "parents": [
        "fdeba1e5b4de3e93dc05f8250f8ae310d8c55c74"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Oct 28 17:26:21 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Oct 28 17:27:02 2024"
      },
      "message": "Return a `char` from `formatReleaseVersion`\n\nCurrently it always returns a `String` of length 1. This matches code in the JDK that is going to require updates for JDK 36, but I\u0027m going to worry about that later.\n\nThe motivation is that this is the only place that `String#contains` is used in a context where string views could be used instead.\n\nPiperOrigin-RevId: 690664119\n"
    },
    {
      "commit": "fdeba1e5b4de3e93dc05f8250f8ae310d8c55c74",
      "tree": "6c6120fbcd19cedb82f79dbb2dea9ab6e80beeb9",
      "parents": [
        "db74c1f584d517f1a5d1cbb781955a0cf149e42a"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sat Oct 26 02:21:35 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Sat Oct 26 02:22:19 2024"
      },
      "message": "Enable some high value Error Prone checks for turbine\n\nMore string view pre-work: these checks are helpful when migrating uses of String that are e.g. passed to `equals(Object)` on a collection of the wrong type.\n\nPiperOrigin-RevId: 689985240\n"
    },
    {
      "commit": "db74c1f584d517f1a5d1cbb781955a0cf149e42a",
      "tree": "e9650ffa43744b076686c9854ec851229a5517ec",
      "parents": [
        "0c6eb49b7401fb3b542a734d0c571f91b7fb7f7e"
      ],
      "author": {
        "name": "nickreid",
        "email": "nickreid@google.com",
        "time": "Sat Oct 26 01:29:54 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Sat Oct 26 01:32:17 2024"
      },
      "message": "Only allocate a child-map for SimpleTopLevelIndex.Nodes that represent packages.\n\nThis should eliminate over half of all child-maps.\n\nPiperOrigin-RevId: 689975386\n"
    },
    {
      "commit": "0c6eb49b7401fb3b542a734d0c571f91b7fb7f7e",
      "tree": "5c46e7637f8a07b890f1983c08ea5f4b1994c0a3",
      "parents": [
        "ffafaffffb2d0d926468c2d39d1924ab2c7249ce"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Oct 24 14:58:28 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Oct 24 14:59:22 2024"
      },
      "message": "Handle implicit `permits` in turbine\n\n\u003e If the declaration of a sealed class C lacks a permits clause, then the permitted direct subclasses of C are as follows:\n\u003e\n\u003e If C is not an enum class, then its permitted direct subclasses are those classes declared in the same compilation unit as C (§7.3) which have a canonical name (§6.7) and whose direct superclass is C.\n\u003e\n\u003e That is, the permitted direct subclasses are inferred as the classes in the same compilation unit that specify C as their direct superclass. The requirement for a canonical name means that no local classes or anonymous classes will be considered.\n\nhttps://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.1.1.2\n\nPiperOrigin-RevId: 689381483\n"
    },
    {
      "commit": "ffafaffffb2d0d926468c2d39d1924ab2c7249ce",
      "tree": "3dc26c50a21db960b892cdf6833c89a0f4fc9807",
      "parents": [
        "d8c1bf26ec9515006de7fcd16e64f20fe740c746"
      ],
      "author": {
        "name": "Goktug Gokdogan",
        "email": "goktug@google.com",
        "time": "Tue Oct 22 19:12:18 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Oct 22 19:12:59 2024"
      },
      "message": "Fix a bug in where Turbine would add java.base to the module graph of java.base itself.\n\nPiperOrigin-RevId: 688642422\n"
    },
    {
      "commit": "d8c1bf26ec9515006de7fcd16e64f20fe740c746",
      "tree": "f8a891ab47691a3d21def0c87c6816debf7ee80a",
      "parents": [
        "c7c39e46939c03de34026f8a9246e961546ca33e"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sat Oct 19 00:54:19 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Sat Oct 19 00:55:36 2024"
      },
      "message": "Update Error Prone version to 2.34.0\n\nAnd pass `--should-stop\u003difError\u003dFLOW`, see https://github.com/google/error-prone/releases/tag/v2.34.0\n\nPiperOrigin-RevId: 687477920\n"
    },
    {
      "commit": "c7c39e46939c03de34026f8a9246e961546ca33e",
      "tree": "2524c623cf54503723f075c56c27430d505ba4f6",
      "parents": [
        "5a874b7cdb873cfd762891681be295bbd03493ef"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Sep 25 19:05:09 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Sep 25 19:06:03 2024"
      },
      "message": "Bump com.google.protobuf:protobuf-java from 3.19.6 to 3.25.5 in the maven group across 1 directory\n\nBumps the maven group with 1 update in the / directory: [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf).\n\nUpdates `com.google.protobuf:protobuf-java` from 3.19.6 to 3.25.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/releases\"\u003ecom.google.protobuf:protobuf-java\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eProtocol Buffers v3.20.3\u003c/h2\u003e\n\u003ch1\u003eJava\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRefactoring java full runtime to reuse sub-message builders and prepare to\nmigrate parsing logic from parse constructor to builder.\u003c/li\u003e\n\u003cli\u003eMove proto wireformat parsing functionality from the private \u0026quot;parsing\nconstructor\u0026quot; to the Builder class.\u003c/li\u003e\n\u003cli\u003eChange the Lite runtime to prefer merging from the wireformat into mutable\nmessages rather than building up a new immutable object before merging. This\nway results in fewer allocations and copy operations.\u003c/li\u003e\n\u003cli\u003eMake message-type extensions merge from wire-format instead of building up\ninstances and merging afterwards. This has much better performance.\u003c/li\u003e\n\u003cli\u003eFix TextFormat parser to build up recurring (but supposedly not repeated)\nsub-messages directly from text rather than building a new sub-message and\nmerging the fully formed message into the existing field.\u003c/li\u003e\n\u003cli\u003eThis release addresses a \u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-h4h5-3hr4-j3g2\"\u003eSecurity Advisory for Java users\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eProtocol Buffers v3.20.2\u003c/h2\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReduce memory consumption of MessageSet parsing\u003c/li\u003e\n\u003cli\u003eThis release addresses a \u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-8gq9-2x98-w8hf\"\u003eSecurity Advisory for C++ and Python users\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eProtocol Buffers v3.20.1\u003c/h2\u003e\n\u003ch1\u003ePHP\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix building packaged PHP extension (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9727\"\u003e#9727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed composer.json to only advertise compatibility with PHP 7.0+.  (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9819\"\u003e#9819\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRuby\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDisable the aarch64 build on macOS until it can be fixed. (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9816\"\u003e#9816\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix versioning issues in 3.20.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eProtocol Buffers v3.20.1-rc1\u003c/h2\u003e\n\u003ch1\u003ePHP\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix building packaged PHP extension (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9727\"\u003e#9727\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix versioning issues in 3.20.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eProtocol Buffers v3.20.0\u003c/h2\u003e\n\u003cp\u003e2022-03-25 version 3.20.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)\u003c/p\u003e\n\u003ch1\u003eRuby\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDropped Ruby 2.3 and 2.4 support for CI and releases. (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9311\"\u003e#9311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Ruby 3.1 support for CI and releases (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9566\"\u003e#9566\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMessage.decode/encode: Add recursion_limit option (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9218\"\u003e#9218\u003c/a\u003e/\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9486\"\u003e#9486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllocate with xrealloc()/xfree() so message allocation is visible to the\nRuby GC.  In certain tests this leads to much lower memory usage due to more\nfrequent GC runs (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9586\"\u003e#9586\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix conversion of singleton classes in Ruby (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/9342\"\u003e#9342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/9d0ec0f92b5b5fdeeda11f9dcecc1872ff378014\"\u003e\u003ccode\u003e9d0ec0f\u003c/code\u003e\u003c/a\u003e Updating version.json and repo version numbers to: 25.5\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/4a197e78ad2430e22e992c5a7727b61ae220f727\"\u003e\u003ccode\u003e4a197e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/18387\"\u003e#18387\u003c/a\u003e from protocolbuffers/cp-lp-25\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/b5a7cf7cf4b7e39f6b02205e45afe2104a7faf81\"\u003e\u003ccode\u003eb5a7cf7\u003c/code\u003e\u003c/a\u003e Remove RecursiveGroup test case which doesn\u0027t exist in 25.x pre-Editions\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/f000b7e18fd6921ca02ea4b87608e8cadcb7b64f\"\u003e\u003ccode\u003ef000b7e\u003c/code\u003e\u003c/a\u003e Fix merge conflict by adding optional label to proto2 unittest_lite.proto\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/4728531c162f2f9e8c2ca1add713cfee2db6be3b\"\u003e\u003ccode\u003e4728531\u003c/code\u003e\u003c/a\u003e Add recursion check when parsing unknown fields in Java.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/850fcce9176e2c9070614dab53537760498c926b\"\u003e\u003ccode\u003e850fcce\u003c/code\u003e\u003c/a\u003e Internal change\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/b7044987de77f1dc368fee558636d0b56d7e75e1\"\u003e\u003ccode\u003eb704498\u003c/code\u003e\u003c/a\u003e Internal change\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/e67347986eaf7d777a6ee34367fa99f4912423ab\"\u003e\u003ccode\u003ee673479\u003c/code\u003e\u003c/a\u003e Fix cord handling in DynamicMessage and oneofs. (\u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/18375\"\u003e#18375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/8a60b6527a976cfd0028153da3ad8e4ed280e0de\"\u003e\u003ccode\u003e8a60b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/protocolbuffers/protobuf/issues/17704\"\u003e#17704\u003c/a\u003e from protocolbuffers/cp-segv\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commit/94a26630e362a4771b5ec80eac49f494988ca408\"\u003e\u003ccode\u003e94a2663\u003c/code\u003e\u003c/a\u003e Fixed a SEGV when deep copying a non-reified sub-message.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/compare/v3.19.6...v3.25.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dcom.google.protobuf:protobuf-java\u0026package-manager\u003dmaven\u0026previous-version\u003d3.19.6\u0026new-version\u003d3.25.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/google/turbine/network/alerts).\n\n\u003c/details\u003e\n\nFixes #339\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/turbine/pull/339 from google:dependabot/maven/maven-53c7092088 86499c6ca32b7d86024385bfc4fed7dfffe43c1c\nPiperOrigin-RevId: 678795596\n"
    },
    {
      "commit": "5a874b7cdb873cfd762891681be295bbd03493ef",
      "tree": "aa120bf21330a11db8c28ae80c4a622ce0c8c8d4",
      "parents": [
        "99442e8006451e1f9c618f356892f62f79796a26"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Sep 25 01:32:45 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Sep 25 01:33:22 2024"
      },
      "message": "Remove obsolete runtime version checks from turbine\n\nThe minimum supported runtime version is now JDK 17.\n\nPiperOrigin-RevId: 678473012\n"
    },
    {
      "commit": "99442e8006451e1f9c618f356892f62f79796a26",
      "tree": "ccf94ceffa4780c02ee788e8d3573327c50150aa",
      "parents": [
        "67aca02a4cf673f1551d22940a722af7c29e1f49"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Sep 23 21:59:09 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Sep 23 22:00:01 2024"
      },
      "message": "Improve modeling of parameterized erroneous types\n\nThis is similar to improvements made to javac in https://bugs.openjdk.org/browse/JDK-8338678, previously type arguments were ignored if the parameterized type could not be resolved.\n\nPiperOrigin-RevId: 677951199\n"
    },
    {
      "commit": "67aca02a4cf673f1551d22940a722af7c29e1f49",
      "tree": "6b9c93c1fb2744e92af924391c2e5bf86ed26dfd",
      "parents": [
        "f67d01186f181781a14ea5be009c8fab94a7f721"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Sep 23 18:58:10 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Sep 23 18:58:56 2024"
      },
      "message": "Clean up some obsolete error recovery logic in TurbineElement\n\nEarlier phases now bind an error type if the super type cannot be resolved, the error recovery here is unnecessary.\n\nPiperOrigin-RevId: 677885434\n"
    },
    {
      "commit": "f67d01186f181781a14ea5be009c8fab94a7f721",
      "tree": "318f65188ec117f07325d9fe20818e35e83907a7",
      "parents": [
        "171153d1e48e442187ccd2cfcebb8be192aef094"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Sep 23 18:56:32 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Sep 23 18:57:35 2024"
      },
      "message": "Remove unnecessary strictfp modifier\n\nTurbine\u0027s minimum supported JDK version is JDK 17.\n\nThis fixes the following warning:\n\n```\nthird_party/java_src/turbine/java/com/google/turbine/binder/ConstEvaluator.java:84: warning: [strictfp] as of release 17, all floating-point expressions are evaluated strictly and \u0027strictfp\u0027 is not required\npublic strictfp class ConstEvaluator {\n                ^\n```\n\nPiperOrigin-RevId: 677884732\n"
    },
    {
      "commit": "171153d1e48e442187ccd2cfcebb8be192aef094",
      "tree": "20a924a8d964d1058f567c2d078474afc06512f8",
      "parents": [
        "6574ba5ef1f921d611cb323cfe525ab3b1bb7e5f"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Sep 12 20:57:39 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Sep 12 20:58:23 2024"
      },
      "message": "Implement `getPermittedSubclasses`\n\nStartblock:\n  * unknown commit is submitted\nPiperOrigin-RevId: 673998213\n"
    },
    {
      "commit": "6574ba5ef1f921d611cb323cfe525ab3b1bb7e5f",
      "tree": "d03fd7c25065c754985707c21c44a5c2b46f5315",
      "parents": [
        "7dafb70d1ad92ad4de7befacd049dd40045bac20"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Sep 12 20:29:00 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Thu Sep 12 20:32:27 2024"
      },
      "message": "Support sealed and non-sealed modifiers in `getModifiers`\n\nStartblock:\n  * unknown commit is submitted\nPiperOrigin-RevId: 673984224\n"
    },
    {
      "commit": "7dafb70d1ad92ad4de7befacd049dd40045bac20",
      "tree": "c0a5edbe97c6d225cd770593e7386f32fcbf3ff7",
      "parents": [
        "929833252187c2e4db68b581b053e6c8604fd6b8"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Sep 11 18:44:56 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Sep 11 18:45:36 2024"
      },
      "message": "Update Error Prone version to 2.32.0\n\nPiperOrigin-RevId: 673476405\n"
    },
    {
      "commit": "929833252187c2e4db68b581b053e6c8604fd6b8",
      "tree": "a019ed7a71022d3bbe4fa473c46bfeb82adb9e7b",
      "parents": [
        "e1ea3c5130b465ea8079d03e7cc68ebb44af32ae"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Sep 11 16:22:14 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Sep 11 16:23:01 2024"
      },
      "message": "Move turbine\u0027s fork of SourceCodeEscapers to a new package\n\nto avoid one version conflicts, as reported in\nhttps://github.com/bazelbuild/bazel/pull/23592\n\nPiperOrigin-RevId: 673420893\n"
    },
    {
      "commit": "e1ea3c5130b465ea8079d03e7cc68ebb44af32ae",
      "tree": "c96ec2ff63ccf0fa697224b337e0b77683332a79",
      "parents": [
        "5bd2dfaad621dd8aa29d8761f2a0b3905b436e01"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Sep 10 20:07:34 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Tue Sep 10 20:08:24 2024"
      },
      "message": "Fix parsing of `module-info` `require` directives that are both `static` and `transitive`\n\nPiperOrigin-RevId: 673075838\n"
    },
    {
      "commit": "5bd2dfaad621dd8aa29d8761f2a0b3905b436e01",
      "tree": "13ec76e2860b26d9d10dd44a5624588139d8d221",
      "parents": [
        "eeb587942b39077ddba83ecd67636a09cef1ed28"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 30 20:21:55 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Fri Aug 30 20:22:31 2024"
      },
      "message": "Use `.turbine` instead of `.class` as the file extension for repackaged transitive deps\n\nThe entries are not complete class files (methods and other constructs are removed), and should only be ready by turbine. Using a different file extension avoids issues with other tools that scan the jar for `.class` entries.\n\nPiperOrigin-RevId: 669424702\n"
    },
    {
      "commit": "eeb587942b39077ddba83ecd67636a09cef1ed28",
      "tree": "86ffe9219a343e12f54cf029a50a1b4ff9a6c33f",
      "parents": [
        "15ed1bef4d12168cbb76c35b83799bd318fe45f0"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Aug 28 16:22:25 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Wed Aug 28 16:23:18 2024"
      },
      "message": "Include package-infos in repackaged transitive classes\n\nThis is related to unknown commit, which ensured that jdeps include package-infos.\n\nPiperOrigin-RevId: 668483913\n"
    },
    {
      "commit": "15ed1bef4d12168cbb76c35b83799bd318fe45f0",
      "tree": "ee9af0bbd6ffd5bd1ae0045c6adb497c4f5c337a",
      "parents": [
        "296a80268acc50489b9cdf3203507f54a2375a8e"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 26 20:49:04 2024"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 26 20:51:15 2024"
      },
      "message": "Update CI to reflect that JDK 17 is now the minimum supported version\n"
    },
    {
      "commit": "296a80268acc50489b9cdf3203507f54a2375a8e",
      "tree": "afef71667d70a24e8ed2ade98fca9b9c29dbcf69",
      "parents": [
        "781a49a34c47030b61d719fa9f1937e41008c52c"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 26 20:50:18 2024"
      },
      "committer": {
        "name": "Javac Team",
        "email": "javac-team+copybara@google.com",
        "time": "Mon Aug 26 20:51:00 2024"
      },
      "message": "Implement `TypeElement.getRecordComponents`\n\nhttps://docs.oracle.com/en/java/javase/17/docs/api/java.compiler/javax/lang/model/element/TypeElement.html#getRecordComponents()\n\nSee https://github.com/bazelbuild/bazel/issues/23246\n\nStartblock:\n  * unknown commit is submitted\nPiperOrigin-RevId: 667702947\n"
    }
  ],
  "next": "781a49a34c47030b61d719fa9f1937e41008c52c"
}
