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

fix: Restructure dependencies and fix for launchbar not visible issues #923

Merged
merged 1 commit into from
Apr 5, 2024

Conversation

kolipakakondal
Copy link
Collaborator

@kolipakakondal kolipakakondal commented Mar 31, 2024

Description

Restructure dependencies and fix for launchbar not visible issues

Fixes # (IEP-XXX)

Type of change

  • Bug fix (non-breaking change which fixes an issue)

How has this been tested?

  • Able to install PR update site on eclipse and espressif-ide v2.12.1
  • Able to install PR update site on espressif-ide v2.12.1 and launchbar is visible

Test Configuration:

  • ESP-IDF Version:
  • OS (Windows,Linux and macOS):

Dependent components impacted by this PR:

  • Update site
  • Epressif-ide installation

Checklist

  • PR Self Reviewed
  • Applied Code formatting
  • Added Documentation
  • Added Unit Test
  • Verified on all platforms - Windows,Linux and macOS

Summary by CodeRabbit

  • New Features
    • Enhanced support for external libraries and dependencies, ensuring better performance and compatibility.
  • Refactor
    • Updated product configuration to support a mix of features for improved flexibility.
    • Revised dependency management for a more streamlined and efficient development environment.
  • Chores
    • Updated category names for bundles to better reflect their purpose and content.
    • Improved categorization by replacing "com.espressif.idf" with "com.espressif.idf.dependencies" for multiple bundles.

Copy link

coderabbitai bot commented Mar 31, 2024

Walkthrough

The update enhances the Espressif IDE by incorporating additional bundles and altering the product configuration to a mixed type. It updates dependencies, particularly from the org.apache.batik and org.eclipse series, indicating a broadening of the tool's capabilities and its integration with new libraries for improved functionality.

Changes

Files Change Summary
bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF Added org.apache.batik.anim to the Require-Bundle section in the MANIFEST.MF file.
releng/com.espressif.idf.update/category.xml Updated category names for multiple bundles from "com.espressif.idf" to "com.espressif.idf.dependencies" in the category.xml file.

Poem

🎉🐇🎉
In the burrows of code, where binaries hop,
A new update springs, a leap, nonstop.
With bundles and features, so bright and new,
A rabbit celebrates, with a joyful view.
🌟 To the devs, a cheer, for the paths they pave,
In the digital fields, where the bits behave.
🎉🐇🎉

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@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: 1

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between e1bf806 and d9cae72.
Files selected for processing (4)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
  • releng/com.espressif.idf.product/idf.product (2 hunks)
  • releng/com.espressif.idf.target/com.espressif.idf.target.target (4 hunks)
  • releng/com.espressif.idf.update/category.xml (3 hunks)
Additional Context Used
Additional comments not posted (5)
bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1)

17-31: Adding multiple org.apache.batik bundles increases the project's dependencies on external libraries, particularly for rendering and graphical functionalities. Ensure that these libraries are necessary for the project's goals and that their versions are compatible with the rest of the project's dependencies. Additionally, consider the impact on the project's size and performance.

releng/com.espressif.idf.product/idf.product (1)

4-4: Changing the product type from "features" to "mixed" and including a new feature (org.eclipse.tm4e.feature) indicates an intention to enrich the Espressif-IDE's feature set. Ensure that this change aligns with the project's goals and that the new feature integrates well with existing functionalities. Additionally, verify that all necessary dependencies for the new feature are correctly specified elsewhere in the project configuration.

releng/com.espressif.idf.update/category.xml (1)

79-156: > 📝 NOTE

This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [31-148]

Updating the category names for various bundles from "com.espressif.idf" to "com.espressif.idf.dependencies" indicates a reorganization of dependency management within the project. Ensure that this change is reflected in all relevant documentation and that it aligns with the project's overall structure and dependency management strategy. Additionally, verify that all references to these categories in the project's build and deployment scripts are updated accordingly.

releng/com.espressif.idf.target/com.espressif.idf.target.target (2)

72-90: Updating versions and adding new org.apache.batik units indicate an effort to leverage newer functionalities or fixes from these libraries. Ensure that these updated versions are compatible with the project's existing dependencies and that they do not introduce any breaking changes. It's also important to verify that all necessary licenses for these updated and new dependencies are compliant with the project's licensing policy.


121-141: The addition of new dependencies related to org.eclipse.lsp4e and org.eclipse.tm4e suggests an enhancement in language server and text mate engine functionalities. Ensure that these additions are necessary for the project's goals and that their versions are compatible with the rest of the project's dependencies. Additionally, consider the impact of these new dependencies on the project's size, performance, and licensing compliance.

@@ -76,6 +76,7 @@
<feature id="org.eclipse.swtchart.feature" installMode="root"/>
<feature id="org.eclipse.nebula.widgets.xviewer.feature" installMode="root"/>
<feature id="org.eclipse.cdt.lsp.feature" installMode="root"/>
<feature id="org.eclipse.tm4e.feature" installMode="root"/>
Copy link

@coderabbitai coderabbitai bot Mar 31, 2024

Choose a reason for hiding this comment

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

The addition of the org.eclipse.tm4e.feature feature should be accompanied by thorough testing to ensure it integrates seamlessly with the existing features and does not introduce any regressions. Consider adding automated tests that cover the new functionalities introduced by this feature.

Would you like assistance in creating automated tests for the new feature?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes

Copy link

Choose a reason for hiding this comment

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

@kolipakakondal, to assist you in creating automated tests for the org.eclipse.tm4e.feature, I'll provide some example test cases that you can adapt or extend based on the specific functionalities introduced by this feature in the Espressif IDE. Since org.eclipse.tm4e.feature is likely related to text mate support, the tests will focus on verifying syntax highlighting, theming, and other editor enhancements.

Example Test Cases

1. Syntax Highlighting Test

This test verifies that syntax highlighting works as expected for a given language supported by the Espressif IDE.

@Test
public void testSyntaxHighlighting() {
    // Open a file known to have specific syntax highlighting rules
    IFile file = openTestFile("path/to/test/file");

    // Verify that syntax highlighting is applied correctly
    // This step might require a way to inspect the editor's syntax highlighting programmatically or through UI automation
    assertTrue("Syntax highlighting is not applied as expected", verifySyntaxHighlighting(file));
}

2. Theming Test

This test checks if changing themes updates the editor's appearance according to the selected theme.

@Test
public void testTheming() {
    // Change the IDE theme to a known theme
    setIDETheme("Dark Theme");

    // Open a file to inspect the editor's appearance
    IFile file = openTestFile("path/to/test/file");

    // Verify that the editor's appearance matches the expected appearance of the "Dark Theme"
    // This might involve checking the background color, text color, etc., through UI automation
    assertTrue("Editor appearance does not match the expected dark theme", verifyEditorAppearance(file, "Dark Theme"));
}

3. Integration Test with Existing Features

This test ensures that the introduction of org.eclipse.tm4e.feature does not interfere with existing features of the Espressif IDE.

@Test
public void testFeatureIntegration() {
    // Perform actions that involve both the new feature and existing features
    // For example, open a file with syntax highlighting and perform a build using the Espressif IDE's build system

    // Verify that both the new and existing features work as expected
    assertTrue("New feature interferes with existing features", verifyFeatureIntegration());
}

Please adapt these examples to fit the specific functionalities introduced by org.eclipse.tm4e.feature in your project. You might need to implement helper methods like openTestFile, verifySyntaxHighlighting, setIDETheme, verifyEditorAppearance, and verifyFeatureIntegration based on your project's architecture and testing framework.

Copy link

