message: fix: don't panic on missing key in manifest
diff: @@ -53,13 +53,19 @@ async fn read_manifests(fs: Fs, manifest_paths: Vec<PathBuf>) -> Result<Vec<Mani
  fn package_versions(manifests: &[Manifest]) -> Result<BTreeMap<String, Version>> {
  let mut versions = BTreeMap::new();
  for manifest in manifests {
  - let name = manifest.metadata["package"]["name"]
  - .as_str()
  + let name = manifest
  + .metadata
  + .get("package")
  + .and_then(|package| package.get("name"))
  + .and_then(|name| name.as_str())
  .ok_or_else(|| {
  anyhow::Error::msg(format!("{:?} is missing a package name", manifest.path))
  })?;
  - let version = manifest.metadata["package"]["version"]
  - .as_str()
  + let version = manifest
  + .metadata
  + .get("package")
  + .and_then(|package| package.get("version"))
  + .and_then(|name| name.as_str())
  .ok_or_else(|| {
  anyhow::Error::msg(format!("{:?} is missing a package version", manifest.path))
  })?;
  