Skip to content

2.0 Release Plan #168

@lxfontes

Description

@lxfontes

Bugs

Optional Features

Validation Plan

wash binary

  • Make sure --non-interactive flag doesn't trigger update flow
  • --output flag might be ambiguous in certain commands (ex: build)
  • Check what happens if a wash plugin crashes / panics

wash update

  • Upgrading from wash v1 to wash v2
  • Pointing to a custom git repository
  • Validate (or remove) --major, --minor, --patch flags

wash completion

  • Validate supported shells bash, elvish, fish, powershell, zsh

wash config

  • Validate config init, and its --global flag
  • Validate config info
  • Validate config show 🐛 Looks like config show creates a config file without asking

Unlike wash build, wash config doesn't accept a project directory ( is this a blocker? )

wash doctor

  • [ ]
  • Try it on a brand new development environment
  • Check if its recommendations are valid ( ex: rustup target add )

wash new

  • Using templates from configuration file
  • Using templates from GIT repository ( and --subfolder too )

🤔 Clarify when to use --template-name vs --git vs ``--local` ?

wash oci

  • pull ( secure & insecure )
  • push ( secure & insecure )
  • Check what happens if we try to manipulate a different OCI artifact (Docker Image) instead of WASM

wash plugin

  • list: List installed plugins
  • install: Install plugins. Try both OCI reference & local file. 🤔 atm doesn't support insecure registries
  • uninstall: Uninstall plugins.
  • test: Validate it works and we also need documentation on when/how to use it.

wash wit

  • wit fetch: Validate it respects wash configuration & --clean flag
  • wit update: Validate it can update a single package
  • wit add: Validate it can add a single dependency (should it support multiple ?)
  • wit remove: Validate it removes a single dependency (should it support multiple ?)
  • wit clean: Validate it only removes deps directory ( 🤔 not sure when this would be used instead of rm -rf )
  • wit build: 🤔 Unclear when this should be used. It is the only command with --output-file ( ambiguous with --output )

🤔 Some inconsistencies in path handling as wash wit uses wit-dir instead of project-dir.

wash build

  • Using current directory as project path
  • Passing directory as project path
  • Project with custom .wash/config.json
  • Validate --skip-fetch
  • NodeJS projects: npm, pnpm, yarn
  • Go projects
  • Rust projects
  • Check what happens in a monorepo

Note we currently have this logic for language selection

        let component_path = match project_type {
            ProjectType::Rust => self.build_rust_component(config, args).await?,
            ProjectType::Go => self.build_tinygo_component(config, args).await?,
            ProjectType::TypeScript => self.build_typescript_component(config, args).await?,
            ProjectType::Unknown => {
                bail!("unknown project type. Expected to find Cargo.toml, go.mod, or package.json");
            }
        };

wash dev

  • Test with current directory & custom directory as project directory
  • It should auto-build/reload on project file changes
  • It should auto-add/remove interfaces to the Workload definition
  • Validate --component-path: 🤔 When is that needed / used?
  • Validate it is including all available plugins (ex: blobstore is missing and expected to be a wash wasm plugin 🤔 )
  • Validate wasi-config ( should it be in wash config? does it update wasi:cli/env too ? )
  • 🤔 What does --blobstore-root do?
  • Validate HTTPS / TLS setup
  • Validate Web GPU

wash host

  • Validate CLI arguments ( http-addr, host-group, host-name, scheduler and data nats urls )
  • Validate Web GPU
  • It should not start if NATS is unavailable
  • It should keep running if NATS was available then became unavailable. Should also self-heal.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions