Skip to content

Apply Version Updates From Current Changes#26

Open
tomerqodo wants to merge 2 commits intocoderabbit_combined_20260121_augment_sentry_coderabbit_1_base_apply_version_updates_from_current_changes_pr156from
coderabbit_combined_20260121_augment_sentry_coderabbit_1_head_apply_version_updates_from_current_changes_pr156
Open

Apply Version Updates From Current Changes#26
tomerqodo wants to merge 2 commits intocoderabbit_combined_20260121_augment_sentry_coderabbit_1_base_apply_version_updates_from_current_changes_pr156from
coderabbit_combined_20260121_augment_sentry_coderabbit_1_head_apply_version_updates_from_current_changes_pr156

Conversation

@tomerqodo
Copy link
Copy Markdown

@tomerqodo tomerqodo commented Jan 22, 2026

Benchmark PR from qodo-benchmark#156

Summary by CodeRabbit

  • Bug Fixes

    • Fixed docs.rs build failures across multiple packages.
  • Breaking Changes

    • tauri-macos-sign now exports a custom Error enum.
  • Updates

    • Updated tauri-macos-sign to 2.3.0 and tauri-bundler to 2.7.1. Version bumps to 2.9.1 and 2.5.1 for affected packages.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 22, 2026

Walkthrough

This is a patch release consolidation across multiple Tauri crates (versions 2.5.1, 2.7.1, 2.9.1) that removes unreleased changelog fragments, bumps versions in manifests, adds consolidated changelog entries, updates dependency declarations, and manually implements Display and Error traits in tauri-macos-sign instead of deriving from thiserror.

Changes

Cohort / File(s) Summary
Deleted changelog fragments
.changes/docsrs.md, .changes/macos-codesign-error-enum.md
Removed unreleased patch-level changelog entries tracking docs.rs fixes and macos-sign error enum export
Version and dependency bumps
crates/tauri-build/Cargo.toml, crates/tauri-bundler/Cargo.toml, crates/tauri-cli/Cargo.toml, crates/tauri-macos-sign/Cargo.toml, crates/tauri-plugin/Cargo.toml, crates/tauri-runtime/Cargo.toml, crates/tauri-runtime-wry/Cargo.toml, crates/tauri/Cargo.toml, packages/cli/package.json
Bumped package versions to patch releases (2.5.0→2.5.1, 2.7.0→2.7.1, 2.9.0→2.9.1); updated transitive dependencies (tauri-macos-sign 2.2.0→2.3.0, tauri-bundler 2.7.0→2.7.1, tauri-runtime 2.9.0→2.9.1)
Changelog consolidation
crates/tauri-build/CHANGELOG.md, crates/tauri-bundler/CHANGELOG.md, crates/tauri-cli/CHANGELOG.md, crates/tauri-macos-sign/CHANGELOG.md, crates/tauri-plugin/CHANGELOG.md, crates/tauri-runtime/CHANGELOG.md, crates/tauri-runtime-wry/CHANGELOG.md, crates/tauri/CHANGELOG.md, packages/cli/CHANGELOG.md
Added new version entries documenting bug fixes for docs.rs builds, dependency upgrades, and changelog for tauri-macos-sign error enum export
Schema and metadata version updates
crates/tauri-cli/config.schema.json, crates/tauri-cli/metadata-v2.json, crates/tauri-schema-generator/schemas/config.schema.json
Updated JSON schema $id and metadata version fields from 2.9.0 to 2.9.1
Error handling refactor
crates/tauri-macos-sign/src/lib.rs
Removed thiserror derive from public Error enum; added manual implementations of std::fmt::Display and std::error::Error with explicit source tracking for select error variants

Sequence Diagram(s)

