spinframework / spinframework/spin

Simplify the upgrade experience of Spin, templates and plugins

Open
#1,149 3 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
6.5k
Forks
310
Avg merge
1d 20h
Merged PRs (30d)
24

Description

With the recent upgrades to Spin, js2wasm, and templates, I feel the upgrade experience for all the different components have become complex to manage.

As an example I wanted to test new JS SDK features in 0.8.0, and I had to run three upgrade commands to get the tools:

  1. Upgrade Spin using the install script. It's the same as a fresh install.
  2. Upgrade templates. Running one command to upgrade templates from the JS SDK repo.
  3. Upgrade the required plugin. In this case it was 'js2wasm'.

With more plugins coming (#1118 and #1129 as examples) and templates moving to more disperse places #1046, this will not be less complex going forward.

I don't have a good proposal for how to fix this, but I'd like to propose a few ideas, that Spin could benefit from to make this better:

  1. All things versioned (Enables the user to see what's on my machine. Enables an tutorial / demo author to note and what's required to complete this - e.g., Spin vXYZ, Template XYZ vXYZ and plugin XYZ in vXYZ). #1126 Is referring to this for templates.
  2. Introduce a single command to get latest. E.g., Latest Spin, installed templates and installed plugins. For anyone trying out, or returning after a while, this would make it easier if wanting to test new features.
  3. Single command to get versions of what's installed. Today I have to run three commands to see versions of what's installed (spin -V spin plugins list and spin templates list). All of these commands are inconsistent in how they tell you about versions. First one show the installed version, second shows no version and third shows all versions available (not only installed).

There might be more scenarios or considerations to simplify this end-to-end. Hope to get good comments and ideas.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing install, template, and plugin upgrade flows, along with the version commands spin -V, spin plugins list, and spin templates list. Define a cohesive upgrade and version-reporting experience for Spin, installed templates, and plugins, then document the scope and acceptance criteria before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, rust, wasm
Domain
cli, developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.