wasmCloud / wasmCloud

wasmCloud is an open source Cloud Native Computing Foundation (CNCF) project that enables teams to build, manage, and scale polyglot apps across any cloud, K8s, or edge.
https://wasmcloud.com
Apache License 2.0
1.55k stars 155 forks source link

[FEATURE] Support downloading patch versions of wasmCloud and wadm for `wash up` #2032

Open brooksmtownsend opened 6 months ago

brooksmtownsend commented 6 months ago

Affected project(s)

Is your feature request related to a problem? Please describe.

It's frustrating to open PRs like #2031, and for users to have to download entirely new wash versions just to get patch fixes to wasmCloud and wadm.

Describe the solution you'd like

When running wash up, if --wasmcloud-start-only isn't supplied, we should check for the latest version of wasmCloud and wadm to see if we can download a newer SEMVER patch version of one or both. This would make it much easier for us to push out patches to wadm and wasmcloud within wash.

This should fail gracefully if not successful, e.g. not having an internet connection shouldn't make wash up fail as long as an older version is already downloaded.

Describe alternatives you've considered

One thing to consider is that it puts the onus of following SEMVER (which we do) on the maintainers, and in the future this may end up breaking someone using wash up if we need to push a security breaking change as a patch. Given wash up is a developer tool, this is an acceptable compromise.

Additional context

No response

stale[bot] commented 4 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this has been closed too eagerly, please feel free to tag a maintainer so we can keep working on the issue. Thank you for contributing to wasmCloud!

brooksmtownsend commented 4 months ago

Thanks @vados-cosmonic , this is definitely a great one to have.

markkovari commented 4 months ago

Hey @brooksmtownsend this seems like a good enhancement to me, feel free to assign me if no objection, already started to look into it. 🙇

markkovari commented 3 months ago

@brooksmtownsend (or anyone else) which versions are we interested in as patches?

I assume that we are interested in pre-releases too, but no drafts. That should be the case, right? Or do you think we should ignore prereleases?

Created the WIP pr, but there is a handful of missing things, but I rather have some clarifying questions now. #2527

It is already downloading the newer versions, but no fallback to the previous versions/binaries yet and things are a bit messy. 🫣

brooksmtownsend commented 3 months ago

Awesome work @markkovari ! I think we should only automatically update patch versions that are not pre-releases or drafts. So for example, if we release wash with version wasmCloud 1.0.4:

  1. 1.0.5 should auto-download once released
  2. 1.0.6 should auto-download once released
  3. 1.0.7-beta.1 should not auto-download
  4. 1.0.8-rc.1 should not auto-download
  5. 1.1.0 should not auto-download

For wadm, the same rules apply

brooksmtownsend commented 3 months ago

The reasoning around the draft/alpha/beta/rc not auto downloading is so we can feel confident about releasing new prerelease versions for testing without breaking folks. You can always specify the prerelease version with wash up if you want though, e.g. wash up --wasmcloud-version 1.0.8-rc.1