No diagrams generated: changes are primarily version bumps, configuration updates, and documentation additions without meaningful control flow or multi-component interactions to visualize.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐰 Hop along as versions dance,
From 2.9.0 to 2.9.1's advance,
Error traits now hand-crafted bright,
Docs.rs builds fixed just right,
Dependencies tidy, changelog neat—
Another release, clean and complete!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main purpose of the changeset: applying version updates across multiple crates and related files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🤖 Fix all issues with AI agents
In `@crates/tauri-build/CHANGELOG.md`:
- Line 7: Update the changelog entry for [`4b6b8690a`] to hyphenate
"user-facing": locate the line that currently reads "No user facing changes." in
the entry for commit `4b6b8690a` and change it to "No user-facing changes."
preserving all other text and formatting.

In `@crates/tauri-macos-sign/CHANGELOG.md`:
- Around line 3-7: The changelog line contains a bare URL
("https://github.com/tauri-apps/tauri/pull/14126") — replace it with a Markdown
link (for example "[`#14126`](https://github.com/tauri-apps/tauri/pull/14126)" or
a descriptive link text) in the entry under "## [2.3.0]" so the sentence
referencing the changes becomes proper Markdown and avoids the inline bare URL;
update the line containing "The changes happened in
https://github.com/tauri-apps/tauri/pull/14126." accordingly.

In `@crates/tauri-macos-sign/src/lib.rs`:
- Line 233: The condition treating submit_output.status uses map_or(wait, |s| s
== "Accepted") which returns false when status is None and wait is false,
causing non-wait notarization to fail; change the logic so None is treated as
success when wait is false by using map_or(!wait, |s| s == "Accepted") (update
the conditional that references submit_output.status and wait, e.g., inside
notarize_without_stapling) so non-wait flows proceed when status is empty.
- Around line 20-88: The source() implementation currently returns underlying
errors only for some variants, losing chaining for Plist, X509Certificate,
FailedToCreateSelfSignedCertificate, and FailedToEncodeDER; update the match in
impl std::error::Error for Error to return Some(...) for those variants as well
(e.g., for Plist { error } -> Some(error), for X509Certificate { error } ->
Some(error), for FailedToCreateSelfSignedCertificate { error } -> Some(&**error)
or equivalent, and for FailedToEncodeDER { error } -> Some(error)); keep
existing arms for TempDir, FailedToUploadApp, CommandFailed, Fs and fall through
to None for variants without inner errors.

In `@crates/tauri-plugin/CHANGELOG.md`:
- Line 7: Update the changelog entry referencing commit 4b6b8690a (PR `#14347`) by
hyphenating "user-facing" in the sentence "No user facing changes." so it reads
"No user-facing changes."; locate the string in the CHANGELOG.md entry and apply
the single-word hyphenation change.

In `@crates/tauri-runtime-wry/CHANGELOG.md`:
- Line 7: The contributor link in the changelog entry for commit 4b6b8690a / PR
`#14347` uses a malformed relative URL
(`https://www.github.com/tauri-apps/tauri/../../FabianLars`) — update the URL to
the canonical profile `https://github.com/FabianLars` for the `@FabianLars`
contributor mention in the changelog line and search other entries for the same
relative-path pattern to replace them with correct
`https://github.com/<username>` links, and if this is generated, adjust the
changelog generation template that constructs contributor links to use the
absolute GitHub profile URL instead of the relative path.

