Green-Software-Foundation / if

Impact Framework
https://if.greensoftware.foundation/
MIT License
150 stars 40 forks source link

Build `if-blitz` #639

Open jmcook1186 opened 6 months ago

jmcook1186 commented 6 months ago

Sub of #651

User story

As a user I want to be able to quickly test out IF in a sandbox environment. When I raise bug reports I ant to be ablke to link to an online sandbox so devs can instantly repro.

Rationale

A command line tool that will take a user's current environment and instantly replicate it in an online sandbox that can be shared with devs. This will help people to accurately report bugs, experiment with things in a safe environment, etc.

Implementation details

Priority

3/5

Size

L

What does "done" look like?

feature merged to if/main documentation added to if.greensoftware.foundation

Deadline

tbc

jawache commented 6 months ago

@jmcook1186 thinking through the next up task for @narekhovhannisyan this one seems the best as it has fewest dependencies and would actually be immediately useful for everyone. Although after writing it seems that if-env might be a dependency so will spec that out also.

I believe a reasonable assumption for a phase 1 if this tool is it just uploads the contents of the current folder to stack blitz.

Acceptance Criteria

Given the user has if installed locally and is running a manifest file in the current folder When they call if-blitz . Then it copies all the local folder (minus things like node modules) into a public stack blitz and prints a clickable link in the console so users can run their manifests online.

Given the user has if installed locally or globally and is running a manifest file in a different folder When they call if-blitz /path/to/manifest.yml Then it creates a local folder, calls if-env /path/to/manifest.yml in that folder to generate a package JSON, copies the manifest file into that folder and then uploads that whole folder to stack blitz and prints the link out to the console.

jmcook1186 commented 6 months ago

Yes, it looks like if-blitz could wrap the stackblitz POST API endoint to create a project: https://developer.stackblitz.com/platform/api/post-api

It should be able to infer the right payloads from the local file structure.

It's not entirely clear to me how the stackblitz environment should include the dependencies for installed packages without also uploading the node_modules directory - i guess this is why you suggested if-env as a prerequisite. But it also needs the build artifacts from the installed plugins from node_modules.

@narekhovhannisyan any ideas for this?

narekhovhannisyan commented 6 months ago

@jmcook1186 It seems they have strong node.js SDK and template support for node.js. "stackblitz": { "installDependencies": true, property in package.json solves that problem. Will dive deeper later.

zanete commented 5 months ago

@jawache do you feel that this is still very important to deliver before we move on to the Inputs & Outputs? cc @jmcook1186

jawache commented 5 months ago

@zanete no it can be deprioritized. In fact I think this would make for a very good community contribution, help wanted, feature.

zanete commented 5 months ago

@jmcook1186 when you have a moment, please review the description and then it can be a community