-
-
Notifications
You must be signed in to change notification settings - Fork 448
Unify all default built-in plugins' version #3558
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
Conversation
🥷 Code experts: no user but you matched threshold 10 Jack251970 has most 👩💻 activity in the files. See details
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame: To learn more about /:\ gitStream - Visit our Docs |
Be a legend 🏆 by adding a before and after screenshot of the changes you made, especially if they are around UI/UX. |
@check-spelling-bot Report🔴 Please reviewSee the 📂 files view, the 📜action log, or 📝 job summary for details.
See ❌ Event descriptions for more information. If the flagged items are 🤯 false positivesIf items relate to a ...
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR centralizes versioning for all default built-in plugins by setting their local default to 1.0.0 and injecting the Flow release version during CI builds via AppVeyor.
- Added a PowerShell loop in
appveyor.yml
to replace each plugin’sVersion
field with the$env:flowVersion
value. - Updated every
plugin.json
to use"Version": "1.0.0"
as the base local version.
Reviewed Changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
appveyor.yml | Added script to batch-replace plugin.json Version fields with CI’s flowVersion |
Plugins/Flow.Launcher.Plugin.WindowsSettings/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.WebSearch/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.Url/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.Sys/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.Shell/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.Program/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.PluginsManager/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.PluginIndicator/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.Explorer/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.Calculator/plugin.json | Bumped version to 1.0.0 |
Plugins/Flow.Launcher.Plugin.BrowserBookmark/plugin.json | Bumped version to 1.0.0 |
Comments suppressed due to low confidence (2)
appveyor.yml:35
- Specify an explicit encoding (e.g.,
-Encoding UTF8
) when using Set-Content to ensure plugin.json files retain consistent encoding and avoid introducing BOM or platform-specific defaults.
... | Set-Content $file
appveyor.yml:32
- Add an automated test or CI check to verify that all plugin.json files’ Version fields match the expected flowVersion after the build, preventing accidental mismatches in future changes.
$jsonFiles = Get-ChildItem -Path ".\Plugins\*\plugin.json"
$jsonFiles = Get-ChildItem -Path ".\Plugins\*\plugin.json" | ||
foreach ($file in $jsonFiles) { | ||
$plugin_old_ver = Get-Content $file.FullName -Raw | ConvertFrom-Json | ||
(Get-Content $file) -replace '"Version"\s*:\s*".*?"', "`"Version`": `"$env:flowVersion`"" | Set-Content $file |
Copilot
AI
May 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider parsing each plugin.json with ConvertFrom-Json, updating the Version property directly, and then emitting the file via ConvertTo-Json. This approach is more robust than regex and guarantees valid JSON structure.
(Get-Content $file) -replace '"Version"\s*:\s*".*?"', "`"Version`": `"$env:flowVersion`"" | Set-Content $file | |
$plugin_old_ver.Version = $env:flowVersion | |
$plugin_old_ver | ConvertTo-Json -Depth 10 | Set-Content $file.FullName |
Copilot uses AI. Check for mistakes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI, this approach is fine but I found it it does change formatting of existing json files, which is also fine. However it didn't handle the Shell plugin with action keyword '>'. So I purposedly avoided using it and just directly and specifically modify the value of 'Version' key on all json files.
📝 WalkthroughWalkthroughThis update standardizes the version numbers of multiple plugin manifest files by resetting them to "1.0.0". Additionally, the AppVeyor CI configuration is enhanced to automatically update the "Version" field in each plugin's Changes
Sequence Diagram(s)sequenceDiagram
participant AppVeyor CI
participant PowerShell Script
participant plugin.json Files
AppVeyor CI->>PowerShell Script: Run before_build step
PowerShell Script->>plugin.json Files: Enumerate all plugin.json files
loop For each plugin.json
PowerShell Script->>plugin.json Files: Read current Version
PowerShell Script->>plugin.json Files: Replace Version with $env:flowVersion
PowerShell Script->>plugin.json Files: Write updated Version
PowerShell Script->>AppVeyor CI: Output version change message
end
Poem
Note ⚡️ AI Code Reviews for VS Code, Cursor, WindsurfCodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback. Note ⚡️ Faster reviews with cachingCodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. 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 using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this 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
♻️ Duplicate comments (2)
Plugins/Flow.Launcher.Plugin.Calculator/plugin.json (1)
7-7
: Same version strategy applied This sets the default to"1.0.0"
consistent with the unified versioning across all plugins. See the Shell plugin review for details on verifying the CI automation.Plugins/Flow.Launcher.Plugin.BrowserBookmark/plugin.json (1)
7-7
: Same version strategy applied This sets the default to"1.0.0"
consistent with the unified versioning across all plugins. See the Shell plugin review for details on verifying the CI automation.
🧹 Nitpick comments (1)
appveyor.yml (1)
29-38
: Automate plugin.json version updates in CI.
The PowerShell script correctly enumerates allplugin.json
files and replaces their"Version"
fields with$env:flowVersion
. To enhance robustness and future-proofing, consider:
- Explicitly specifying
-Encoding UTF8
inSet-Content
to preserve JSON encoding.- Using
Get-ChildItem -Recurse
to catch nested plugin directories.- Leveraging JSON cmdlets (
ConvertFrom-Json
/ConvertTo-Json
) for safe read-modify-write instead of regex.Example diff:
- (Get-Content $file) -replace '"Version"\s*:\s*".*?"', "`"Version`": `"$env:flowVersion`"" | Set-Content $file + (Get-Content $file) -replace '"Version"\s*:\s*".*?"', "`"Version`": `"$env:flowVersion`"" | Set-Content $file -Encoding UTF8
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (13)
Plugins/Flow.Launcher.Plugin.BrowserBookmark/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.Calculator/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.Explorer/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.PluginIndicator/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.PluginsManager/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.Program/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.Shell/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.Sys/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.Url/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/plugin.json
(1 hunks)Plugins/Flow.Launcher.Plugin.WindowsSettings/plugin.json
(1 hunks)appveyor.yml
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (7)
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
- GitHub Check: build
🔇 Additional comments (11)
Plugins/Flow.Launcher.Plugin.PluginsManager/plugin.json (1)
9-9
: Aligns with local default versioning.
Setting the default plugin version to"1.0.0"
for local builds simplifies maintenance. The AppVeyor CI script will override this with the actual Flow Launcher version at build time.Plugins/Flow.Launcher.Plugin.WindowsSettings/plugin.json (1)
7-7
: Aligns with local default versioning.
Resetting the plugin version to"1.0.0"
ensures consistency across default plugins for local builds. CI will sync it with Flow Launcher's version at build time.Plugins/Flow.Launcher.Plugin.Program/plugin.json (1)
7-7
: Aligns with local default versioning.
Changing the version to"1.0.0"
matches the unified default for local development. The CI automation will update it to the release version automatically.Plugins/Flow.Launcher.Plugin.Url/plugin.json (1)
7-7
: Aligns with local default versioning.
Standardizing the version to"1.0.0"
simplifies plugin maintenance locally; the CI process will override it correctly during builds.Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json (2)
7-7
: Consistent default version update
The Version field has been correctly reset to "1.0.0" to align with the unified plugin versioning strategy for local builds.
7-7
:✅ Verification successful
Verify complete coverage of plugin manifest version updates
Ensure that everyplugin.json
underPlugins/Flow.Launcher.Plugin.*
has its Version field reset to "1.0.0" to prevent inconsistencies across default plugins. You can run:No output indicates full coverage.
🏁 Script executed:
#!/usr/bin/env bash # Verify that all plugin.json files have Version "1.0.0" grep -R '"Version":' Plugins/Flow.Launcher.Plugin.*/*.json | grep -v '"Version": "1.0.0"'Length of output: 792
Plugin manifest version coverage confirmed
Allplugin.json
files underPlugins/Flow.Launcher.Plugin.*
have their"Version"
field set to"1.0.0"
. No inconsistencies detected.Plugins/Flow.Launcher.Plugin.Sys/plugin.json (1)
7-7
: Consistent default version update
The Version field has been reset to "1.0.0" in line with the unified versioning approach.Plugins/Flow.Launcher.Plugin.Explorer/plugin.json (1)
14-14
: Consistent default version update
The Version field has been updated to "1.0.0", matching the standard default for all built-in plugins.Plugins/Flow.Launcher.Plugin.WebSearch/plugin.json (1)
30-30
: Consistent default version update
The Version field is now "1.0.0", ensuring consistency with the unified plugin versioning scheme.Plugins/Flow.Launcher.Plugin.PluginIndicator/plugin.json (1)
7-7
: Consistent default version update
The Version field has been reset to "1.0.0" to align with the main Flow Launcher versioning strategy.Plugins/Flow.Launcher.Plugin.Shell/plugin.json (1)
7-7
: Default local build version set to 1.0.0 The plugin manifest now defaults to"1.0.0"
, which aligns with the main Flow Launcher version for local development and will be overridden by theflowVersion
environment variable during CI builds. Please verify that thebefore_build
step inappveyor.yml
enumerates this file so its"Version"
field is updated to the CI-providedflowVersion
.
Context:
Currently all default built-in plugins have their own versioning. This creates manual work to bump them individually and accordingly.
We need to change this to have them all set to uniform versioning following flow's. Since they always get published along with flow there is little need for them to be different. Instead we bump them all at the same time to the same version as flow regardless of there are changes to them. This also will indicate which release they are from.
Changes:
Tested: