espressif / idf-eclipse-plugin

Espressif-IDE (based on Eclipse CDT) for ESP-IDF CMake based projects 4.x and above
Eclipse Public License 2.0
295 stars 115 forks source link

IEP-1136: release/v5.2 installation failed fix #879

Closed alirana01 closed 5 months ago

alirana01 commented 6 months ago

Description

Updated code to clone directly instead of downloading archive for release branches. Added timeout for repo clone as release branches were getting timed out. Improved the code to properly name the cloned repos based on versions.

Fixes # (IEP-1136)

Type of change

Please delete options that are not relevant.

How has this been tested?

Follow the steps in Jira ticket to reproduce and test.

Test Configuration:

Checklist

Summary by CodeRabbit

coderabbitai[bot] commented 6 months ago

[!WARNING]

Rate Limit Exceeded

@alirana01 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 26 minutes and 50 seconds before requesting another review.

How to resolve this issue? After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.
How do rate limits work? CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://coderabbit.ai/docs/faq) for further information.
Commits Files that changed from the base of the PR and between 760337b63211e558b291550678ed552466a54077 and 36cee51c30368f61fecf2fc02643db754377172f.

Walkthrough

The recent updates to the Espressif IDF Eclipse plugin streamline version handling and improve the user experience during installation. The version reading logic is now more efficient, treating "master" and "release/" prefixes uniformly. Additionally, a timeout has been introduced to the Git cloning process to avoid indefinite hangs, and the installation wizard has seen adjustments to better manage version-specific paths and environment variables.

Changes

File Path Change Summary
.../idf.core/src/.../IDFVersionsReader.java Consolidated conditional checks for version prefixes in getVersionsMap method.
.../idf.ui/src/.../GitRepositoryBuilder.java Set a cloning timeout of 300 seconds.
.../idf.ui/src/.../IDFDownloadWizard.java Updated version handling logic, destination path construction, and IDF_PATH configuration.

Poem

🐇✨
In the land of code, where the bits align,
A rabbit tweaked the flow of time.
No more waits, paths now clear,
Celebrate the changes, for progress is here!
🎉🌟

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 - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

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 .` - `Generate unit-tests for this file.` - 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 tests 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 from git and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit tests.` - `@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. - The JSON schema for the configuration file is available [here](https://coderabbit.ai/integrations/coderabbit-overrides.v2.json). - 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` ### CodeRabbit Discord Community Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback.
AndriiFilippov commented 5 months ago

@alirana01 hi !

Tested under: OS - Windows 10 ESP-IDF: release/v5.2

Able to download release/v5.2. But during tools installation get error:

Logs:

java.lang.NullPointerException: Cannot invoke "org.eclipse.cdt.core.build.IToolChain.getTypeId()" because "toolchain" is null
    at org.eclipse.cdt.cmake.core.internal.CMakeToolChainManager.makeToolChainId(CMakeToolChainManager.java:60)
    at org.eclipse.cdt.cmake.core.internal.CMakeToolChainManager.addToolChainFile(CMakeToolChainManager.java:122)
    at com.espressif.idf.core.toolchain.ESPToolChainManager.lambda$8(ESPToolChainManager.java:374)
    at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
    at com.espressif.idf.core.toolchain.ESPToolChainManager.initCMakeToolChain(ESPToolChainManager.java:364)
    at com.espressif.idf.core.toolchain.ESPCMakeToolChainProvider.init(ESPCMakeToolChainProvider.java:34)
    at org.eclipse.cdt.cmake.core.internal.CMakeToolChainManager.init(CMakeToolChainManager.java:103)
    at org.eclipse.cdt.cmake.core.internal.CMakeToolChainManager.addToolChainFile(CMakeToolChainManager.java:119)
    at com.espressif.idf.core.toolchain.ESPToolChainManager.lambda$8(ESPToolChainManager.java:374)
    at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
    at com.espressif.idf.core.toolchain.ESPToolChainManager.initCMakeToolChain(ESPToolChainManager.java:364)
    at com.espressif.idf.core.toolchain.ESPToolChainManager.configureToolChain(ESPToolChainManager.java:478)
    at com.espressif.idf.ui.update.InstallToolsHandler$1.run(InstallToolsHandler.java:94)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

image

AndriiFilippov commented 5 months ago

Hi @alirana01

Tested under: OS - Windows 10

Able to install ESP-IDF release/v5.2 and install tools. build - flash - monitor successfully 👍 LGTM 👍

The only thing I noticed is "List Installed Tools" does not work for v5.2 Get this message:

image

Do you want me to create separate ticket for this issue ?