)]}'
{
  "log": [
    {
      "commit": "8a75e0abb7afd77c5230fa4e55d6ed194df72f5a",
      "tree": "04d617d1f3a1a7c4cff8ebf6e47e52866ec6e829",
      "parents": [
        "6842feaef1c4e06239bd30f8d3ef722838b1c97e"
      ],
      "author": {
        "name": "Devon Carew",
        "email": "devoncarew@google.com",
        "time": "Tue Oct 08 08:54:59 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 08 08:54:59 2024 -0700"
      },
      "message": "update the repo readmes to indicate the new package locations (#245)\n\n"
    },
    {
      "commit": "6842feaef1c4e06239bd30f8d3ef722838b1c97e",
      "tree": "619f89ed8a2a1213eb97889727ca7d36f2dc9739",
      "parents": [
        "855831c242a17c2dee163828d52710d9043c7c8d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 03 12:21:32 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 03 12:21:32 2024 -0700"
      },
      "message": "Bump actions/checkout from 4.1.7 to 4.2.0 (#243)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "855831c242a17c2dee163828d52710d9043c7c8d",
      "tree": "abeb5ca6665e52bf83212690d145230dbd7dfd53",
      "parents": [
        "da7912141347a03e238133437801e37ae0539d8f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 01 10:22:10 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 01 10:22:10 2024 -0700"
      },
      "message": "Bump actions/checkout from 4.1.6 to 4.1.7 (#242)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/a5ac7e51b41094c92402da3b24376905380afc29...692973e3d937129bcbf40652eb9f2f61becf3332)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "da7912141347a03e238133437801e37ae0539d8f",
      "tree": "ec762c2e01d52a1e4ffa318e86d8d363ef610f93",
      "parents": [
        "07cacaed6679a173e29176747e6ce0325742749f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 01 10:17:08 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 01 10:17:08 2024 -0700"
      },
      "message": "Bump dart-lang/setup-dart from 1.6.4 to 1.6.5 (#241)\n\nBumps [dart-lang/setup-dart](https://github.com/dart-lang/setup-dart) from 1.6.4 to 1.6.5.\r\n- [Release notes](https://github.com/dart-lang/setup-dart/releases)\r\n- [Changelog](https://github.com/dart-lang/setup-dart/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/dart-lang/setup-dart/compare/f0ead981b4d9a35b37f30d36160575d60931ec30...0a8a0fc875eb934c15d08629302413c671d3f672)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: dart-lang/setup-dart\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "07cacaed6679a173e29176747e6ce0325742749f",
      "tree": "f4c0525da7b1ad6184b416b8bbabec82b0d05947",
      "parents": [
        "8ce0d13ffe9dac267bdbd6c65c145ba4f611af72"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 03 09:14:52 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 03 09:14:52 2024 -0700"
      },
      "message": "Bump actions/checkout from 4.1.4 to 4.1.6 (#240)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.6.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/0ad4b8fadaa221de15dcec353f45205ec38ea70b...a5ac7e51b41094c92402da3b24376905380afc29)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8ce0d13ffe9dac267bdbd6c65c145ba4f611af72",
      "tree": "34fe06ed84edf4a879bc4a0a273ed7e3732a0e15",
      "parents": [
        "bc101943887c3cb200c926e37cce759466e0ef43"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed May 01 11:10:28 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 01 11:10:28 2024 -0700"
      },
      "message": "Bump dart-lang/setup-dart from 1.6.2 to 1.6.4 (#239)\n\nBumps [dart-lang/setup-dart](https://github.com/dart-lang/setup-dart) from 1.6.2 to 1.6.4.\r\n- [Release notes](https://github.com/dart-lang/setup-dart/releases)\r\n- [Changelog](https://github.com/dart-lang/setup-dart/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/dart-lang/setup-dart/compare/fedb1266e91cf51be2fdb382869461a434b920a3...f0ead981b4d9a35b37f30d36160575d60931ec30)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: dart-lang/setup-dart\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "bc101943887c3cb200c926e37cce759466e0ef43",
      "tree": "2c26c9213389459bb271ec7f66b35d31125c71cf",
      "parents": [
        "f858c6fe9d1b0167b944aa62dd9b4321036b5238"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed May 01 11:05:52 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 01 11:05:52 2024 -0700"
      },
      "message": "Bump actions/checkout from 4.1.2 to 4.1.4 (#238)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.4.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/9bb56186c3b09b4f86b1c65136769dd318469633...0ad4b8fadaa221de15dcec353f45205ec38ea70b)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f858c6fe9d1b0167b944aa62dd9b4321036b5238",
      "tree": "0b3753cefb02a76aa16807bb0659266beb53c13a",
      "parents": [
        "3aa06490bf34bddf04c7ea964a50c177a4ca0de7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 01 10:31:08 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 01 10:31:08 2024 -0700"
      },
      "message": "Bump actions/checkout from 4.1.1 to 4.1.2 (#237)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/b4ffde65f46336ab88eb53be808477a3936bae11...9bb56186c3b09b4f86b1c65136769dd318469633)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3aa06490bf34bddf04c7ea964a50c177a4ca0de7",
      "tree": "6c7e5055f95be6e1b97884fc8b999a916a15eefe",
      "parents": [
        "cd3a9324f6483f313ba1f0f3ff382ea4e6982ef2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Feb 01 10:07:26 2024 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 01 10:07:26 2024 -0800"
      },
      "message": "Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (#235)\n\nBumps [dart-lang/setup-dart](https://github.com/dart-lang/setup-dart) from 1.6.0 to 1.6.2.\r\n- [Release notes](https://github.com/dart-lang/setup-dart/releases)\r\n- [Changelog](https://github.com/dart-lang/setup-dart/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/dart-lang/setup-dart/compare/b64355ae6ca0b5d484f0106a033dd1388965d06d...fedb1266e91cf51be2fdb382869461a434b920a3)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: dart-lang/setup-dart\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "cd3a9324f6483f313ba1f0f3ff382ea4e6982ef2",
      "tree": "75c8991577975bb8f7074c69bb2436e86f57a556",
      "parents": [
        "e7c03aa61789cf57063660b99e6310a1f96a3553"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Nov 01 13:52:16 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 01 13:52:16 2023 -0700"
      },
      "message": "Bump actions/checkout from 3.6.0 to 4.1.1 (#232)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.1.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/f43a0e5ff2bd294095638e18286ca9a3d1956744...b4ffde65f46336ab88eb53be808477a3936bae11)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-major\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e7c03aa61789cf57063660b99e6310a1f96a3553",
      "tree": "575eaa0efc9b50c494eef0444dce1ffc110eb407",
      "parents": [
        "7418131cfe3c5e063166bc3d7cca98985a6d8eeb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Nov 01 11:04:55 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 01 11:04:55 2023 -0700"
      },
      "message": "Bump dart-lang/setup-dart from 1.5.0 to 1.6.0 (#233)\n\nBumps [dart-lang/setup-dart](https://github.com/dart-lang/setup-dart) from 1.5.0 to 1.6.0.\r\n- [Release notes](https://github.com/dart-lang/setup-dart/releases)\r\n- [Changelog](https://github.com/dart-lang/setup-dart/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/dart-lang/setup-dart/compare/d6a63dab3335f427404425de0fbfed4686d93c4f...b64355ae6ca0b5d484f0106a033dd1388965d06d)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: dart-lang/setup-dart\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7418131cfe3c5e063166bc3d7cca98985a6d8eeb",
      "tree": "3d60a410ac663847ce2de4919bdc1a123011a4db",
      "parents": [
        "a18ad1ce88eaeb5a11a13ef8fc25d1e78b546c59"
      ],
      "author": {
        "name": "Parker Lougheed",
        "email": "parlough@gmail.com",
        "time": "Wed Oct 11 10:58:17 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 11 08:58:17 2023 -0700"
      },
      "message": "Remove now unnecessary glob dependency override (#226)\n\n"
    },
    {
      "commit": "a18ad1ce88eaeb5a11a13ef8fc25d1e78b546c59",
      "tree": "4e6727e3fb7253420cc555f89e247c082da40467",
      "parents": [
        "5d9a6027756b5846e8f5380f983390f61f564a75"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 01 12:12:20 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 01 12:12:20 2023 -0700"
      },
      "message": "Bump actions/checkout from 3.5.2 to 3.6.0 (#228)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.6.0.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/8e5e7e5ab8b370d6c329ec480221332ada57f0ab...f43a0e5ff2bd294095638e18286ca9a3d1956744)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5d9a6027756b5846e8f5380f983390f61f564a75",
      "tree": "3123be864ac2a1fd694ce2c4286dcdfc96484d40",
      "parents": [
        "e4eebba6dac26c9e5c7a08bd8d8a3830bb612c3c"
      ],
      "author": {
        "name": "Jacob MacDonald",
        "email": "jakemac@google.com",
        "time": "Fri May 19 10:18:12 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 10:18:12 2023 -0700"
      },
      "message": "remove no longer necessary override (#223)\n\n"
    },
    {
      "commit": "e4eebba6dac26c9e5c7a08bd8d8a3830bb612c3c",
      "tree": "7458ac5a01ae75d7e86c6dbc235406a44885c228",
      "parents": [
        "f05f5db0733274bed584e9915c39d34bb812fbb8"
      ],
      "author": {
        "name": "Jacob MacDonald",
        "email": "jakemac@google.com",
        "time": "Fri May 19 09:32:56 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 19 09:32:56 2023 -0700"
      },
      "message": "release version 7.0.0 (#222)\n\n"
    },
    {
      "commit": "f05f5db0733274bed584e9915c39d34bb812fbb8",
      "tree": "a7941ca7e55910ae086879c9d1334a24f4a26cf1",
      "parents": [
        "f2f3076bf6e62384f52acc23df406c8986af6b70"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Mon May 15 08:15:44 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 15 08:15:44 2023 -0700"
      },
      "message": "Make MemoryFile.openRead and _ChrootFile.openRead return Stream\u003cList\u003cint\u003e\u003e again (#217)\n\n* Make MemoryFile.openRead and _ChrootFile.openRead return Stream\u003cList\u003cint\u003e\u003e again\r\n\r\nThis is equivalent to https://github.com/google/file.dart/pull/168,\r\nbut I foolishly neglected to make corresponding changes for all\r\nfile system types.\r\n\r\nFixes https://github.com/google/file.dart/issues/193.\r\n\r\n* Apply suggestions from natebosch\r\n\r\nCo-authored-by: Nate Bosch \u003cnbosch1@gmail.com\u003e\r\n\r\n---------\r\n\r\nCo-authored-by: Nate Bosch \u003cnbosch1@gmail.com\u003e"
    },
    {
      "commit": "f2f3076bf6e62384f52acc23df406c8986af6b70",
      "tree": "e61e938df307ed2d509ae7110c839b70b4a6ddda",
      "parents": [
        "5e76f744ec9dbbad34aedcc2b532b6fd3d3e706d"
      ],
      "author": {
        "name": "Ross Wang",
        "email": "imagipioneer@gmail.com",
        "time": "Fri May 12 16:54:39 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 12 16:54:39 2023 -0700"
      },
      "message": "MemoryFileSystem addStream onError (#220)\n\nRoute stream errors to the stream completer rather than the file completer.\r\n\r\nFixes #219"
    },
    {
      "commit": "5e76f744ec9dbbad34aedcc2b532b6fd3d3e706d",
      "tree": "d52e132742a1a07825b04b2f7d792c8203dfaf9e",
      "parents": [
        "794146610ca26568af2fab1e5d1e0b1c0ddcb534"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Fri May 12 14:51:25 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 12 14:51:25 2023 -0700"
      },
      "message": "Fix MemoryFileSystem to treat an empty path as non-existent (#213)\n\n* Fix MemoryFileSystem to treat an empty path as non-existent\r\n\r\n`_MemoryFileSystem.findNode` returns `reference?.directory` if given\r\nthe root path or an empty path.  However, an empty path should\r\nbe treated as non-existent, not as a directory.  Instead explicitly\r\nreturn `null` as a special case when given an empty path.\r\n\r\nPartially addresses https://github.com/google/file.dart/issues/198.\r\n\r\n* Make _MemoryFileSystem._current nullable"
    },
    {
      "commit": "794146610ca26568af2fab1e5d1e0b1c0ddcb534",
      "tree": "f0798fa2cca2edc9e2b2798ac0f096013424e6d1",
      "parents": [
        "e90e5ed8e9695f68bb00d2839c6b91233f48b8d9"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Fri May 12 13:52:46 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 12 13:52:46 2023 -0700"
      },
      "message": "Make `FileSystem.isLink` actually work (#214)\n\n* Make `FileSystem.isLink` actually work\r\n\r\n`FileSystem.isLink` called `FileSystem.type` with the default\r\nargument of `followLinks: true`.  This is obviously wrong since it\r\nwould mean that `isLink` would never return true (except maybe for\r\nbroken symbolic links).\r\n\r\nMake `FileSystem.isLink` use `followLinks: false`.  This is what\r\n`dart:io`\u0027s `FileSystemEntity.isLink` is documented to do.\r\n\r\nPartially addresses https://github.com/google/file.dart/issues/8.\r\n\r\n* Reorganize isFile/isDirectory/isLink tests\r\n\r\nReorganize the isFile/isDirectory/isLink tests so that the test names\r\nare more appropriate."
    },
    {
      "commit": "e90e5ed8e9695f68bb00d2839c6b91233f48b8d9",
      "tree": "99bd6be7e35b2c21374bcf04c2a2195436ca5641",
      "parents": [
        "b9051806a1fde54066d080a2a3f00333c7bae415"
      ],
      "author": {
        "name": "Bernardo Ferrari",
        "email": "bernaferrari2@gmail.com",
        "time": "Thu May 11 17:06:25 2023 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 11 13:06:25 2023 -0700"
      },
      "message": "Migrate to Dart 3 (#210)\n\nFix https://github.com/google/file.dart/issues/209\r\n\r\nI also made sure `dart analyzer` result is perfect.\r\n\r\n`abstract class` \u003d\u003e `mixin`. They can\u0027t be `mixin class` because then they need to expose/re-implement dozens of methods.\r\n\r\n![image](https://user-images.githubusercontent.com/351125/226994562-5d1f8653-a358-464b-b201-4edafdc47525.png)"
    },
    {
      "commit": "b9051806a1fde54066d080a2a3f00333c7bae415",
      "tree": "377d2bad5c6b35a275ea7bf757b9946d4a410d39",
      "parents": [
        "8158a354ed79a903a855a80646872f99658f3d5d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon May 01 14:35:59 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 01 14:35:59 2023 -0700"
      },
      "message": "Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (#212)\n\nBumps [dart-lang/setup-dart](https://github.com/dart-lang/setup-dart) from 1.4.0 to 1.5.0.\r\n- [Release notes](https://github.com/dart-lang/setup-dart/releases)\r\n- [Changelog](https://github.com/dart-lang/setup-dart/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/dart-lang/setup-dart/compare/a57a6c04cf7d4840e88432aad6281d1e125f0d46...d6a63dab3335f427404425de0fbfed4686d93c4f)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: dart-lang/setup-dart\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8158a354ed79a903a855a80646872f99658f3d5d",
      "tree": "70d13f2e8a368dde0a101766349c64b77e5a7592",
      "parents": [
        "72a67c33f90bfb7e10057e286e06d2fe3baa4d98"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon May 01 14:23:41 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 01 14:23:41 2023 -0700"
      },
      "message": "Bump actions/checkout from 3.3.0 to 3.5.2 (#218)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.5.2.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/ac593985615ec2ede58e132d2e21d2b1cbd6127c...8e5e7e5ab8b370d6c329ec480221332ada57f0ab)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "72a67c33f90bfb7e10057e286e06d2fe3baa4d98",
      "tree": "f18055f1c55dba31c3b3d1e20e2967104e4d474d",
      "parents": [
        "a88f4d566b5fe6ac4ab37516bb6ff781390d8e7c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Feb 01 09:22:33 2023 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 01 09:22:33 2023 -0800"
      },
      "message": "Bump actions/checkout from 3.1.0 to 3.3.0 (#207)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.3.0.\r\n- [Release notes](https://github.com/actions/checkout/releases)\r\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/actions/checkout/compare/93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8...ac593985615ec2ede58e132d2e21d2b1cbd6127c)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/checkout\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a88f4d566b5fe6ac4ab37516bb6ff781390d8e7c",
      "tree": "8407b23fbe3eb7635f06cc54abfd11c5d7d82207",
      "parents": [
        "b768f79dcd104a5feabafab47101c4355b71cd8f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Feb 01 09:16:55 2023 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 01 09:16:55 2023 -0800"
      },
      "message": "Bump dart-lang/setup-dart from 1.3 to 1.4 (#208)\n\nBumps [dart-lang/setup-dart](https://github.com/dart-lang/setup-dart) from 1.3 to 1.4.\r\n- [Release notes](https://github.com/dart-lang/setup-dart/releases)\r\n- [Changelog](https://github.com/dart-lang/setup-dart/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/dart-lang/setup-dart/compare/6a218f2413a3e78e9087f638a238f6b40893203d...a57a6c04cf7d4840e88432aad6281d1e125f0d46)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: dart-lang/setup-dart\r\n  dependency-type: direct:production\r\n  update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\r\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b768f79dcd104a5feabafab47101c4355b71cd8f",
      "tree": "481c6b724cab44b9c70e36f2fd20005ec8ff8862",
      "parents": [
        "b2e31cb6ef40b223701dbfa0b907fe58468484d7"
      ],
      "author": {
        "name": "Devon Carew",
        "email": "devoncarew@google.com",
        "time": "Mon Nov 07 08:32:44 2022 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 07 08:32:44 2022 -0800"
      },
      "message": "add dependabot; run the CI weekly (#203)\n\n"
    },
    {
      "commit": "b2e31cb6ef40b223701dbfa0b907fe58468484d7",
      "tree": "9e919949b8f04b6945e15f5b5aa668eed4f1f24c",
      "parents": [
        "0803414be46d02fb4566e5da6eb7960ff7f288d2"
      ],
      "author": {
        "name": "Devon Carew",
        "email": "devoncarew@google.com",
        "time": "Wed Aug 17 19:30:34 2022 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 17 19:30:34 2022 -0700"
      },
      "message": "populate the pubspec repository fields; update readme #196 (#202)\n\n* misc repository maintenance\r\n\r\n* update readme"
    },
    {
      "commit": "0803414be46d02fb4566e5da6eb7960ff7f288d2",
      "tree": "9dc974fedb73f82e24acdbd9a379dc552daf24be",
      "parents": [
        "4428a9b871ebc2739287a3835970eaf31c41560a"
      ],
      "author": {
        "name": "Devon Carew",
        "email": "devoncarew@google.com",
        "time": "Wed Aug 17 13:15:40 2022 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 17 13:15:40 2022 -0700"
      },
      "message": "skip a failing test on windows (#201)\n\n"
    },
    {
      "commit": "4428a9b871ebc2739287a3835970eaf31c41560a",
      "tree": "f18bd1d32404dd36dc7508b8246a5ddca96c9105",
      "parents": [
        "0132eeedea2933513bf230513a766a8baeab0c4f"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Wed Aug 17 08:20:22 2022 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 17 08:20:22 2022 -0700"
      },
      "message": "Introduce stub of a exclusive parameter for File.create. (#199)\n\n* Introduce stub of a exclusive parameter for File.create.\r\n\r\nThis is to soften landing of a breaking change https://github.com/dart-lang/sdk/issues/49647\r\n\r\n* Fix format\r\n\r\n* Fix deprecated member use\r\n\r\n* Update pubspec.yaml, CHANGELOG.md"
    },
    {
      "commit": "0132eeedea2933513bf230513a766a8baeab0c4f",
      "tree": "7558c0dea6d6450f1e1aaefdbe1ea8b1bccd2a8d",
      "parents": [
        "b5672d921805ad1ed28c959453edcf2068166dfa"
      ],
      "author": {
        "name": "Kevin Moore",
        "email": "kevmoo@users.noreply.github.com",
        "time": "Thu Oct 07 18:46:05 2021 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 07 18:46:05 2021 -0700"
      },
      "message": "remove unneeded imports (#190)\n\n"
    },
    {
      "commit": "b5672d921805ad1ed28c959453edcf2068166dfa",
      "tree": "480621e75bf20d24488dc0b919c3057f6b903dab",
      "parents": [
        "5b870ff85e7e700a4f09a41415ba6624e0f0b173"
      ],
      "author": {
        "name": "Kevin Moore",
        "email": "kevmoo@users.noreply.github.com",
        "time": "Thu Oct 07 18:21:10 2021 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 07 18:21:10 2021 -0700"
      },
      "message": "Use published versions of actions (#189)\n\n"
    },
    {
      "commit": "5b870ff85e7e700a4f09a41415ba6624e0f0b173",
      "tree": "9096a5b2bf3b538da25e4175778ef913ed93ac6a",
      "parents": [
        "8b72111eb91f4ba16c0049419dfe18e08edc9888"
      ],
      "author": {
        "name": "Greg Spencer",
        "email": "gspencergoog@users.noreply.github.com",
        "time": "Tue Aug 31 11:16:04 2021 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 31 11:16:04 2021 -0700"
      },
      "message": "Switch to GitHub Actions (#188)\n\nThis PR switches to use GitHub Actions instead of Travis, and updates the analysis options to use the recommended Dart lints from the lints packages."
    },
    {
      "commit": "8b72111eb91f4ba16c0049419dfe18e08edc9888",
      "tree": "eef0831656fc2f60a1d5a8172051ec992aeadde5",
      "parents": [
        "1ebc38852ffed24b564910317982298b56c2cedd"
      ],
      "author": {
        "name": "Greg Spencer",
        "email": "gspencergoog@users.noreply.github.com",
        "time": "Tue Aug 31 09:24:45 2021 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 31 09:24:45 2021 -0700"
      },
      "message": "Create dart.yml"
    },
    {
      "commit": "1ebc38852ffed24b564910317982298b56c2cedd",
      "tree": "b6fdd1d34bd5c5b1508da6754b202ec26cae63d5",
      "parents": [
        "0ed7ef5cb9276f717a6b30640cd03f56e0bd4311"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "campfish91@gmail.com",
        "time": "Mon Jun 14 20:56:50 2021 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 14 20:56:50 2021 -0700"
      },
      "message": "Add ophandle for FileSystemEntity.exists/existsSync (#185)\n\n\r\nCo-authored-by: Jenn Magder \u003cmagder@google.com\u003e\r\n"
    },
    {
      "commit": "0ed7ef5cb9276f717a6b30640cd03f56e0bd4311",
      "tree": "9e89cdccfb2b36991def5c13a958f3bd2b7b3fab",
      "parents": [
        "427bb20ccc852425d67f2880da2a9b4707c266b4"
      ],
      "author": {
        "name": "Jenn Magder",
        "email": "magder@google.com",
        "time": "Fri May 14 17:55:21 2021 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 14 17:55:21 2021 -0700"
      },
      "message": "Add copy and open operation handles to inject memory file exceptions without mocking (#184)\n\n"
    },
    {
      "commit": "427bb20ccc852425d67f2880da2a9b4707c266b4",
      "tree": "e7b1d009d99f52b47edbc0d0bbda96203ff584f0",
      "parents": [
        "e3543257e804d5799fcd180b4c603a211d5ff878"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "campfish91@gmail.com",
        "time": "Wed Feb 17 16:43:15 2021 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 17 16:43:15 2021 -0800"
      },
      "message": "Add an operation handle to allow inserting FileSystemExceptions in the memory fs without mocking (#181)\n\n"
    },
    {
      "commit": "e3543257e804d5799fcd180b4c603a211d5ff878",
      "tree": "bd32cf23120fc7b66955c0aeda925888d5240021",
      "parents": [
        "93f6ff1ac57ae1465580415fd6a6d61860cadaa8"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "campfish91@gmail.com",
        "time": "Wed Feb 17 12:43:47 2021 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 17 12:43:47 2021 -0800"
      },
      "message": "Migrate tests to sound mode, fix type error in MemoryDirectory (#180)\n\n"
    },
    {
      "commit": "93f6ff1ac57ae1465580415fd6a6d61860cadaa8",
      "tree": "13fcfce05316da02d7bb7d73a9de5cdd5be098bc",
      "parents": [
        "ced24c2ac219846783f615703d1b0bbbbf05e545"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "campfish91@gmail.com",
        "time": "Tue Feb 09 11:54:43 2021 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 09 11:54:43 2021 -0800"
      },
      "message": "migrate file_testing to null safety (#178)\n\n"
    },
    {
      "commit": "ced24c2ac219846783f615703d1b0bbbbf05e545",
      "tree": "f11db8d4ea13bcbb7207f8a6cdeb27ba850e3c52",
      "parents": [
        "80e3a6122a70c0fbf9bbb17c325f7b869a7481a8"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Wed Feb 03 10:02:34 2021 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 03 10:02:34 2021 -0800"
      },
      "message": "Fix lints from dart pub publish (#177)\n\n"
    },
    {
      "commit": "80e3a6122a70c0fbf9bbb17c325f7b869a7481a8",
      "tree": "39df3c1916f72b98846d10f017f87243a6351dec",
      "parents": [
        "c9001cb9535f58cd1f5ec88f6566f5d87211ba24"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Wed Feb 03 09:59:16 2021 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 03 09:59:16 2021 -0800"
      },
      "message": "stable version (#176)\n\n"
    },
    {
      "commit": "c9001cb9535f58cd1f5ec88f6566f5d87211ba24",
      "tree": "fea923534a4870f698f1ca94c9851a2cde11513f",
      "parents": [
        "0e09370f581ab6388d46fda4cdab66638c0171a1"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Fri Jan 29 23:08:49 2021 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 29 23:08:49 2021 -0800"
      },
      "message": "Add _ChrootRandomAccessFile and ForwardingRandomAccessFile (#159)\n\n`ChrootFile.open`/`ChrootFile.openSync` previously returned the\r\ndelegate\u0027s `RandomAccessFile` directly.  However, `RandomAccessFile`\r\nhas a `path` property (sigh) that exposes the underlying path instead\r\nof the chroot\u0027d path.\r\n\r\nAdd delegating wrapper classes for `RandomAccessFile` so that we can\r\noverride the returned `path`."
    },
    {
      "commit": "0e09370f581ab6388d46fda4cdab66638c0171a1",
      "tree": "5cc4789f90b9cf83b5d11dd2436bf35c1444aace",
      "parents": [
        "bed9e229f1c31ee65959df44e55117098507d4d8"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Wed Nov 04 10:50:47 2020 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 04 10:50:47 2020 -0800"
      },
      "message": "update versions for beta (#173)\n\n"
    },
    {
      "commit": "bed9e229f1c31ee65959df44e55117098507d4d8",
      "tree": "6fe28d921b343e222997f753d5031a29b96cdc0b",
      "parents": [
        "71d1ad3e312728ce1f2c0eee854e30953def027c"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Thu Oct 22 10:05:36 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 10:05:36 2020 -0700"
      },
      "message": "update SDK constraint for null safety (#172)\n\n"
    },
    {
      "commit": "71d1ad3e312728ce1f2c0eee854e30953def027c",
      "tree": "3a8c5784afc4684524e4d91b86349540100b20d3",
      "parents": [
        "763c50a5f54d7b9b30cec812297958d4406d31da"
      ],
      "author": {
        "name": "Michael R Fairhurst",
        "email": "michaelrfairhurst@gmail.com",
        "time": "Fri Sep 25 23:07:03 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 23:07:03 2020 -0700"
      },
      "message": "Remove unused dart:async imports. (#169)\n\nSince this package doesn\u0027t support Dart 2.0, Future/Stream are always exported from dart:core."
    },
    {
      "commit": "763c50a5f54d7b9b30cec812297958d4406d31da",
      "tree": "34cd892f1205606aa7a4bae54f1d9613001db943",
      "parents": [
        "73403a001951eb425042f82ae593cfc23fe2c484"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Tue Sep 22 13:41:28 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 13:41:28 2020 -0700"
      },
      "message": "bump SDK constraint for 2.11 (#170)\n\n"
    },
    {
      "commit": "73403a001951eb425042f82ae593cfc23fe2c484",
      "tree": "5a11332c416194e4065461261164313842b46b53",
      "parents": [
        "e465349a3fc319580f1d7a131265d86c749347f5"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Thu Sep 10 13:40:33 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 13:40:33 2020 -0700"
      },
      "message": "Make ForwardingFile.openRead return Stream\u003cList\u003cint\u003e\u003e again (#168)\n\n`ForwardingFile.openRead` was changed to return a `Stream\u003cUint8List\u003e`\r\ninstead of a `Stream\u003cList\u003cint\u003e\u003e` in preparation for making a\r\ncorresponding change to `dart:io`.  However, that `dart:io` change\r\ncaused more breakage than expected and was reverted without making\r\ncorresponding reverts to `package:file`.  I don\u0027t think that it makes\r\nsense for `ForwardingFile` to return something different than its\r\ndelegate.\r\n\r\nWithout this change, the following code will fail with `package:file`\r\nbut not with `dart:io`:\r\n\r\n```dart\r\nawait someFile.openRead().transform(utf8.decoder);\r\n```\r\n\r\nand unintuitively requires adding `.cast\u003cList\u003cint\u003e\u003e()` before\r\nthe transformation.\r\n\r\nBonus cleanup: since dart:io\u0027s `File.readAsBytes`/`readAsBytesSync`\r\nare declared to return `Uint8List`, `ForwardingFile` should no longer\r\nneed to make explicit `Uint8List` copies."
    },
    {
      "commit": "e465349a3fc319580f1d7a131265d86c749347f5",
      "tree": "594e2bf4a3772de1dc6e6263dd331c1afcf02cd8",
      "parents": [
        "0a38af1f7c4c6d4057a4027e14de90664b7d70b6"
      ],
      "author": {
        "name": "Kevin Moore",
        "email": "kevmoo@users.noreply.github.com",
        "time": "Wed Aug 12 15:20:15 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 15:20:15 2020 -0700"
      },
      "message": "Readme improvements (#165)\n\nfile:\r\n- Fix outdated pub URL\r\n\r\nfile_testing:\r\n- Added pub version badge to file_testing\r\n- Fixed example in file_testing\r\n\r\nboth:\r\n- Removed gratuitous titles"
    },
    {
      "commit": "0a38af1f7c4c6d4057a4027e14de90664b7d70b6",
      "tree": "96cc47b6985c213162806e44b66e9f03b963eeb2",
      "parents": [
        "e5233fbadf6bfde177d68b961827c35be116e4ba"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Tue Aug 11 09:47:17 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 09:47:17 2020 -0700"
      },
      "message": "update for null-safety publication (#163)\n\nupdate for null-safety publication"
    },
    {
      "commit": "e5233fbadf6bfde177d68b961827c35be116e4ba",
      "tree": "e1e5eb3aaa054abbf2b507dbfadff089a04f69d7",
      "parents": [
        "d189c70a31e036ade482d9bf17bf274ffebb2ac3"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Wed Jul 29 16:24:20 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 16:24:20 2020 -0700"
      },
      "message": "[null-safety] migrate to _almost_ null safety (#162)\n\nRemove record/replay functionality and update to almost null-safety."
    },
    {
      "commit": "d189c70a31e036ade482d9bf17bf274ffebb2ac3",
      "tree": "b083cd8422eb73dea29f179051e213677f938b34",
      "parents": [
        "4fd05e523db58344f784d1e1fc1399b59d7b8a8c"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Wed Jul 29 14:19:51 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 14:19:51 2020 -0700"
      },
      "message": "[null-safety] remove implicit-dynamic, intl in preparation for null-safety (#160)\n\n- Implicit dynamic is removed, which will make it easier to migrate to null-safety where it is not supported.\r\n- Intl dependency is removed, since this will block null safety despite being used in only a single place."
    },
    {
      "commit": "4fd05e523db58344f784d1e1fc1399b59d7b8a8c",
      "tree": "3bb1f81b5790d1f81625ccc661e776e71ecfc842",
      "parents": [
        "c49d032a947805a9d41ea9d836698dc52b4ac137"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Wed Jul 01 15:56:19 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:56:19 2020 -0700"
      },
      "message": "Make MemoryRandomAccessFile handle the file being moved from under it (#157)\n\n* Make rename tests verify the path of the returned FileSystemEntity\r\n\r\n* Add explicit types to fix analysis lints\r\n\r\n* Make MemoryRandomAccessFile handle the file being moved from under it\r\n\r\nFix `MemoryRandomAccessFile` to use only its `FileNode` and never the\r\ncorresponding `MemoryFile`.  While the `MemoryRandomAccessFile` (the\r\nequivalent of a file handle) is open, its `FileNode` should never\r\nchange, but the original `MemoryFile` might become backed by a\r\ndifferent node if the file is moved, removed, or replaced.\r\n\r\nPOSIX systems typically allow this; Windows typically doesn\u0027t.  For\r\nnow, make `MemoryFileSystem` follow the typical POSIX behavior. (In\r\nthe long-term, `MemoryFileSystem` perhaps should have configurable\r\nbehavior.)\r\n\r\n* Make MemoryFile.openWrite better handle a file being moved from under it\r\n\r\nMake `MemoryFile.openWrite`\u0027s `IOSink` resolve the `FileNode`\r\nimmediately instead of adding it to an async queue.  Otherwise node\r\nresolution could return a different `FileNode` than what was\r\noriginally intended.\r\n\r\nEagerly resolving the `FileNode` has the side-effect of potentially\r\nthrowing exceptions earlier than expected.  I therefore added a\r\nmechanism to defer throwing."
    },
    {
      "commit": "c49d032a947805a9d41ea9d836698dc52b4ac137",
      "tree": "462c70cd429244a22c6dcf7d1e1433d38393e8ff",
      "parents": [
        "b651ddda4e2ba4ccce16414c70edaf47b8604ac1"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Wed Jun 24 16:58:32 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 16:58:32 2020 -0700"
      },
      "message": "Replace existsSync() usage in tests (#156)\n\nUse the `exists` `Matcher` instead of `existsSync()` in tests.\r\nMechanical change to replace:\r\n\r\n    expect(f.existsSync(), true);\r\n    expect(f.existsSync(), isTrue);\r\n\r\nand\r\n\r\n    expect(g.existsSync(), false);\r\n    expect(g.existsSync(), isFalse);\r\n\r\nwith\r\n\r\n    expect(f, exists);\r\n    expect(g, isNot(exists));"
    },
    {
      "commit": "b651ddda4e2ba4ccce16414c70edaf47b8604ac1",
      "tree": "2b969c17761d85f148c183fe0ab8b8e9ba727ed4",
      "parents": [
        "996dba3791d95b0b456955b4a6842c5536ea7c18"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Tue Jun 23 17:21:32 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 17:21:32 2020 -0700"
      },
      "message": "Fix CHANGELOG.md and update package version (#155)\n\nSome of my earlier commits didn\u0027t make the cutoff for 5.2.1.  Adjust\r\nCHANGELOG.md accordingly."
    },
    {
      "commit": "996dba3791d95b0b456955b4a6842c5536ea7c18",
      "tree": "80c5c212df29cfbdf988a54825bd963945fc1b98",
      "parents": [
        "48897b368b46fd74dd679991fe3f103ffbf6c425"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Tue Jun 23 15:29:34 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 15:29:34 2020 -0700"
      },
      "message": "Fix describeInvocation code style (#154)\n\nFix code style for `describeInvocation`.\r\n\r\nMight as well fix output for `Invocation.setter` cases too."
    },
    {
      "commit": "48897b368b46fd74dd679991fe3f103ffbf6c425",
      "tree": "a260545c13d473465582d1be2fce71672c7d9a51",
      "parents": [
        "1d8aab087767ab2a8b3647366f75e121b9667af1"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Tue Jun 23 15:28:56 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 15:28:56 2020 -0700"
      },
      "message": "Try to fix flaky timestamp tests (#153)\n\n* Try to fix flaky timestamp tests\r\n\r\nThere seems to be an underlying Dart issue that causes access and\r\nmodification times to files to sometimes be 1 second before the\r\ncurrent time.\r\n\r\nAdjust `package:file`\u0027s access and modification time tests to\r\ntolerate this.  Previously they verified that the access and\r\nmodification times always were within a 1 second interval, starting\r\nfrom the current second and ending at the next second.  This change\r\nadjusts the interval to start at the previous second and end at the\r\ncurrent time rounded up to the nearest second.  This means that the\r\ninterval will be 1 second if the current time happens to be an exact\r\nsecond or will be up to 2 seconds otherwise.\r\n\r\nWith this change, I\u0027ve run one of the modification time tests in a\r\ncontinuous loop for 10s (\u003e300K iterations) without failure.\r\n\r\nBonus: Make some additional changes related to time handling:\r\n\r\n* Change `ceil()` to be a mathematical ceiling.  Previously if the\r\n  current time happened to be an exact second, `ceil()` would return\r\n  the next second, which is a bit misleading.\r\n\r\n* Change `expect(before, isSameOrBefore(timestamp))` to\r\n  `expect(timestamp, isSameOrAfter(before))` since we\u0027re verifying\r\n  that the timestamp is correct, not that the `before` reference time\r\n  is.  Otherwise output from a test failure mixes up the notion of\r\n  \"Actual\" and \"Expected\" values.\r\n\r\n* Update CHANGELOG.md"
    },
    {
      "commit": "1d8aab087767ab2a8b3647366f75e121b9667af1",
      "tree": "090cc37d0bec52ce51184c9b80f1efd2178c4a2c",
      "parents": [
        "40ee95af7f6b82b7c429754d09432f6b3ee721e4"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Tue Jun 23 13:45:33 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 13:45:33 2020 -0700"
      },
      "message": "Enable more \"File \u003e open\" tests (#145)\n\n* Enable more \"File \u003e open\" tests\r\n\r\nWhen I added a `MemoryFileSystem`-based implementation of\r\n`RandomAccessFile` in https://github.com/google/file.dart/pull/136,\r\nI enabled `File \u003e open` tests for `test/memory_test.dart` but did not\r\nnotice that various other tests depend on `MemoryFileSystem` and also\r\nexplicitly disabled them.\r\n\r\nEnable them for `chroot_test.dart` and for `recording_test.dart`.\r\nEnabling them for `replay_test.dart` currently does not work due to\r\nother failures that I don\u0027t yet understand (see\r\nhttps://github.com/google/file.dart/issues/144).\r\n\r\n* Fix type error when attempting to enable \"File \u003e open\" replay tests\r\n\r\nFix `ReplayFile.read`/`readSync` to explicitly convert the input\r\n(read from a JSON integer array) into a `Uint8List`.\r\n\r\nFixes one of the failures in https://github.com/google/file.dart/issues/144.\r\n\r\n* Fix analysis error\r\n\r\n* Disable \"File \u003e open\" replay tests more selectively\r\n\r\nRecord/replay currently doesn\u0027t work with `RandomAccessFile.readInto`,\r\nbut we can enable other `RandomAccessFile` tests."
    },
    {
      "commit": "40ee95af7f6b82b7c429754d09432f6b3ee721e4",
      "tree": "dfc163af1ca9b32f8a478209c9a567747468508f",
      "parents": [
        "6f58645adbfadf92491f5ecf7d7cc1743f9b6392"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Tue Jun 23 13:17:43 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 13:17:43 2020 -0700"
      },
      "message": "Fix and refactor NoMatchingInvocationError.toString() (#149)\n\n* Fix NoMatchingInvocationError.toString()\r\n\r\n`NoMatchingInvocation.toString()` attempted to avoid printing a comma\r\nafter the last argument, but the code was backwards, instead adding a\r\ntrailing comma and omitting the comma after the first argument.\r\n\r\n* Refactor NoMatchingInvocationError.toString()\r\n\r\nBreak up `NoMatchingInvocationError.toString()` so that we can\r\ngenerate human-readable string representations of `Invocation`s\r\nelsewhere for debugging.\r\n\r\n* Add test for `describeInvocation`, fix printing strings for named arguments"
    },
    {
      "commit": "6f58645adbfadf92491f5ecf7d7cc1743f9b6392",
      "tree": "a157320608c6c58dbbbd0eac0fc9320e54cf14d4",
      "parents": [
        "2e7de7b2d475276400ab93b98c136355ff7e9ac9"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Tue Jun 23 12:19:53 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 12:19:53 2020 -0700"
      },
      "message": "Remove Uint8ListToPlainList (#143)\n\n`Uint8List` is already a `List\u003cint\u003e`; we don\u0027t need a `Converter` to\r\ngo from one type to the other and can cast instead."
    },
    {
      "commit": "2e7de7b2d475276400ab93b98c136355ff7e9ac9",
      "tree": "e36d19428e1e507d2dc2db486311fc5ed5a063bb",
      "parents": [
        "5ef4626363f61bf0cca24e2ee3e16e0135516152"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Tue Jun 23 08:53:34 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 08:53:34 2020 -0700"
      },
      "message": "Fix MemoryFile.readAsLines to behave more like File.readAsLines (#147)\n\n* Fix MemoryFile.readAsLines to behave more like File.readAsLines\r\n\r\nFix `MemoryFile.readAsLines` to behave more like `File.readAsLines`.\r\nA final newline should not add an empty string as the last element of\r\nthe returned `List`.\r\n\r\nFixes https://github.com/google/file.dart/issues/142.\r\n\r\n* Make RecordingFile.readAsLines/readAsLinesSync always record a final newline\r\n\r\nFixes https://github.com/google/file.dart/issues/146.\r\n"
    },
    {
      "commit": "5ef4626363f61bf0cca24e2ee3e16e0135516152",
      "tree": "20573f7d7c93996b147f239d881900c3bffced6c",
      "parents": [
        "ae93276575ca54f2f9aa4a3989f2762bc3fd81d9"
      ],
      "author": {
        "name": "Jonah Williams",
        "email": "jonahwilliams@google.com",
        "time": "Sun Jun 21 08:05:11 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 08:05:11 2020 -0700"
      },
      "message": "per instance temp directory naming (#152)\n\n"
    },
    {
      "commit": "ae93276575ca54f2f9aa4a3989f2762bc3fd81d9",
      "tree": "5896399182317b24f530ce94d8a6861fa817da28",
      "parents": [
        "c9f092482358e02f10fa55f7800e2f8af220b96b"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Fri Jun 19 17:10:51 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 17:10:51 2020 -0700"
      },
      "message": "Remove some stale TODOs (#151)\n\nRemove some TODOs that depended on Dart SDK issues that have since\r\nbeen fixed.\r\n\r\n* Re-enable a test that attempts writing after the `IOSink` is\r\n  closed.\r\n\r\n* Enable various other skipped tests.\r\n\r\n* Remove `_MethodInvocationProxy`.\r\n\r\nAlso add some GitHub issue references for some TODOs that I added\r\nearlier."
    },
    {
      "commit": "c9f092482358e02f10fa55f7800e2f8af220b96b",
      "tree": "a0764a7e0fc0a0a7c0c5bbfb39b91b43f649c3bc",
      "parents": [
        "7b1099d1a6de2345d2ef8f11d9451949e842defe"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Fri Jun 19 13:58:38 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 13:58:38 2020 -0700"
      },
      "message": "Try to fix some flaky tests (#150)\n\nThe suite of common tests repeatedly opens `IOSink`s and\r\n`StreamController`s but closed them only the first time.  I don\u0027t\r\ndefinitively know that this was the cause for many of the test flakes\r\nrelated to local filesystems, but with this change, I haven\u0027t hit\r\nfile-not-found flakes locally after several hundred iterations of\r\nrunning `chroot_test.dart`."
    },
    {
      "commit": "7b1099d1a6de2345d2ef8f11d9451949e842defe",
      "tree": "4c93354494c6eef3364830851d092f78265da46c",
      "parents": [
        "48cbe761c85ea0f18661d6e6f695d9d62bdfd671"
      ],
      "author": {
        "name": "Dan Field",
        "email": "dnfield@google.com",
        "time": "Wed Jun 17 13:22:31 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 13:22:31 2020 -0700"
      },
      "message": "Change dep back to package:test (#141)\n\n"
    },
    {
      "commit": "48cbe761c85ea0f18661d6e6f695d9d62bdfd671",
      "tree": "40429ff1561880345db9ae3aad72f77246c11914",
      "parents": [
        "a139f3b87bb3c7c9970e2d0cf53493aae58ad810"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Fri Jun 12 15:31:16 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 15:31:16 2020 -0700"
      },
      "message": "Add a basic implementation for MemoryRandomAccessFile (#136)\n\n* Add a basic implementation for MemoryRandomAccessFile\r\n\r\nAdd a basic implementation for `MemoryRandomAccessFile` so that\r\n`MemoryFile.open`/`openSync` can work.  Currently all functions\r\nrelated to `lock`/`unlock` remain unimplemented.\r\n\r\n* Make MemoryRandomAccessFile.readIntoSync and writeFromSync more efficient\r\n"
    },
    {
      "commit": "a139f3b87bb3c7c9970e2d0cf53493aae58ad810",
      "tree": "e7d5ff0db9d194a0572e351b66f450b20c1b1a06",
      "parents": [
        "db9a48d233228355df0cfb4444143e673bcb11e0"
      ],
      "author": {
        "name": "James D. Lin",
        "email": "jamesderlin@users.noreply.github.com",
        "time": "Fri Jun 12 15:30:53 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 15:30:53 2020 -0700"
      },
      "message": "Add a dartdoc comment for RealNode.clock (#137)\n\nAdd a dartdoc comment for `RealNode.clock` to quiet an analysis\r\ncomplaint."
    },
    {
      "commit": "db9a48d233228355df0cfb4444143e673bcb11e0",
      "tree": "31cb1536e05bb47fe895f3ea7e6b5f8e7e91a6d4",
      "parents": [
        "d35d82d18ac5b7fdbadff0f4257615855a88be5f"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Thu Oct 10 20:35:55 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 10 20:35:55 2019 -0700"
      },
      "message": "Bump version (#130)\n\n"
    },
    {
      "commit": "d35d82d18ac5b7fdbadff0f4257615855a88be5f",
      "tree": "7b1304e79407382ac5860a516a28ceeef500e7e6",
      "parents": [
        "c70c12368f39700bb3f1345db561446a218b3873"
      ],
      "author": {
        "name": "Ian Hickson",
        "email": "ian@hixie.ch",
        "time": "Thu Oct 10 20:22:59 2019 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Thu Oct 10 20:22:59 2019 -0700"
      },
      "message": "Monotonic clock version of MemoryFileSystem (#129)\n\n"
    },
    {
      "commit": "c70c12368f39700bb3f1345db561446a218b3873",
      "tree": "d007b6a896a1dc06142c147a7e5193e32aa9646b",
      "parents": [
        "850ea6dc820261389055f440288a216e031d79df"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Sat Aug 31 11:55:31 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 31 11:55:31 2019 -0700"
      },
      "message": "Add basic example (#128)\n\n"
    },
    {
      "commit": "850ea6dc820261389055f440288a216e031d79df",
      "tree": "f4d37d7ecbf494a932437940c395b56439cb52ce",
      "parents": [
        "4cc8554c5a29354d116dab62ef6518ad8c3ce2e2"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Sat Aug 31 10:16:15 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 31 10:16:15 2019 -0700"
      },
      "message": "Update for modern analysis (#127)\n\nThis should improve the package\u0027s health score on Pub"
    },
    {
      "commit": "4cc8554c5a29354d116dab62ef6518ad8c3ce2e2",
      "tree": "5fd0ec59a9eccf19a6322a0da9ad1844f3781aa2",
      "parents": [
        "fc1e1bfabc3565e6c901130c7df507c5eef7bdca"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Jul 02 09:01:31 2019 -0700"
      },
      "committer": {
        "name": "Michael Goderbauer",
        "email": "goderbauer@google.com",
        "time": "Tue Jul 02 09:01:31 2019 -0700"
      },
      "message": "Cleanup skipOnPlatform list for Windows tests that are now passing (#126)\n\n"
    },
    {
      "commit": "fc1e1bfabc3565e6c901130c7df507c5eef7bdca",
      "tree": "73c3f0eef8a38944c8d5488de88c0ef0976457b4",
      "parents": [
        "79eb583bc59b119fc33951d608f7e4470f672e9f"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon Jun 24 17:36:30 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 24 17:36:30 2019 -0700"
      },
      "message": "Prepare for upcoming change to File.openRead() (#125)\n\nAn upcoming change to the Dart SDK will change the signature\r\nof `File.openRead()` from returning `Stream\u003cList\u003cint\u003e\u003e` to\r\nreturning `Stream\u003cUint8List\u003e`.\r\n\r\nThis forwards-compatible change prepares for that SDK breaking\r\nchange by casting the Stream to `List\u003cint\u003e` before transforming\r\nit.\r\n\r\nhttps://github.com/dart-lang/sdk/issues/36900"
    },
    {
      "commit": "79eb583bc59b119fc33951d608f7e4470f672e9f",
      "tree": "8203b367575991fcc7c8913c57de6a20c74061d4",
      "parents": [
        "7a2153e109b33a069651e20cb20eb9f29ec8652f"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon May 20 09:43:41 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 20 09:43:41 2019 -0700"
      },
      "message": "Change implementations to return Uint8List rather than List\u003cint\u003e (#123)\n\nThis is in preparation for https://github.com/dart-lang/sdk/issues/36900"
    },
    {
      "commit": "7a2153e109b33a069651e20cb20eb9f29ec8652f",
      "tree": "8b8e70cba4d21f9c34a3428f0101317356e0d76b",
      "parents": [
        "14ba9eff62fc441d5b59bdce5539cfdac92d06a0"
      ],
      "author": {
        "name": "Clement Skau",
        "email": "cskau-g@users.noreply.github.com",
        "time": "Fri Mar 22 15:31:43 2019 +0100"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Fri Mar 22 07:31:43 2019 -0700"
      },
      "message": "Adds `skip` to common_tests.dart `test` function. Uses it for failing tests. (#121)\n\n"
    },
    {
      "commit": "14ba9eff62fc441d5b59bdce5539cfdac92d06a0",
      "tree": "a459b9a6a1ee3bfe9bd30e25815daeb3e60ab221",
      "parents": [
        "27049dd3e89bdb483a1a6ffc28882f7b12ed7eaa"
      ],
      "author": {
        "name": "Dan Field",
        "email": "dfield@gmail.com",
        "time": "Sun Feb 17 13:07:55 2019 -0800"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Sun Feb 17 16:07:55 2019 -0500"
      },
      "message": "Use test_api instead of test (#120)\n\nThis will get rid of transitive dep on test package for flutter_tools.\r\n\r\nI also updated some deprecated member use and some various style stuff from Flutter\u0027s analysis options - I was going to do that for the file package as well but that\u0027s a bigger chore. If we\u0027d rather have it all in one PR I can do that though."
    },
    {
      "commit": "27049dd3e89bdb483a1a6ffc28882f7b12ed7eaa",
      "tree": "92bf838a3e9acf074f9606d6fc9b94b7b553f0d3",
      "parents": [
        "a198745add813d2c1880713ca21c19f757e166cb"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "stereotype441@gmail.com",
        "time": "Fri Dec 07 14:34:11 2018 -0800"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Fri Dec 07 22:34:11 2018 +0000"
      },
      "message": "Switch to new-style mixins so that super.noSuchMethod can be called. (#117)\n\nThe ability for a class used as a mixin to call super has been removed\r\nfrom Dart, but due to an analyzer bug some usages slipped through the\r\ncracks.  The analyzer bug has now been fixed, so we need a\r\ncorresponding fix to package:file.\r\n\r\nThe solution is to change the mixin classes to use the new \"mixin\"\r\nsyntax."
    },
    {
      "commit": "a198745add813d2c1880713ca21c19f757e166cb",
      "tree": "3a96c6d1e9fd79eccd0c4ec2d58ccdd1c8eca1d8",
      "parents": [
        "7ef7e0c229447d2797285ca5cff805c00147fb16"
      ],
      "author": {
        "name": "Paul Berry",
        "email": "stereotype441@gmail.com",
        "time": "Fri Oct 12 15:35:20 2018 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Fri Oct 12 15:35:20 2018 -0700"
      },
      "message": "Rework mixins to avoid extending non-Object. (#116)\n\nThe ability for a class extending non-Object to be used as a mixin\r\nwill be removed from Dart in an upcoming release.  In general, code\r\ntaking advantage of this ability can be fixed in two ways:\r\n\r\n- The class can be changed to use the new \"mixin\" syntax (see\r\n  https://github.com/dart-lang/language/blob/master/working/0006.%20Super-invocations%20in%20mixins/0007.%20Mixin%20declarations/lrhn-strawman.md).\r\n\r\n- If the class contains no references to \"super\", the base class can\r\n  simply be moved into the \"implements\" clause (e.g. \"abstract class M\r\n  extends A implements B {...}\" can be changed to \"abstract class M\r\n  implements A, B {...}\"\r\n\r\nThis CL adopts the second strategy, since it\u0027s feasible (the classes\r\nin question do not use \"super\") and since it\u0027s backwards compatible to\r\nolder versions of Dart."
    },
    {
      "commit": "7ef7e0c229447d2797285ca5cff805c00147fb16",
      "tree": "385cfa76178930ff94a16a938ea025a86927ce9b",
      "parents": [
        "515ed1dd48740ab14b625de1be464cb2bca4fefd"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Wed Sep 05 17:12:23 2018 +0100"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Wed Sep 05 09:12:23 2018 -0700"
      },
      "message": "Add tests that fail because of slash directions (#115)\n\nSee #112."
    },
    {
      "commit": "515ed1dd48740ab14b625de1be464cb2bca4fefd",
      "tree": "f9adc9f4431dbd9456dd06532b80a4d37cb8cb87",
      "parents": [
        "a7f409f407f034a5a26f8f2fec42c794ce2f8f85"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Thu Aug 30 13:23:14 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 30 13:23:14 2018 -0700"
      },
      "message": "Dart 2 fix for File.open() (#114)\n\nFixes https://github.com/flutter/flutter/issues/19578"
    },
    {
      "commit": "a7f409f407f034a5a26f8f2fec42c794ce2f8f85",
      "tree": "17b0efea8a680f45ab03536a01d2fc9af65d83c5",
      "parents": [
        "0213b00c5007d31f66c248eacadc1670b27b3066"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Wed Aug 29 16:18:56 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 29 16:18:56 2018 -0700"
      },
      "message": "Dart 2 fixes (#113)\n\nFixes https://github.com/google/file.dart/issues/88"
    },
    {
      "commit": "0213b00c5007d31f66c248eacadc1670b27b3066",
      "tree": "95f51bfd9444257b715e2e947f99f6be046ad68c",
      "parents": [
        "40e7d6a6b12c95b1a8d70eda7cca5b6d6254a427"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Mon Aug 20 14:48:41 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 20 14:48:41 2018 -0700"
      },
      "message": "Remove deprecated enablePreviewDart2 analysis option (#111)\n\n"
    },
    {
      "commit": "40e7d6a6b12c95b1a8d70eda7cca5b6d6254a427",
      "tree": "a3eaef2f668df0598d3d546c9f523cd56e1fd378",
      "parents": [
        "3e33e9ff2d7a32a86502a3cbebf3cc62c8e04566"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Tue Aug 14 09:58:39 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 14 09:58:39 2018 -0700"
      },
      "message": "Relax constraints on package:test version (#110)\n\nFixes #109"
    },
    {
      "commit": "3e33e9ff2d7a32a86502a3cbebf3cc62c8e04566",
      "tree": "dddb7ca2cfdca8742994fe440439bd8de75d501e",
      "parents": [
        "446ec63d52454b76cf084f4605d842f5840eea2a"
      ],
      "author": {
        "name": "Keerti Parthasarathy",
        "email": "keertip@users.noreply.github.com",
        "time": "Mon Aug 13 14:10:27 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 13 14:10:27 2018 -0700"
      },
      "message": "Remove woraround for nsm forwarding and mixins, fix has landed in SDK. (#108)\n\n"
    },
    {
      "commit": "446ec63d52454b76cf084f4605d842f5840eea2a",
      "tree": "f40f0c08ced8c6f7c8cb133a468707c8038acf73",
      "parents": [
        "69f797d13c86f7cd968c16e04ba09c3a04b53fd7"
      ],
      "author": {
        "name": "Keerti Parthasarathy",
        "email": "keertip@users.noreply.github.com",
        "time": "Mon Aug 13 11:03:34 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 13 11:03:34 2018 -0700"
      },
      "message": "Add missing return to fix analsysis error with 2.1.0-dev.1.0. (#106)\n\n* Add missing return to fix analsysis error with 2.1.0-dev.1.0.\r\n\r\n* Format file\r\n"
    },
    {
      "commit": "69f797d13c86f7cd968c16e04ba09c3a04b53fd7",
      "tree": "8767a3c8b3d8fb0c53ea542fa3acdb46f836e6ce",
      "parents": [
        "65556d8ce5a5badf80a879a50a79451a66aa38bb"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon Aug 13 10:52:54 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 13 10:52:54 2018 -0700"
      },
      "message": "Update changelog (#107)\n\n"
    },
    {
      "commit": "65556d8ce5a5badf80a879a50a79451a66aa38bb",
      "tree": "c4eaba3d7c8718dca80ea1ef0e204aed007d6038",
      "parents": [
        "35fbd662cc97bb331393d75b3b8f590eba319fe4"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Fri Aug 10 12:32:38 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 10 12:32:38 2018 -0700"
      },
      "message": "Dart 2 type fixes. (#104)\n\n"
    },
    {
      "commit": "35fbd662cc97bb331393d75b3b8f590eba319fe4",
      "tree": "7703e28c3cc76af05d3193508460d3c29961a5f8",
      "parents": [
        "2680de2d554ffd9196c489a1a5782ffc0bc13775"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Fri Aug 10 11:31:14 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 10 11:31:14 2018 -0700"
      },
      "message": "update test dep; bump version (#102)\n\n"
    },
    {
      "commit": "2680de2d554ffd9196c489a1a5782ffc0bc13775",
      "tree": "1c0b6534d65989ca54da8e4f57cbc2e8a6138277",
      "parents": [
        "bb745fd15a96584f06e05ec3e93cbf99238dd9d5"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Thu Aug 09 23:14:58 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 09 23:14:58 2018 -0700"
      },
      "message": "update test dep to ^1.0.0 (#101)\n\n"
    },
    {
      "commit": "bb745fd15a96584f06e05ec3e93cbf99238dd9d5",
      "tree": "708fd0dc47900359ffe8bd92064077195d20cd9e",
      "parents": [
        "747d72d8c5443fe00cb4731fb124cad612c92691"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Thu Aug 09 15:21:11 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 09 15:21:11 2018 -0700"
      },
      "message": "bump Dart SDK constraint (#99)\n\n* bump Dart SDK constraint\r\n\r\n* Update pubspec.yaml\r\n\r\n* \u003d\u003e 2.0.1\r\n"
    },
    {
      "commit": "747d72d8c5443fe00cb4731fb124cad612c92691",
      "tree": "2edbd95724e6e46f9559d1c031dea8346d1e5779",
      "parents": [
        "d92d00f452e54c3edf7be1d6e5bd3f147ed22d78"
      ],
      "author": {
        "name": "Michael Thomsen",
        "email": "mit-mit@users.noreply.github.com",
        "time": "Fri Jul 13 19:44:35 2018 +0200"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Fri Jul 13 10:44:35 2018 -0700"
      },
      "message": "Fix build (#95)\n\nAnalysis error reported here:\r\nhttps://travis-ci.org/google/file.dart/jobs/399227998"
    },
    {
      "commit": "d92d00f452e54c3edf7be1d6e5bd3f147ed22d78",
      "tree": "b3d034e4f586bc73c362e41634da892a74fb0f8f",
      "parents": [
        "34cf2d118e53a30359c07cd897ff1671c5ded5c8"
      ],
      "author": {
        "name": "Michael Thomsen",
        "email": "mit-mit@users.noreply.github.com",
        "time": "Fri Jul 13 19:43:48 2018 +0200"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Fri Jul 13 10:43:48 2018 -0700"
      },
      "message": "Add Pub badge (#96)\n\n"
    },
    {
      "commit": "34cf2d118e53a30359c07cd897ff1671c5ded5c8",
      "tree": "72784c76b6fac3bea9af295cf62d5825e9cb4764",
      "parents": [
        "15a16a697afc29d489555db5bf977e9b421094ef"
      ],
      "author": {
        "name": "Rohan Chandra",
        "email": "rohanchandragithub@gmail.com",
        "time": "Tue Jul 03 03:18:23 2018 +1000"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon Jul 02 10:18:23 2018 -0700"
      },
      "message": "Use Linux error codes as fallback when OS error codes are not defined (#94)\n\n"
    },
    {
      "commit": "15a16a697afc29d489555db5bf977e9b421094ef",
      "tree": "467375be44357bfe5692791d0eacb05a4d3b7400",
      "parents": [
        "8c24e0e77d0f2278600b142d153176f44e14edd0"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "sam.rawlins@gmail.com",
        "time": "Thu Jun 14 23:22:41 2018 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Thu Jun 14 23:22:41 2018 -0700"
      },
      "message": "Add workarounds for sdk#33459 (#92)\n\n"
    },
    {
      "commit": "8c24e0e77d0f2278600b142d153176f44e14edd0",
      "tree": "6af506a950f75d694e3fa0a7c413f11514c211b0",
      "parents": [
        "7d4c2cbc3b48ba5f9039ec5427ef0020834ef864"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "sam.rawlins@gmail.com",
        "time": "Thu Jun 14 20:03:30 2018 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Thu Jun 14 20:03:30 2018 -0700"
      },
      "message": "Fix for Dart 2 runtime + 2.0.0-dev.61.0 (#91)\n\n"
    },
    {
      "commit": "7d4c2cbc3b48ba5f9039ec5427ef0020834ef864",
      "tree": "6ffb849caa96fa31ca1618c7fa99abeca6d49caa",
      "parents": [
        "a57b9ad2bd93175fdb27d96787e1785a06679cad"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "sam.rawlins@gmail.com",
        "time": "Mon May 21 13:38:00 2018 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon May 21 13:38:00 2018 -0700"
      },
      "message": "Fix a few runtime issues with Dart 2; s/retype/cast (#87)\n\n"
    },
    {
      "commit": "a57b9ad2bd93175fdb27d96787e1785a06679cad",
      "tree": "801ff7f87fb3220ca211c1ac2a67768584fc9e38",
      "parents": [
        "0af560256b353d75407adc8b3ac0e048eeb06b2a"
      ],
      "author": {
        "name": "Keerti Parthasarathy",
        "email": "keertip@users.noreply.github.com",
        "time": "Mon May 21 12:54:26 2018 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon May 21 12:54:26 2018 -0700"
      },
      "message": "Remove upper case constants (#86)\n\n"
    },
    {
      "commit": "0af560256b353d75407adc8b3ac0e048eeb06b2a",
      "tree": "c19801363559146b46e11433e762a5ff2684e261",
      "parents": [
        "89c46bf86f18f74a58d9e3383cd6bf44784dca33"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "sam.rawlins@gmail.com",
        "time": "Wed May 09 11:07:06 2018 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Wed May 09 11:07:06 2018 -0700"
      },
      "message": "Fix runtime errors in recording_test (#85)\n\n"
    },
    {
      "commit": "89c46bf86f18f74a58d9e3383cd6bf44784dca33",
      "tree": "b338ffbabcd40787de8c7a92c3b99387dec3f64f",
      "parents": [
        "db0b529f55ef6b86e5af662f09ae854bfd93c42d"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Tue Apr 10 13:46:13 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 10 13:46:13 2018 -0700"
      },
      "message": "Re-organize repo (#83)\n\nBefore, package:file/testing.dart was a library containing testing\r\nutilities.  That library depended on package:test.  However, we\r\nexplicitly didn\u0027t declare a dependency on `test` in the pubspec.yaml\r\nbecause most users of package:file don\u0027t want that dependency.\r\n\r\nUnfortunately, there\u0027s no way to have library-specific sections within\r\na pubspec.yaml.  So in order to declare that those testing utilities\r\ndid in fact depend on `package:test`, we had to publish them as a\r\nseparate package.  This change does just that, as `package:file_testing`."
    },
    {
      "commit": "db0b529f55ef6b86e5af662f09ae854bfd93c42d",
      "tree": "0bb49737419ccfcdcda49758057223cc79fc330d",
      "parents": [
        "21dfcff87185435547288a340c1e03d27641e14c"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon Apr 09 16:02:04 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 09 16:02:04 2018 -0700"
      },
      "message": "Make MemoryFileSystem support Windows-style paths (#82)\n\nFixes #68"
    },
    {
      "commit": "21dfcff87185435547288a340c1e03d27641e14c",
      "tree": "7380d127152382330032393714cb6913b2f86060",
      "parents": [
        "2b00b23392e6e927950cd2496c25216f076e6694"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Mon Apr 09 09:48:37 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 09 09:48:37 2018 -0700"
      },
      "message": "General cleanup of package:file (#81)\n\n* Fix/update analysis options\r\n* Fix some linter errors\r\n* Run dartfmt\r\n* Fix some Dart 2 strong-mode type checks\r\n* Remove usage of \"part\" and \"part of\" in the forwarding, memory, and local backends.\r\n* Fix AppVeyor and Travis scripts to work only for Dart 2\r\n* Comment out test that\u0027s causing problems with newer SDKs"
    },
    {
      "commit": "2b00b23392e6e927950cd2496c25216f076e6694",
      "tree": "fa52656a1278132a3526a96b08da56c158ee39d1",
      "parents": [
        "c09a43041d9e5e59cc3b7c82b013b69effb8c1eb"
      ],
      "author": {
        "name": "Keerti Parthasarathy",
        "email": "keertip@users.noreply.github.com",
        "time": "Thu Apr 05 15:15:44 2018 -0700"
      },
      "committer": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Thu Apr 05 15:15:44 2018 -0700"
      },
      "message": "Update the signature for RecordingRandomAccessFile._close due to chan… (#78)\n\n* Update the signature for RecordingRandomAccessFile._close due to changes in dart:io.\r\n"
    },
    {
      "commit": "c09a43041d9e5e59cc3b7c82b013b69effb8c1eb",
      "tree": "700d951147ed86cc440793663f6256a846812551",
      "parents": [
        "80218072079137d2d3dbd8033b67140756d2828e"
      ],
      "author": {
        "name": "Todd Volkert",
        "email": "tvolkert@users.noreply.github.com",
        "time": "Tue Mar 20 12:18:33 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 20 12:18:33 2018 -0700"
      },
      "message": "Import dart:io directly (#77)\n\n"
    }
  ],
  "next": "80218072079137d2d3dbd8033b67140756d2828e"
}
