Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show fatal error if no installable package found #622

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

lukhnos
Copy link
Contributor

@lukhnos lukhnos commented Mar 2, 2025

User description

This is for #621, just to make the installer more robust. This shouldn't happen, but it's good to have a diagnostic message if it does.

How Tested

Manually hit the code path to make sure that the error dialog box indeed appears in the calamitous scenario.


PR Type

Bug fix, Enhancement


Description

  • Added error handling for missing installable packages.

  • Introduced localized error messages for fatal errors.

  • Improved runtime safety with additional guard statements.

  • Enhanced user feedback during installation failures.


Changes walkthrough 📝

Relevant files
Bug fix
AppDelegate.swift
Add error handling and runtime safety improvements             

Source/Installer/AppDelegate.swift

  • Added error handling for missing installable packages.
  • Displayed localized fatal error message and abort option.
  • Improved runtime safety with guard statements.
  • +4/-0     
    Enhancement
    Localizable.strings
    Add localized error message for missing packages                 

    Source/Installer/en.lproj/Localizable.strings

  • Added localized string for "No installable packages found."
  • Enhanced user feedback with clear error messages.
  • +1/-0     
    Localizable.strings
    Add localized error message in Traditional Chinese             

    Source/Installer/zh-Hant.lproj/Localizable.strings

  • Added Traditional Chinese translation for "No installable packages
    found."
  • Improved user feedback with localized error messages.
  • +1/-0     

    Need help?
  • Type /help how to ... in the comments thread for any questions about PR-Agent usage.
  • Check out the documentation for more information.
  • This is for #621, just to make the installer more robust. This
    *shouldn't* happen, but it's good to have a diagnostic message if it
    does.
    Copy link

    @gemini-code-assist gemini-code-assist bot left a comment

    Choose a reason for hiding this comment

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

    Hello @lukhnos, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

    Summary of Changes

    This pull request addresses issue #621 by adding a fatal error alert if no installable package is found during the installation process. This enhancement aims to make the installer more robust by providing a diagnostic message in such a scenario. The changes include modifications to the AppDelegate.swift file to display an alert panel and terminate the application if the target bundle cannot be located. Additionally, new localizable strings have been added to both the English and Traditional Chinese localization files.

    Highlights

    • Error Handling: Implements a fatal error alert when no installable package is found, improving installer robustness.
    • Localization: Adds new localizable strings for the fatal error message in English and Traditional Chinese.
    • Application Termination: The application now terminates gracefully after displaying the fatal error alert.

    Changelog

    • Source/Installer/AppDelegate.swift
      • Added a check for a valid target bundle after unzipping the archive or locating the resource.
      • If no target bundle is found, an alert panel is displayed with a fatal error message.
      • The application terminates after displaying the alert panel using endAppWithDelay().
      • Added a return statement after calling endAppWithDelay() when a copy error occurs.
    • Source/Installer/en.lproj/Localizable.strings
      • Added a new localizable string for the "No installable packagess found." error message.
    • Source/Installer/zh-Hant.lproj/Localizable.strings
      • Added a new localizable string for the "No installable packagess found." error message in Traditional Chinese.
    Using Gemini Code Assist

    The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

    Invoking Gemini

    You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

    Feature Command Description
    Code Review /gemini review Performs a code review for the current pull request in its current state.
    Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
    Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
    Help /gemini help Displays a list of available commands.

    Customization

    To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

    Limitations & Feedback

    Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

    You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


    Did you know?

    The term "kludge" (often used to describe inelegant or inefficient solutions) originated in the early days of computing at MIT, possibly derived from the German word 'klug' meaning 'clever'.

    Footnotes

    1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

    Copy link

    @gemini-code-assist gemini-code-assist bot left a comment

    Choose a reason for hiding this comment

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

    Code Review

    The pull request adds a fatal error alert when no installable package is found, enhancing the installer's robustness. The changes include adding error handling and localization for the new error message. The approach is sound and the changes are well-structured.

    Merge Readiness

    The changes are well-implemented and address the issue of handling cases where no installable package is found. The addition of a localized error message and a clear error dialog improves the user experience. The pull request is ready to be merged. I am unable to directly approve the pull request, and recommend that others review and approve this code before merging.

    Copy link

    github-actions bot commented Mar 2, 2025

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    🎫 Ticket compliance analysis 🔶

    621 - Partially compliant

    Compliant requirements:

    • Improve error handling with detailed logging for failures.
    • Replace assertions with guard statements for better runtime safety.

    Non-compliant requirements:

    • Create a temporary directory explicitly instead of relying on unzip -d.
    • Ensure compatibility with macOS 15.4 Beta installer requirements.

    Requires further human verification:

    • Ensure compatibility with macOS 15.4 Beta installer requirements.
    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Possible Typo

    The localized string "No installable packagess found." contains a typo ("packagess" instead of "packages"). This should be corrected to ensure proper user-facing messaging.

    let message = NSLocalizedString("No installable packagess found.", comment: "")
    runAlertPanel(title: NSLocalizedString("Fatal Error", comment: ""), message: message, buttonTitle: NSLocalizedString("Abort", comment: ""))
    endAppWithDelay()
    Typo in Localized String

    The string "No installable packagess found." contains a typo ("packagess" instead of "packages"). This typo is present in the English localization file and should be fixed.

    "No installable packagess found." = "No installable packagess found.";
    Typo in Localized String

    The string "No installable packagess found." contains a typo ("packagess" instead of "packages"). This typo is present in the Traditional Chinese localization file and should be fixed.

    "No installable packagess found." = "找不到可安裝的輸入法套件。";

    Copy link

    github-actions bot commented Mar 2, 2025

    PR Code Suggestions ✨

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

    Successfully merging this pull request may close these issues.

    1 participant