)]}'
{
  "commit": "d8efbc56e4f76a678b3033f2a7fc673377d5c054",
  "tree": "74a5f56de9f709af7aa33ecc6c8c7ee4ac70d2a9",
  "parents": [
    "dbfaa0975d964935ed4add0379721ba4709acd43"
  ],
  "author": {
    "name": "Colin Nelson",
    "email": "colnnelson@fuchsia.infra.roller.google.com",
    "time": "Thu Apr 30 22:13:27 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Apr 30 22:14:13 2026 -0700"
  },
  "message": "[roll] Roll fuchsia [assembly] Migrate product_bundle to strongly typed errors\n\nMigrate the `product_bundle` crate from generic `anyhow::Error` to\nstrongly typed errors using `thiserror`. This improves error handling\nand allows callers to match on specific errors.\n\nIn `v2.rs`:\n- Define `CanonicalizeError` for path manipulation failures.\n- Define `V2Error` wrapping `fuchsia_repo::repository::Error` to\n  preserve external error types.\n- Make `from_str` and canonicalization methods infallible where\n  possible.\n\nIn `product_bundle.rs`:\n- Define `ProductBundleLoadError` (incorporating `CanonicalizeError`).\n- Define `ProductBundleWriteError` and `ProductBundleExtractError`.\n- Keep `ProductBundle::try_load_from` returning `anyhow::Result` at\n  the boundary to avoid churn in external callers.\n\nIn `product_bundle_builder.rs`:\n- Define `ProductBundleBuildError`, preserving `anyhow::Error` as\n  sources where needed.\n\nUpdate callers in `plugins/target/update` and\n`plugins/product_bundle/create` to handle the new types.\n\nTest: Verified by successful build of the workspace. No new tests added\nas behavior is unchanged.\n\nOriginal-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1592230\nOriginal-Revision: cec0bbdd2cf551d2821110242ed11a1643f9f2c3\nGitOrigin-RevId: 2d3326e72186da6f791cdc9813a7794cbcf0e1b2\nChange-Id: I07a0525c02d3826557303ae9f1dcd01729fd4b6f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "88d645d63dba5eb6e9c297acb08f95c6c0a4747d",
      "old_mode": 33188,
      "old_path": "stem",
      "new_id": "540bdc57d556cc5c6a26fa7cd99b4ae3b929b134",
      "new_mode": 33188,
      "new_path": "stem"
    }
  ]
}
