Skip to content

Commit

Permalink
feat: update grit guide (#458)
Browse files Browse the repository at this point in the history
1. Using the remote pattern, users don't need to add anything locally.
2. I usually recommend `--interactive` for new users to review each
diff.
  • Loading branch information
mlejva authored Oct 16, 2024
2 parents 62bf1a0 + 9950629 commit 0a09d5c
Showing 1 changed file with 4 additions and 119 deletions.
123 changes: 4 additions & 119 deletions apps/web/src/app/(docs)/docs/quickstart/migrating-from-v0/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,135 +28,20 @@ git add .
git commit -m "Last changes made"
```

## Step 3: Add Custom Migration Patterns
## Step 3: Run Grit with the Custom Pattern

You can paste the following content into the appropriate files for JavaScript/TypeScript and Python.

### JavaScript/TypeScript Pattern (e2b_v0_to_v1_js.grit)

Create or edit the file `.grit/patterns/e2b_v0_to_v1_js.grit` and paste the following:

```bash
engine marzano(0.1)
language js

pattern e2b_v0_to_v1_js() {
or {
`Sandbox.create({$params})` where {
$params <: contains `template: $name` => ., // `timeoutMs: 300_000`,
$params <: contains `cwd: $cwd` => .
} => `Sandbox.create($name, {$params}) // TODO: cwd $cwd was removed, it can't be set on sbx anymore`,
`Sandbox.create({$params})` where {
$params <: contains `template: $name` => . // `timeoutMs: 300_000`
} => `Sandbox.create($name, {$params})`,
`Sandbox.create({$params})` where {
$params <: contains `cwd: $cwd` => ., // `timeoutMs: 300_000`,
} => `Sandbox.create({$params}) // TODO: cwd $cwd was removed, it can't be set on sbx anymore`,
`$sbx.keepAlive($time)` => `$sbx.setTimeout($time)`,
`Sandbox.reconnect($x)` => `Sandbox.connect($x)`,
`$sbx.filesystem.write($path, $text)` => `$sbx.files.write($path, $text)`,
`$sbx.uploadFile($file, $path)` => `$sbx.files.write($path, $file)`,
`$sbx.downloadFile($path)` => `$sbx.files.read($path)`,
`$sbx.process.startAndWait({$params})` where {
$params <: contains `cmd: $cmd` => .,
} => `$sbx.commands.run($cmd, {$params)`,
`$sbx.process.startAndWait` => `$sbx.commands.run`,
`$sbx.process.start({$params})` where {
$params <: contains `cmd: $cmd` => .,
} => `$sbx.commands.run($cmd, {$params})` where $params += `backgrund: true`,
`const $watcher = $sbx.filesystem.watchDir($path)` => `` where {
$program <: contains `$watcher.addEventListener($body)` => .,
$program <: contains `await $watcher.start()` => `await $sbx.files.watchDir($path, $body)`
},
`let $watcher = $sbx.filesystem.watchDir($path)` => `` where {
$program <: contains `$watcher.addEventListener($body)` => .,
$program <: contains `await $watcher.start()` => `await $sbx.files.watchDir($path, $body)`
},
`var $watcher = $sbx.filesystem.watchDir($path)` => `` where {
$program <: contains `$watcher.addEventListener($body)` => .,
$program <: contains `await $watcher.start()` => `await $sbx.files.watchDir($path, $body)`
},
`$watcher = $sbx.filesystem.watchDir($path)` => `` where {
$program <: contains `$watcher.addEventListener($body)` => .,
$program <: contains `await $watcher.start()` => `await $sbx.files.watchDir($path, $body)`
},
`$sbx.id` => `$sbx.sandboxId`,
`$sbx.fileURL` => `$sbx.uploadUrl()`,
`$sbx.getHostname` => `$sbx.getHost()`,
`$sbx.close()` => `$sbx.kill()`,
$msg => `Sandbox` where { $msg <: "CodeInterpreter", $msg <: imported_from(`"@e2b/code-interpreter"`) },
`$sbx.notebook.execCell($params)` => `$sbx.runCode($params)`,
`ProcessMessage` => `OutputMessage`,
} where or {
$program <: contains `import $_ from "@e2b/code-interpreter"`,
$program <: contains `import $_ from "@e2b"`
}
}
```
### Python Pattern (e2b_v0_to_v1_py.grit)
Create or edit the file `.grit/patterns/e2b_v0_to_v1_py.grit` and paste the following:
```bash
engine marzano(0.1)
language python
pattern e2b_v0_to_v1_py() {
or {
`Sandbox.create($params)` where {
$params <: contains `template="$name"` => ., // `timeout_ms=300_000`,
$params <: contains `cwd="$cwd"` => .
} => `Sandbox.create(template="$name", $params) # TODO: cwd "$cwd" was removed, it can't be set on sbx anymore`,
`Sandbox.create($params)` where {
$params <: contains `template="$name"` => . // `timeout_ms=300_000`
} => `Sandbox.create(template="$name", $params)`,
`Sandbox.create($params)` where {
$params <: contains `cwd="$cwd"` => ., // `timeout_ms=300_000`,
} => `Sandbox.create($params) # TODO: cwd "$cwd" was removed, it can't be set on sbx anymore`,
`$sbx.keep_alive($time)` => `$sbx.set_timeout($time)`,
`Sandbox.reconnect($x)` => `Sandbox.connect($x)`,
`$sbx.filesystem.write($path, $text)` => `$sbx.files.write($path, $text)`,
`$sbx.upload_file($file)` => `$sbx.files.write($file)`,
`$sbx.download_file($path)` => `$sbx.files.read($path)`,
`$sbx.process.start_and_wait($params)` where {
$params <: contains `cmd="$cmd"` => .,
} => `$sbx.commands.run($cmd, $params)`,
`$sbx.process.start_and_wait` => `$sbx.commands.run`,
`$sbx.process.start($params)` where {
$params <: contains `cmd="$cmd"` => .,
} => `$sbx.commands.run($cmd, $params, background=True)`,
`watcher = $sbx.filesystem.watch_dir($path)` => `` where {
$program <: contains `watcher.add_event_listener($body)` => .,
$program <: contains `await watcher.start()` => `await $sbx.files.watch_dir($path, $body)`
},
`$sbx.id` => `$sbx.sandbox_id`,
`$sbx.file_url` => `$sbx.upload_url`,
`$sbx.get_hostname` => `$sbx.getHost`,
`$sbx.close()` => `$sbx.kill()`,
$msg => `Sandbox` where { $msg <: "CodeInterpreter", $msg <: imported_from(`e2b_code_interpreter`) },
`$sbx.notebook.exec_cell($params)` => `$sbx.run_code($params)`,
} where or {
$program <: contains `from e2b import $_`,
$program <: contains `from e2b_code_interpreter import $_`
}
}
```
## Step 4: Run Grit with the Custom Pattern
To apply the custom migration pattern, run the following command for your project.
To apply the custom migration pattern, run the following command for your project. The `--interactive` flag allows you to review each change as it is made.

### For JavaScript/TypeScript:

```bash
grit apply github.com/e2b-dev/e2b-cookbook#e2b_v0_to_v1_js
grit apply github.com/e2b-dev/e2b-cookbook#e2b_v0_to_v1_js --interactive
```

### For Python:

```bash
grit apply github.com/e2b-dev/e2b-cookbook#e2b_v0_to_v1_py
grit apply github.com/e2b-dev/e2b-cookbook#e2b_v0_to_v1_py --interactive
```

## Step 5: Review changes
Expand Down

0 comments on commit 0a09d5c

Please sign in to comment.