Skip to content

Conversation

@radurentea
Copy link
Collaborator

Description

This pull request introduces a pre-release notification system to promote the new ESP-IDF Extension setup experience with the ESP-IDF Installer Manager (EIM). The notification includes comprehensive telemetry tracking, campaign-based targeting, and full internationalization support.

Pre-release notification system implementation:

  • src/preReleaseNotification.ts: Added a new notification system that displays a targeted campaign message to promote the pre-release version featuring the new EIM setup experience. Includes campaign-based tracking to ensure the notification is shown only once per campaign, telemetry integration for user interaction analytics, and proper handling of user responses (try pre-release, learn more, dismiss).
  • src/extension.ts: Integrated the pre-release notification into the extension activation flow, positioned after the changelog viewer to ensure proper initialization sequence.
  • src/config.ts: Added configuration constants for the pre-release notification system, including the campaign key for EIM setup 2025 and storage key for tracking shown campaigns.

Telemetry and analytics integration:

  • src/preReleaseNotification.ts: Implemented comprehensive telemetry tracking for all user interactions including notification display, button clicks (try pre-release, learn more, dismiss), and campaign identification. Uses the existing telemetry infrastructure with event name preReleaseNotification and properties for campaign tracking, action identification, and extension version.

Localization and internationalization support:

  • src/preReleaseNotification.ts: Added full localization support using VS Code's l10n.t() system for all user-facing strings including the main notification message, button labels, and instruction text.
  • l10n/bundle.l10n.es.json, l10n/bundle.l10n.pt.json, l10n/bundle.l10n.ru.json, l10n/bundle.l10n.zh-CN.json: Added comprehensive translations for the pre-release notification in Spanish, Portuguese, Russian, and Chinese, including the main promotional message about EIM, button labels ("Try New Pre-Release", "Learn More", "Not Now"), installation instructions, and confirmation dialogs.

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)

Steps to test this pull request

When extension activates for the first time, the notification will pop-up. It will only be shown once to users.

Screenshot 2025-08-07 180429

How has this been tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

Test Configuration:

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

Checklist

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

@radurentea radurentea force-pushed the enhance/create-notification-pre-release branch from e921dc0 to 9c4da40 Compare August 8, 2025 09:00
@github-actions
Copy link

github-actions bot commented Aug 8, 2025

Download the artifacts for this pull request:
You can test these changes by installing this VSIX by click menu View -> Command Palette..., type Install from VSIX and then select downloaded esp-idf-extension.vsix file to install the extension.

@radurentea radurentea self-assigned this Aug 8, 2025
@Fabricio-ESP
Copy link
Collaborator

Thanks for the implementation.
One think I noticed is if the user enters the "Learn More" option the notification is gone and the user cannot get back to it. Can we isolate that button so it does not erase the notification? I believe the behavior of clearing the notification on the "try" and "not now" button is fine, just the learn more would be nice to keep the notification until the user selects one of the other 2 buttons.

@radurentea
Copy link
Collaborator Author

Thanks for the implementation. One think I noticed is if the user enters the "Learn More" option the notification is gone and the user cannot get back to it. Can we isolate that button so it does not erase the notification? I believe the behavior of clearing the notification on the "try" and "not now" button is fine, just the learn more would be nice to keep the notification until the user selects one of the other 2 buttons.

I couldn't find a way to do this within VS Code API, however, we could add a timer, so after the "learn more" button is pressed we can wait for a time and re-redisplay the notification. We can agree on the amount of time if you think this would be a better experience than the current one (closing the notification after any button press).

@radurentea radurentea force-pushed the enhance/create-notification-pre-release branch from ff3bd7a to 4f76674 Compare August 18, 2025 16:18
@Fabricio-ESP
Copy link
Collaborator

Looks good! Thanks.

Copy link
Collaborator

@brianignacio5 brianignacio5 left a comment

Choose a reason for hiding this comment

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

LGTM

@brianignacio5 brianignacio5 added this to the v1.11.0 milestone Sep 3, 2025
Copy link
Collaborator

@Fabricio-ESP Fabricio-ESP left a comment

Choose a reason for hiding this comment

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

Looks good

@radurentea radurentea merged commit 92fec02 into master Sep 5, 2025
6 of 7 checks passed
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.

4 participants