@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: 0

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between d9cae72 and 7eca637.
Files selected for processing (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
Additional Context Used

Copy link

@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: 0

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 7eca637 and 989ea6f.
Files selected for processing (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
Additional Context Used

Copy link

@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: 0

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 989ea6f and 35ff733.
Files selected for processing (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
Additional Context Used

Copy link

@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: 0

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 35ff733 and 82e5053.
Files selected for processing (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
Additional Context Used

Copy link

@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: 0

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 82e5053 and da1b7ec.
Files selected for processing (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
Additional Context Used

Copy link

@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: 0

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between da1b7ec and ca97174.
Files selected for processing (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
Additional Context Used

Copy link

@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: 1

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between ca97174 and 930551d.
Files selected for processing (3)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
  • releng/com.espressif.idf.target/com.espressif.idf.target.target (4 hunks)
  • releng/com.espressif.idf.update/category.xml (3 hunks)
Files skipped from review as they are similar to previous changes (2)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
  • releng/com.espressif.idf.update/category.xml
Additional comments not posted (3)
releng/com.espressif.idf.target/com.espressif.idf.target.target (3)

72-77: The versions for org.apache.batik units have been updated to 1.16.0.v20221027-0840. Ensure that these updates are compatible with other components of the project that may rely on org.apache.batik. Compatibility issues could arise from major version changes.

Verification successful

Given the limitations encountered with ast-grep for XML files, let's use rg (ripgrep) to search for references to org.apache.batik units within the project. This will help us assess if there are direct references to the specific version 1.16.0.v20221027-0840 that could indicate compatibility issues.


The search for references to org.apache.batik units with the version 1.16.0.v20221027-0840 within the project only returned entries within the com.espressif.idf.target.target configuration file. This suggests that the updates to the org.apache.batik units are localized to this specific configuration and do not appear elsewhere in the project. While this does not directly indicate compatibility issues, it is recommended to perform further compatibility checks, possibly including runtime testing or reviewing documentation for org.apache.batik and related project components, to ensure that these updates do not introduce issues.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Verify compatibility of org.apache.batik updates with other project components
ast-grep --lang xml --pattern $'unit id="org.apache.batik.$$$" version="1.16.0.v20221027-0840"'

Length of output: 203



Script:

#!/bin/bash
# Search for references to org.apache.batik units with the version 1.16.0.v20221027-0840 in the project
rg "org.apache.batik.*1.16.0.v20221027-0840"

Length of output: 1126


108-115: The addition of org.eclipse.lsp4e units with specific versions indicates an enhancement in language support features. It's crucial to verify that these versions are stable and have been tested for compatibility with the project's existing setup.


117-127: The inclusion of org.eclipse.tm4e units suggests enhancements in text management capabilities. Confirm that the added features align with project requirements and do not introduce unnecessary complexity or performance overhead.

Comment on lines +108 to +141
<repository location="https://download.eclipse.org/lsp4e/releases/0.25.0/"/>
<unit id="com.google.gson" version="2.10.1"/>
<unit id="org.eclipse.lsp4e" version="0.18.6.202403050753"/>
<unit id="org.eclipse.lsp4e.debug" version="0.15.7.202402141138"/>
<unit id="org.eclipse.lsp4j" version="0.22.0.v20240213-2011"/>
<unit id="org.eclipse.lsp4j.debug" version="0.22.0.v20240213-2011"/>
<unit id="org.eclipse.lsp4j.jsonrpc" version="0.22.0.v20240213-2011"/>
<unit id="org.eclipse.lsp4j.jsonrpc.debug" version="0.22.0.v20240213-2011"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<repository location="https://download.eclipse.org/tm4e/releases/0.9.0/"/>
<unit id="com.google.gson" version="2.10.1"/>
<unit id="org.apache.batik.constants" version="1.16.0.v20221027-0840"/>
<unit id="org.apache.batik.css" version="1.16.0.v20221027-0840"/>
<unit id="org.apache.batik.util" version="1.16.0.v20221027-0840"/>
<unit id="org.eclipse.tm4e.feature.feature.group" version="0.9.0.202401090933"/>
<unit id="org.eclipse.tm4e.language_pack.feature.feature.group" version="0.9.0.202401090933"/>
<unit id="org.jcodings" version="1.0.58"/>
<unit id="org.joni" version="2.2.1"/>
<unit id="org.snakeyaml.engine" version="2.7.0"/>
</location>
Copy link

Choose a reason for hiding this comment

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

The addition of new dependencies related to org.eclipse.lsp4e and org.eclipse.tm4e could potentially introduce new features to the project. It's important to ensure that these features are documented properly to aid in future maintenance and development efforts.

Would you like assistance in updating the documentation to reflect these new dependencies and their functionalities?

Copy link

@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: 0

Review Status

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 930551d and b754a43.
Files selected for processing (2)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF (1 hunks)
  • releng/com.espressif.idf.update/category.xml (3 hunks)
Files skipped from review as they are similar to previous changes (2)
  • bundles/com.espressif.idf.lsp/META-INF/MANIFEST.MF
  • releng/com.espressif.idf.update/category.xml

@kolipakakondal kolipakakondal changed the title fix: Re-structure dependencies and fix for launchbar not visible issues fix: Restructure dependencies and fix for launchbar not visible issues Apr 2, 2024
@AndriiFilippov
Copy link
Collaborator

@kolipakakondal @sigmaaa hi !

Tested under:

OS - Windows 10
ESP-IDF: v5.2

Do not see toolbar.
after installation of org.apache.batik.* plugins - do see toolbar.
image

image

@kolipakakondal
Copy link
Collaborator Author

Hi @AndriiFilippov It's fixed, could you check now.

@AndriiFilippov
Copy link
Collaborator

@kolipakakondal hi !

Do see toolbar
image

still visible after restart or exit IDE.

LGTM 👍

@kolipakakondal kolipakakondal merged commit a295dd4 into master Apr 5, 2024
4 of 10 checks passed
@kolipakakondal kolipakakondal deleted the launchbar_issues branch April 5, 2024 10:45
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.

2 participants