BlueOS
BlueOS copied to clipboard
frontend: version-chooser: update bootstrap when changing BlueOS to a stable
fix: #2896
Summary by Sourcery
Automatically update the bootstrap version to match semver-stable BlueOS tags without forcing a page reload and make bootstrap reload behavior configurable.
Bug Fixes:
- Ensure the bootstrap version is updated when switching to a stable BlueOS tag
- Prevent unconditional page reload after setting the bootstrap version
Enhancements:
- Add an optional reload parameter to setBootstrapVersion to control window reload
- Introduce isStable helper to detect semver-compliant stable tags
Reviewer's guide (collapsed on small PRs)
Reviewer's Guide
Parameterize bootstrap update to avoid redundant reloads, auto-update bootstrap on stable version selection, and add stable-version detection.
Sequence diagram for stable version selection and bootstrap update
sequenceDiagram
participant User
participant VersionChooser
participant Backend
participant Browser
User->>VersionChooser: Selects a version (setVersion)
VersionChooser->>VersionChooser: Checks if tag is stable (isStable)
alt Tag is stable
VersionChooser->>Backend: POST /bootstrap/current (setBootstrapVersion, reload=false)
end
VersionChooser->>Backend: POST /version/current
Backend-->>VersionChooser: Responds
VersionChooser->>VersionChooser: Show success message
VersionChooser->>Browser: Reload page (if reload=true in setBootstrapVersion)
Class diagram for updated VersionChooser methods
classDiagram
class VersionChooser {
+async setBootstrapVersion(version: string, reload = true)
+async setVersion(args: string | string[])
+isStable(tag: string): boolean
+isBeingDeleted(image: Version)
-updating_bootstrap: boolean
-deleting: string
}
class VCU {
+isSemVer(tag: string): boolean
}
VersionChooser --> VCU: uses
File-Level Changes
| Change | Details | Files |
|---|---|---|
| Make bootstrap update reload behavior configurable |
|
core/frontend/src/components/version-chooser/VersionChooser.vue |
| Auto-update bootstrap when switching to stable versions |
|
core/frontend/src/components/version-chooser/VersionChooser.vue |
| Add isStable helper for semantic-version checks |
|
core/frontend/src/components/version-chooser/VersionChooser.vue |
Assessment against linked issues
| Issue | Objective | Addressed | Explanation |
|---|---|---|---|
| https://github.com/bluerobotics/BlueOS/issues/2896 | Automatically update bootstrap when switching to a stable BlueOS version. | ✅ |
Tips and commands
Interacting with Sourcery
-
Trigger a new review: Comment
@sourcery-ai reviewon the pull request. - Continue discussions: Reply directly to Sourcery's review comments.
-
Generate a GitHub issue from a review comment: Ask Sourcery to create an
issue from a review comment by replying to it. You can also reply to a
review comment with
@sourcery-ai issueto create an issue from it. -
Generate a pull request title: Write
@sourcery-aianywhere in the pull request title to generate a title at any time. You can also comment@sourcery-ai titleon the pull request to (re-)generate the title at any time. -
Generate a pull request summary: Write
@sourcery-ai summaryanywhere in the pull request body to generate a PR summary at any time exactly where you want it. You can also comment@sourcery-ai summaryon the pull request to (re-)generate the summary at any time. -
Generate reviewer's guide: Comment
@sourcery-ai guideon the pull request to (re-)generate the reviewer's guide at any time. -
Resolve all Sourcery comments: Comment
@sourcery-ai resolveon the pull request to resolve all Sourcery comments. Useful if you've already addressed all the comments and don't want to see them anymore. -
Dismiss all Sourcery reviews: Comment
@sourcery-ai dismisson the pull request to dismiss all existing Sourcery reviews. Especially useful if you want to start fresh with a new review - don't forget to comment@sourcery-ai reviewto trigger a new review!
Customizing Your Experience
Access your dashboard to:
- Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others.
- Change the review language.
- Add, remove or edit custom review instructions.
- Adjust other review settings.
Getting Help
- Contact our support team for questions or feedback.
- Visit our documentation for detailed guides and information.
- Keep in touch with the Sourcery team by following us on X/Twitter, LinkedIn or GitHub.