FlowFuse / FlowFuse/flowfuse

Upgrade vue-shepherd 3.0.0 → 6.0.0

Open
#7,986 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
400
Forks
89
Avg merge
1d 21h
Merged PRs (30d)
146

Description

# Upgrade vue-shepherd 3.0.0 → 6.0.0 (major)

Dependabot PR #7492. Runtime dependency (`dependencies`, `^3.0.0`) driving product tours; wraps `shepherd.js`. Used in `frontend/src/tours/Tours.js` (`useShepherd`, shepherd CSS), `frontend/src/tours/tour-welcome.js`, `frontend/src/main.js` (plugin registration), `frontend/src/pages/team/Devices/dialogs/DeviceCredentialsDialog.vue`. Pulled out of the weekly Dependabot slot per the major-version process — needs an owner and verification, not a batch merge.

## Compatibility pre-check

- ✅ Vue: peer `vue: >=3.0.0`; installed 3.5.38 (`^3.4.5`).
- ✅ Node: engines `>= 20`; satisfied by our `engines: >=20.10.0` and Node 24 dev default.
- ⚠️ Wrapped `shepherd.js` jumps ~4 majors: locked 11.2.0 → v6 requires `shepherd.js ^15.0.0` (v5 pulled `^14.4.0`). Most consumer-facing breaking changes originate here.
- ⚠️ License: shepherd.js switched MIT → AGPL-3.0; vue-shepherd relicensed AGPL in 6.0.0. Needs licensing sign-off.

## Breaking changes to review

- 6.0.0: "Update license to AGPL" (#638).
- 5.0.0: marked breaking — "Shepherd has switched from an MIT to AGPL-3.0 license".
- 4.1.0: native TypeScript declarations added (enhancement, not breaking).
- shepherd.js 12.x–15.x API/option changes across the jump: to confirm from changelog.

## To do before merge

- [ ] Manually run through the product tour(s) that use shepherd.
- [ ] Reconcile changed API / options.
- [ ] Read the 4.x–6.x changelogs (incl. shepherd.js).

## Refs

- Branch: `dependabot/npm_and_yarn/vue-shepherd-6.0.0`
- PR: #7492
- Upstream: https://github.com/shipshapecode/vue-shepherd/releases

Contributor guide

Open the contributing guide

Research direction

Start with the 4.x–6.x vue-shepherd and shepherd.js changelogs, then inspect frontend/src/tours/Tours.js, frontend/src/tours/tour-welcome.js, frontend/src/main.js, and frontend/src/pages/team/Devices/dialogs/DeviceCredentialsDialog.vue. Reconcile any API or option changes, obtain licensing sign-off, and manually run the product tours before verifying the dependency upgrade.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.