In `@crates/tauri/CHANGELOG.md`:
- Line 7: Update the changelog entry string that currently reads "No user facing
changes." to use a hyphenated adjective "No user‑facing changes." — locate the
line containing the commit reference text (the line starting with
"[`4b6b8690a`]") and replace the phrase "user facing" with "user‑facing" to
ensure consistent changelog wording.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 33853e4 and cd0c906.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (24)
  • .changes/docsrs.md
  • .changes/macos-codesign-error-enum.md
  • crates/tauri-build/CHANGELOG.md
  • crates/tauri-build/Cargo.toml
  • crates/tauri-bundler/CHANGELOG.md
  • crates/tauri-bundler/Cargo.toml
  • crates/tauri-cli/CHANGELOG.md
  • crates/tauri-cli/Cargo.toml
  • crates/tauri-cli/config.schema.json
  • crates/tauri-cli/metadata-v2.json
  • crates/tauri-macos-sign/CHANGELOG.md
  • crates/tauri-macos-sign/Cargo.toml
  • crates/tauri-macos-sign/src/lib.rs
  • crates/tauri-plugin/CHANGELOG.md
  • crates/tauri-plugin/Cargo.toml
  • crates/tauri-runtime-wry/CHANGELOG.md
  • crates/tauri-runtime-wry/Cargo.toml
  • crates/tauri-runtime/CHANGELOG.md
  • crates/tauri-runtime/Cargo.toml
  • crates/tauri-schema-generator/schemas/config.schema.json
  • crates/tauri/CHANGELOG.md
  • crates/tauri/Cargo.toml
  • packages/cli/CHANGELOG.md
  • packages/cli/package.json
💤 Files with no reviewable changes (2)
  • .changes/docsrs.md
  • .changes/macos-codesign-error-enum.md
🧰 Additional context used
🧬 Code graph analysis (1)
crates/tauri-macos-sign/src/lib.rs (3)
crates/tauri-bundler/src/error.rs (3)
  • context (199-201)
  • context (209-214)
  • context (226-231)
crates/tauri-cli/src/error.rs (3)
  • context (36-38)
  • context (46-51)
  • context (63-68)
crates/tauri-cli/src/bundle.rs (1)
  • command (120-165)
🪛 LanguageTool
crates/tauri-build/CHANGELOG.md

[style] ~7-~7: Consider using a different verb for a more formal wording.
Context: ...com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to ...

(FIX_RESOLVE)


[grammar] ~7-~7: Use a hyphen to join words.
Context: ...t caused docs.rs builds to fail. No user facing changes. ## [2.5.0] ### New Fe...

(QB_NEW_EN_HYPHEN)

crates/tauri-plugin/CHANGELOG.md

[style] ~7-~7: Consider using a different verb for a more formal wording.
Context: ...com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to ...

(FIX_RESOLVE)


[grammar] ~7-~7: Use a hyphen to join words.
Context: ...t caused docs.rs builds to fail. No user facing changes. ## [2.5.0] ### Depend...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
crates/tauri-macos-sign/CHANGELOG.md

7-7: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (18)
crates/tauri-plugin/Cargo.toml (1)

3-3: LGTM!

Patch version bump to 2.5.1 is consistent with the changelog entry for the docs.rs build fix.

crates/tauri-cli/config.schema.json (1)

3-3: LGTM!

Schema $id version updated to 2.9.1, consistent with the CLI version bump.

crates/tauri-macos-sign/Cargo.toml (1)

3-3: LGTM!

Minor version bump to 2.3.0 is appropriate given the API change (custom Error enum export) noted in the changelog.

crates/tauri-bundler/Cargo.toml (1)

3-3: LGTM!

Version bump to 2.7.1 and tauri-macos-sign dependency update to 2.3.0 are consistent with the related crate changes in this PR.

Also applies to: 62-62

crates/tauri-runtime/CHANGELOG.md (1)

3-7: LGTM!

Changelog entry for 2.9.1 follows the established format and accurately documents the docs.rs build fix with no user-facing changes.

packages/cli/package.json (1)

3-3: LGTM!

Package version updated to 2.9.1, consistent with the Rust CLI crate version bump.

crates/tauri-bundler/CHANGELOG.md (1)

3-7: Changelog entry looks consistent.
Version header and dependency note match existing formatting.

packages/cli/CHANGELOG.md (1)

3-7: Changelog entry looks consistent.
Version header and dependency note match existing formatting.

crates/tauri-schema-generator/schemas/config.schema.json (1)

3-3: Schema version bump looks good.

No functional changes here; the updated $id aligns with the 2.9.1 release.

crates/tauri-build/Cargo.toml (1)

3-3: Version bump looks good.

Consistent with the release wave; no other changes needed.

crates/tauri-runtime/Cargo.toml (1)

3-3: Version bump looks good.

No issues with this manifest update.

crates/tauri-runtime-wry/Cargo.toml (1)

3-3: Version alignment looks good.

Package and dependency bumps are consistent with the runtime 2.9.1 release.

Also applies to: 23-23

crates/tauri-cli/metadata-v2.json (1)

3-3: Metadata version bumps look good.

These entries align with the workspace release versions.

Also applies to: 6-8

crates/tauri-runtime-wry/CHANGELOG.md (1)

3-11: LGTM!

The changelog entry for version 2.9.1 is properly structured with Bug Fixes and Dependencies sections, and the content aligns with the coordinated version bump described in the PR objectives.

crates/tauri-cli/Cargo.toml (1)

3-3: LGTM!

The version bumps for tauri-cli (2.9.1), tauri-bundler (2.7.1), and tauri-macos-sign (2.3.0) are consistent with the coordinated patch release. Path dependencies are correctly maintained for workspace crates.

Also applies to: 50-50, 135-135

crates/tauri-cli/CHANGELOG.md (1)

3-8: Changelog entry looks consistent and clear.
The new 2.9.1 section follows existing formatting and documents the dependency bumps succinctly.

crates/tauri/Cargo.toml (1)

3-3: Version bumps look aligned for the release.
The package and internal dependency versions are updated consistently for 2.9.1 / 2.5.1.

Also applies to: 57-57, 62-62, 164-164

crates/tauri-macos-sign/src/lib.rs (1)

176-178: LGTM. The updated argument construction reads fine and is consistent with the surrounding usage.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


### Bug Fixes

- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([#14347](https://www.github.com/tauri-apps/tauri/pull/14347) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Hyphenate “user-facing”.

Minor grammar fix in the changelog entry.

✍️ Suggested edit
- Fixed an issue that caused docs.rs builds to fail. No user facing changes.
+ Fixed an issue that caused docs.rs builds to fail. No user-facing changes.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([#14347](https://www.github.com/tauri-apps/tauri/pull/14347) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([`#14347`](https://www.github.com/tauri-apps/tauri/pull/14347) by [`@FabianLars`](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user-facing changes.
🧰 Tools
🪛 LanguageTool

[style] ~7-~7: Consider using a different verb for a more formal wording.
Context: ...com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to ...

(FIX_RESOLVE)


[grammar] ~7-~7: Use a hyphen to join words.
Context: ...t caused docs.rs builds to fail. No user facing changes. ## [2.5.0] ### New Fe...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In `@crates/tauri-build/CHANGELOG.md` at line 7, Update the changelog entry for
[`4b6b8690a`] to hyphenate "user-facing": locate the line that currently reads
"No user facing changes." in the entry for commit `4b6b8690a` and change it to
"No user-facing changes." preserving all other text and formatting.

Comment on lines +3 to +7
## \[2.3.0]

### Enhancements

- [`f59bf9d53`](https://www.github.com/tauri-apps/tauri/commit/f59bf9d5392ffd209e26ce5259c26d1acc31c4ba) ([#14337](https://www.github.com/tauri-apps/tauri/pull/14337) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) **Potentially breaking change:** Export custom Error enum instead of using anyhow. The changes happened in https://github.com/tauri-apps/tauri/pull/14126.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Avoid bare URL in changelog entry.

Markdownlint flags the inline URL. Convert it to a Markdown link.

📝 Suggested fix
-- [`f59bf9d53`](https://www.github.com/tauri-apps/tauri/commit/f59bf9d5392ffd209e26ce5259c26d1acc31c4ba) ([`#14337`](https://www.github.com/tauri-apps/tauri/pull/14337) by [`@FabianLars`](https://www.github.com/tauri-apps/tauri/../../FabianLars)) **Potentially breaking change:** Export custom Error enum instead of using anyhow. The changes happened in https://github.com/tauri-apps/tauri/pull/14126.
+- [`f59bf9d53`](https://www.github.com/tauri-apps/tauri/commit/f59bf9d5392ffd209e26ce5259c26d1acc31c4ba) ([`#14337`](https://www.github.com/tauri-apps/tauri/pull/14337) by [`@FabianLars`](https://www.github.com/tauri-apps/tauri/../../FabianLars)) **Potentially breaking change:** Export custom Error enum instead of using anyhow. The changes happened in [tauri-apps/tauri#14126](https://github.com/tauri-apps/tauri/pull/14126).
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

7-7: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In `@crates/tauri-macos-sign/CHANGELOG.md` around lines 3 - 7, The changelog line
contains a bare URL ("https://github.com/tauri-apps/tauri/pull/14126") — replace
it with a Markdown link (for example
"[`#14126`](https://github.com/tauri-apps/tauri/pull/14126)" or a descriptive link
text) in the entry under "## [2.3.0]" so the sentence referencing the changes
becomes proper Markdown and avoids the inline bare URL; update the line
containing "The changes happened in
https://github.com/tauri-apps/tauri/pull/14126." accordingly.

Comment on lines +20 to +88
#[derive(Debug)]
pub enum Error {
#[error("failed to create temp directory: {0}")]
TempDir(std::io::Error),
#[error("failed to resolve home dir")]
ResolveHomeDir,
#[error("failed to resolve signing identity")]
ResolveSigningIdentity,
#[error("failed to decode provisioning profile")]
FailedToDecodeProvisioningProfile,
#[error("could not find provisioning profile UUID")]
FailedToFindProvisioningProfileUuid,
#[error("{context} {path}: {error}")]
Plist {
context: &'static str,
path: PathBuf,
error: plist::Error,
},
#[error("failed to upload app to Apple's notarization servers: {error}")]
FailedToUploadApp { error: std::io::Error },
#[error("failed to notarize app: {0}")]
Notarize(String),
#[error("failed to parse notarytool output as JSON: {output}")]
ParseNotarytoolOutput { output: String },
#[error("failed to run command {command}: {error}")]
CommandFailed {
command: String,
error: std::io::Error,
},
#[error("{context} {path}: {error}")]
Fs {
context: &'static str,
path: PathBuf,
error: std::io::Error,
},
#[error("failed to parse X509 certificate: {error}")]
X509Certificate {
error: x509_certificate::X509CertificateError,
},
#[error("failed to create PFX from self signed certificate")]
FailedToCreatePFX,
#[error("failed to create self signed certificate: {error}")]
FailedToCreateSelfSignedCertificate {
error: Box<apple_codesign::AppleCodesignError>,
},
#[error("failed to encode DER: {error}")]
FailedToEncodeDER { error: std::io::Error },
#[error("certificate missing common name")]
CertificateMissingCommonName,
#[error("certificate missing organization unit for common name {common_name}")]
CertificateMissingOrganizationUnit { common_name: String },
}

impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Error::TempDir(e) => write!(f, "failed to create temp directory: {}", e),
Error::ResolveHomeDir => write!(f, "failed to resolve home dir"),
Error::ResolveSigningIdentity => write!(f, "failed to resolve signing identity"),
Error::FailedToDecodeProvisioningProfile => write!(f, "failed to decode provisioning profile"),
Error::FailedToFindProvisioningProfileUuid => write!(f, "could not find provisioning profile UUID"),
Error::Plist { context, path, error } => write!(f, "{} {}: {}", context, path.display(), error),
Error::FailedToUploadApp { error } => write!(f, "failed to upload app to Apple's notarization servers: {}", error),
Error::Notarize(msg) => write!(f, "failed to notarize app: {}", msg),
Error::ParseNotarytoolOutput { output } => write!(f, "failed to parse notarytool output as JSON: {}", output),
Error::CommandFailed { command, error } => write!(f, "failed to run command {}: {}", command, error),
Error::Fs { context, path, error } => write!(f, "{} {}: {}", context, path.display(), error),
Error::X509Certificate { error } => write!(f, "failed to parse X509 certificate: {}", error),
Error::FailedToCreatePFX => write!(f, "failed to create PFX from self signed certificate"),
Error::FailedToCreateSelfSignedCertificate { error } => write!(f, "failed to create self signed certificate: {}", error),
Error::FailedToEncodeDER { error } => write!(f, "failed to encode DER: {}", error),
Error::CertificateMissingCommonName => write!(f, "certificate missing common name"),
Error::CertificateMissingOrganizationUnit { common_name } => write!(f, "certificate missing organization unit for common name {}", common_name),
}
}
}

impl std::error::Error for Error {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
match self {
Error::TempDir(e) => Some(e),
Error::FailedToUploadApp { error } => Some(error),
Error::CommandFailed { error, .. } => Some(error),
Error::Fs { error, .. } => Some(error),
_ => None,
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Preserve error chaining for all wrapped errors.

source() only exposes some variants, so callers lose the underlying error for Plist, X509Certificate, FailedToCreateSelfSignedCertificate, and FailedToEncodeDER. That’s a regression from the derived behavior and weakens diagnostics.

🔧 Suggested fix
 impl std::error::Error for Error {
   fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
     match self {
       Error::TempDir(e) => Some(e),
+      Error::Plist { error, .. } => Some(error),
       Error::FailedToUploadApp { error } => Some(error),
       Error::CommandFailed { error, .. } => Some(error),
       Error::Fs { error, .. } => Some(error),
+      Error::X509Certificate { error } => Some(error),
+      Error::FailedToCreateSelfSignedCertificate { error } => Some(error),
+      Error::FailedToEncodeDER { error } => Some(error),
       _ => None,
     }
   }
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#[derive(Debug)]
pub enum Error {
#[error("failed to create temp directory: {0}")]
TempDir(std::io::Error),
#[error("failed to resolve home dir")]
ResolveHomeDir,
#[error("failed to resolve signing identity")]
ResolveSigningIdentity,
#[error("failed to decode provisioning profile")]
FailedToDecodeProvisioningProfile,
#[error("could not find provisioning profile UUID")]
FailedToFindProvisioningProfileUuid,
#[error("{context} {path}: {error}")]
Plist {
context: &'static str,
path: PathBuf,
error: plist::Error,
},
#[error("failed to upload app to Apple's notarization servers: {error}")]
FailedToUploadApp { error: std::io::Error },
#[error("failed to notarize app: {0}")]
Notarize(String),
#[error("failed to parse notarytool output as JSON: {output}")]
ParseNotarytoolOutput { output: String },
#[error("failed to run command {command}: {error}")]
CommandFailed {
command: String,
error: std::io::Error,
},
#[error("{context} {path}: {error}")]
Fs {
context: &'static str,
path: PathBuf,
error: std::io::Error,
},
#[error("failed to parse X509 certificate: {error}")]
X509Certificate {
error: x509_certificate::X509CertificateError,
},
#[error("failed to create PFX from self signed certificate")]
FailedToCreatePFX,
#[error("failed to create self signed certificate: {error}")]
FailedToCreateSelfSignedCertificate {
error: Box<apple_codesign::AppleCodesignError>,
},
#[error("failed to encode DER: {error}")]
FailedToEncodeDER { error: std::io::Error },
#[error("certificate missing common name")]
CertificateMissingCommonName,
#[error("certificate missing organization unit for common name {common_name}")]
CertificateMissingOrganizationUnit { common_name: String },
}
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Error::TempDir(e) => write!(f, "failed to create temp directory: {}", e),
Error::ResolveHomeDir => write!(f, "failed to resolve home dir"),
Error::ResolveSigningIdentity => write!(f, "failed to resolve signing identity"),
Error::FailedToDecodeProvisioningProfile => write!(f, "failed to decode provisioning profile"),
Error::FailedToFindProvisioningProfileUuid => write!(f, "could not find provisioning profile UUID"),
Error::Plist { context, path, error } => write!(f, "{} {}: {}", context, path.display(), error),
Error::FailedToUploadApp { error } => write!(f, "failed to upload app to Apple's notarization servers: {}", error),
Error::Notarize(msg) => write!(f, "failed to notarize app: {}", msg),
Error::ParseNotarytoolOutput { output } => write!(f, "failed to parse notarytool output as JSON: {}", output),
Error::CommandFailed { command, error } => write!(f, "failed to run command {}: {}", command, error),
Error::Fs { context, path, error } => write!(f, "{} {}: {}", context, path.display(), error),
Error::X509Certificate { error } => write!(f, "failed to parse X509 certificate: {}", error),
Error::FailedToCreatePFX => write!(f, "failed to create PFX from self signed certificate"),
Error::FailedToCreateSelfSignedCertificate { error } => write!(f, "failed to create self signed certificate: {}", error),
Error::FailedToEncodeDER { error } => write!(f, "failed to encode DER: {}", error),
Error::CertificateMissingCommonName => write!(f, "certificate missing common name"),
Error::CertificateMissingOrganizationUnit { common_name } => write!(f, "certificate missing organization unit for common name {}", common_name),
}
}
}
impl std::error::Error for Error {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
match self {
Error::TempDir(e) => Some(e),
Error::FailedToUploadApp { error } => Some(error),
Error::CommandFailed { error, .. } => Some(error),
Error::Fs { error, .. } => Some(error),
_ => None,
}
impl std::error::Error for Error {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
match self {
Error::TempDir(e) => Some(e),
Error::Plist { error, .. } => Some(error),
Error::FailedToUploadApp { error } => Some(error),
Error::CommandFailed { error, .. } => Some(error),
Error::Fs { error, .. } => Some(error),
Error::X509Certificate { error } => Some(error),
Error::FailedToCreateSelfSignedCertificate { error } => Some(error),
Error::FailedToEncodeDER { error } => Some(error),
_ => None,
}
}
}
🤖 Prompt for AI Agents
In `@crates/tauri-macos-sign/src/lib.rs` around lines 20 - 88, The source()
implementation currently returns underlying errors only for some variants,
losing chaining for Plist, X509Certificate, FailedToCreateSelfSignedCertificate,
and FailedToEncodeDER; update the match in impl std::error::Error for Error to
return Some(...) for those variants as well (e.g., for Plist { error } ->
Some(error), for X509Certificate { error } -> Some(error), for
FailedToCreateSelfSignedCertificate { error } -> Some(&**error) or equivalent,
and for FailedToEncodeDER { error } -> Some(error)); keep existing arms for
TempDir, FailedToUploadApp, CommandFailed, Fs and fall through to None for
variants without inner errors.

);
// status is empty when not waiting for the notarization to finish
if submit_output.status.map_or(!wait, |s| s == "Accepted") {
if submit_output.status.map_or(wait, |s| s == "Accepted") {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Non-wait notarization now fails when status is empty.

For wait = false, status is expected to be None (per comment), but map_or(wait, ...) returns false and routes into the error path. This likely breaks notarize_without_stapling.

✅ Suggested fix
-    if submit_output.status.map_or(wait, |s| s == "Accepted") {
+    if !wait || submit_output.status.as_deref() == Some("Accepted") {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if submit_output.status.map_or(wait, |s| s == "Accepted") {
if !wait || submit_output.status.as_deref() == Some("Accepted") {
🤖 Prompt for AI Agents
In `@crates/tauri-macos-sign/src/lib.rs` at line 233, The condition treating
submit_output.status uses map_or(wait, |s| s == "Accepted") which returns false
when status is None and wait is false, causing non-wait notarization to fail;
change the logic so None is treated as success when wait is false by using
map_or(!wait, |s| s == "Accepted") (update the conditional that references
submit_output.status and wait, e.g., inside notarize_without_stapling) so
non-wait flows proceed when status is empty.


### Bug Fixes

- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([#14347](https://www.github.com/tauri-apps/tauri/pull/14347) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Hyphenate “user-facing”.

Minor grammar fix in the changelog entry.

✍️ Suggested edit
- Fixed an issue that caused docs.rs builds to fail. No user facing changes.
+ Fixed an issue that caused docs.rs builds to fail. No user-facing changes.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([#14347](https://www.github.com/tauri-apps/tauri/pull/14347) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([`#14347`](https://www.github.com/tauri-apps/tauri/pull/14347) by [`@FabianLars`](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user-facing changes.
🧰 Tools
🪛 LanguageTool

[style] ~7-~7: Consider using a different verb for a more formal wording.
Context: ...com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to ...

(FIX_RESOLVE)


[grammar] ~7-~7: Use a hyphen to join words.
Context: ...t caused docs.rs builds to fail. No user facing changes. ## [2.5.0] ### Depend...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In `@crates/tauri-plugin/CHANGELOG.md` at line 7, Update the changelog entry
referencing commit 4b6b8690a (PR `#14347`) by hyphenating "user-facing" in the
sentence "No user facing changes." so it reads "No user-facing changes."; locate
the string in the CHANGELOG.md entry and apply the single-word hyphenation
change.


### Bug Fixes

- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([#14347](https://www.github.com/tauri-apps/tauri/pull/14347) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Malformed contributor link URL.

The URL https://www.github.com/tauri-apps/tauri/../../FabianLars uses relative path navigation which will not resolve to the correct GitHub profile. This should be https://github.com/FabianLars instead.

This pattern appears throughout the changelog, suggesting it may be an issue with the changelog generation tooling.

🤖 Prompt for AI Agents
In `@crates/tauri-runtime-wry/CHANGELOG.md` at line 7, The contributor link in the
changelog entry for commit 4b6b8690a / PR `#14347` uses a malformed relative URL
(`https://www.github.com/tauri-apps/tauri/../../FabianLars`) — update the URL to
the canonical profile `https://github.com/FabianLars` for the `@FabianLars`
contributor mention in the changelog line and search other entries for the same
relative-path pattern to replace them with correct
`https://github.com/<username>` links, and if this is generated, adjust the
changelog generation template that constructs contributor links to use the
absolute GitHub profile URL instead of the relative path.

Comment thread crates/tauri/CHANGELOG.md

### Bug Fixes

- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([#14347](https://www.github.com/tauri-apps/tauri/pull/14347) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Minor wording: use “user‑facing”
Hyphenate for consistency in changelog prose.

✏️ Suggested tweak
-... No user facing changes.
+... No user‑facing changes.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([#14347](https://www.github.com/tauri-apps/tauri/pull/14347) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
- [`4b6b8690a`](https://www.github.com/tauri-apps/tauri/commit/4b6b8690ab886ebdf1307951cffbe03e31280baa) ([`#14347`](https://www.github.com/tauri-apps/tauri/pull/14347) by [`@FabianLars`](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused docs.rs builds to fail. No userfacing changes.
🤖 Prompt for AI Agents
In `@crates/tauri/CHANGELOG.md` at line 7, Update the changelog entry string that
currently reads "No user facing changes." to use a hyphenated adjective "No
user‑facing changes." — locate the line containing the commit reference text
(the line starting with "[`4b6b8690a`]") and replace the phrase "user facing"
with "user‑facing" to ensure consistent changelog wording.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant