shipit-cli 0.13.1__tar.gz → 0.13.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- shipit_cli-0.13.3/PKG-INFO +131 -0
- shipit_cli-0.13.3/README.md +112 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/pyproject.toml +1 -1
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/assets/wordpress/install.sh +8 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/cli.py +4 -4
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/node_static.py +1 -2
- shipit_cli-0.13.3/src/shipit/version.py +5 -0
- shipit_cli-0.13.1/PKG-INFO +0 -17
- shipit_cli-0.13.1/README.md +0 -0
- shipit_cli-0.13.1/src/shipit/version.py +0 -5
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/.gitignore +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/__init__.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/assets/php/php.ini +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/assets/wordpress/wp-config.php +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/generator.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/procfile.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/base.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/hugo.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/laravel.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/mkdocs.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/php.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/python.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/registry.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/staticfile.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/wordpress.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/tests/test_e2e.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/tests/test_generate_shipit_examples.py +0 -0
- {shipit_cli-0.13.1 → shipit_cli-0.13.3}/tests/test_version.py +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: shipit-cli
|
|
3
|
+
Version: 0.13.3
|
|
4
|
+
Summary: Shipit CLI is the best way to build, serve and deploy your projects anywhere.
|
|
5
|
+
Project-URL: homepage, https://wasmer.io
|
|
6
|
+
Project-URL: repository, https://github.com/wasmerio/shipit
|
|
7
|
+
Project-URL: Changelog, https://github.com/wasmerio/shipit/changelog
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Requires-Dist: dotenv>=0.9.9
|
|
10
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
11
|
+
Requires-Dist: requests>=2.32.5
|
|
12
|
+
Requires-Dist: rich>=14.1.0
|
|
13
|
+
Requires-Dist: semantic-version>=2.10.0
|
|
14
|
+
Requires-Dist: sh>=2.2.2
|
|
15
|
+
Requires-Dist: starlark-pyo3>=2025.1
|
|
16
|
+
Requires-Dist: tomlkit>=0.13.3
|
|
17
|
+
Requires-Dist: typer>=0.16.1
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# Shipit
|
|
21
|
+
|
|
22
|
+
Shipit is a CLI that automatically detects the type of project you are trying to run, builds it and runs it using [Starlark](https://starlark-lang.org/) definition files (called `Shipit`).
|
|
23
|
+
|
|
24
|
+
It can run builds locally, inside Docker, or through Wasmer, and bundles a one-command experience for common frameworks.
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
27
|
+
|
|
28
|
+
To use shipit, you'll need to have [uv](https://docs.astral.sh/uv/) installed.
|
|
29
|
+
|
|
30
|
+
Install nothing globally; use `uvx shipit-cli` to run Shipit from anywhere.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
uvx shipit-cli .
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Running in `auto` mode will generate the `Shipit` file when needed, build the project, and can
|
|
37
|
+
also serve it. Shipit picks the safest builder automatically and falls back to
|
|
38
|
+
Docker or Wasmer when requested:
|
|
39
|
+
|
|
40
|
+
- `uvx shipit-cli . --wasmer` builds locally and serves inside Wasmer.
|
|
41
|
+
- `uvx shipit-cli . --docker` builds it with Docker (you can customize the docker client as well, eg: `--docker-client depot`).
|
|
42
|
+
- `uvx shipit-cli . --start` launches the app after building.
|
|
43
|
+
|
|
44
|
+
You can combine them as needed:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
uvx shipit-cli . --start --wasmer --skip-prepare
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Commands
|
|
51
|
+
|
|
52
|
+
### Default `auto` mode
|
|
53
|
+
|
|
54
|
+
Full pipeline in one command. Combine flags such as `--regenerate` to rewrite
|
|
55
|
+
the `Shipit` file. Use
|
|
56
|
+
`--wasmer` to run with Wasmer, or `--wasmer-deploy` to deploy to Wasmer Edge.
|
|
57
|
+
|
|
58
|
+
### `generate`
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
uvx shipit-cli generate .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Create or refresh the `Shipit` file. Override build and run commands with
|
|
65
|
+
`--install-command`, `--build-command`, or `--start-command`. Pick a exlicit provider
|
|
66
|
+
with `--use-provider`.
|
|
67
|
+
|
|
68
|
+
### `plan`
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uvx shipit-cli plan --out plan.json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Evaluate the project and emit metadata, derived commands, and required
|
|
75
|
+
services without building. Helpful for CI checks or debugging configuration.
|
|
76
|
+
|
|
77
|
+
### `build`
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
uvx shipit-cli build
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Run the build steps defined in `Shipit`. Append `--wasmer` to execute inside
|
|
84
|
+
Wasmer, `--docker` to use Docker builds.
|
|
85
|
+
|
|
86
|
+
### `serve`
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
uvx shipit-cli serve
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Execute the start command for the project. Combine with `--wasmer` for WebAssembly execution, or `--wasmer-deploy` to deploy to Wasmer Edge.
|
|
93
|
+
|
|
94
|
+
## Supported Technologies
|
|
95
|
+
|
|
96
|
+
Shipit works with three execution environments:
|
|
97
|
+
|
|
98
|
+
- Local builder for fast, host-native builds.
|
|
99
|
+
- Docker builder when container isolation is required.
|
|
100
|
+
- Wasmer runner for portable WebAssembly packaging and deployment.
|
|
101
|
+
|
|
102
|
+
## Development
|
|
103
|
+
|
|
104
|
+
Clone the repository and use the `uv` project environment.
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
uv run shipit . --start
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Use any other subcommand during development by prefixing with `uv run shipit`,
|
|
111
|
+
for example `uv run shipit build . --wasmer`. This keeps changes local while
|
|
112
|
+
matching the published CLI behaviour.
|
|
113
|
+
|
|
114
|
+
### Tests
|
|
115
|
+
|
|
116
|
+
Run the test suite with:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
uv run pytest
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
You can run the e2e tests in parallel (`-n 8`) with:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
uv run pytest -m e2e -v "tests/test_e2e.py" -s -n 8
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The e2e tests will:
|
|
129
|
+
* Build the project (locally, or with docker)
|
|
130
|
+
* Run the project (locally or with Wasmer)
|
|
131
|
+
* Test that the project output (via http requests) is the correct one
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Shipit
|
|
2
|
+
|
|
3
|
+
Shipit is a CLI that automatically detects the type of project you are trying to run, builds it and runs it using [Starlark](https://starlark-lang.org/) definition files (called `Shipit`).
|
|
4
|
+
|
|
5
|
+
It can run builds locally, inside Docker, or through Wasmer, and bundles a one-command experience for common frameworks.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
To use shipit, you'll need to have [uv](https://docs.astral.sh/uv/) installed.
|
|
10
|
+
|
|
11
|
+
Install nothing globally; use `uvx shipit-cli` to run Shipit from anywhere.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
uvx shipit-cli .
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Running in `auto` mode will generate the `Shipit` file when needed, build the project, and can
|
|
18
|
+
also serve it. Shipit picks the safest builder automatically and falls back to
|
|
19
|
+
Docker or Wasmer when requested:
|
|
20
|
+
|
|
21
|
+
- `uvx shipit-cli . --wasmer` builds locally and serves inside Wasmer.
|
|
22
|
+
- `uvx shipit-cli . --docker` builds it with Docker (you can customize the docker client as well, eg: `--docker-client depot`).
|
|
23
|
+
- `uvx shipit-cli . --start` launches the app after building.
|
|
24
|
+
|
|
25
|
+
You can combine them as needed:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
uvx shipit-cli . --start --wasmer --skip-prepare
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Commands
|
|
32
|
+
|
|
33
|
+
### Default `auto` mode
|
|
34
|
+
|
|
35
|
+
Full pipeline in one command. Combine flags such as `--regenerate` to rewrite
|
|
36
|
+
the `Shipit` file. Use
|
|
37
|
+
`--wasmer` to run with Wasmer, or `--wasmer-deploy` to deploy to Wasmer Edge.
|
|
38
|
+
|
|
39
|
+
### `generate`
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
uvx shipit-cli generate .
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Create or refresh the `Shipit` file. Override build and run commands with
|
|
46
|
+
`--install-command`, `--build-command`, or `--start-command`. Pick a exlicit provider
|
|
47
|
+
with `--use-provider`.
|
|
48
|
+
|
|
49
|
+
### `plan`
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
uvx shipit-cli plan --out plan.json
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Evaluate the project and emit metadata, derived commands, and required
|
|
56
|
+
services without building. Helpful for CI checks or debugging configuration.
|
|
57
|
+
|
|
58
|
+
### `build`
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
uvx shipit-cli build
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Run the build steps defined in `Shipit`. Append `--wasmer` to execute inside
|
|
65
|
+
Wasmer, `--docker` to use Docker builds.
|
|
66
|
+
|
|
67
|
+
### `serve`
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
uvx shipit-cli serve
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Execute the start command for the project. Combine with `--wasmer` for WebAssembly execution, or `--wasmer-deploy` to deploy to Wasmer Edge.
|
|
74
|
+
|
|
75
|
+
## Supported Technologies
|
|
76
|
+
|
|
77
|
+
Shipit works with three execution environments:
|
|
78
|
+
|
|
79
|
+
- Local builder for fast, host-native builds.
|
|
80
|
+
- Docker builder when container isolation is required.
|
|
81
|
+
- Wasmer runner for portable WebAssembly packaging and deployment.
|
|
82
|
+
|
|
83
|
+
## Development
|
|
84
|
+
|
|
85
|
+
Clone the repository and use the `uv` project environment.
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
uv run shipit . --start
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Use any other subcommand during development by prefixing with `uv run shipit`,
|
|
92
|
+
for example `uv run shipit build . --wasmer`. This keeps changes local while
|
|
93
|
+
matching the published CLI behaviour.
|
|
94
|
+
|
|
95
|
+
### Tests
|
|
96
|
+
|
|
97
|
+
Run the test suite with:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
uv run pytest
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
You can run the e2e tests in parallel (`-n 8`) with:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
uv run pytest -m e2e -v "tests/test_e2e.py" -s -n 8
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
The e2e tests will:
|
|
110
|
+
* Build the project (locally, or with docker)
|
|
111
|
+
* Run the project (locally or with Wasmer)
|
|
112
|
+
* Test that the project output (via http requests) is the correct one
|
|
@@ -92,4 +92,12 @@ if [ -n "${WP_DEFAULT_THEME:-}" ]; then
|
|
|
92
92
|
wp theme activate "$WP_DEFAULT_THEME"
|
|
93
93
|
fi
|
|
94
94
|
|
|
95
|
+
if [ -n "${WP_LOCALE:-}" ]; then
|
|
96
|
+
echo "Setting locale: $WP_LOCALE"
|
|
97
|
+
wp language install "$WP_LOCALE"
|
|
98
|
+
wp language theme install --all "$WP_LOCALE"
|
|
99
|
+
wp language plugin install --all "$WP_LOCALE"
|
|
100
|
+
wp site switch-language "$WP_LOCALE"
|
|
101
|
+
fi
|
|
102
|
+
|
|
95
103
|
echo "✅ WordPress Installation complete"
|
|
@@ -835,7 +835,7 @@ class WasmerBuilder:
|
|
|
835
835
|
src_dir: Path,
|
|
836
836
|
registry: Optional[str] = None,
|
|
837
837
|
token: Optional[str] = None,
|
|
838
|
-
bin: Optional[
|
|
838
|
+
bin: Optional[str] = None,
|
|
839
839
|
) -> None:
|
|
840
840
|
self.src_dir = src_dir
|
|
841
841
|
self.inner_builder = inner_builder
|
|
@@ -843,7 +843,7 @@ class WasmerBuilder:
|
|
|
843
843
|
self.wasmer_dir_path = self.src_dir / ".shipit" / "wasmer"
|
|
844
844
|
self.wasmer_registry = registry
|
|
845
845
|
self.wasmer_token = token
|
|
846
|
-
self.bin = bin
|
|
846
|
+
self.bin = bin or "wasmer"
|
|
847
847
|
self.default_env = {
|
|
848
848
|
"SHIPIT_PYTHON_EXTRA_INDEX_URL": "https://pythonindex.wasix.org/simple",
|
|
849
849
|
"SHIPIT_PYTHON_CROSS_PLATFORM": "wasix_wasm32",
|
|
@@ -1437,7 +1437,7 @@ def auto(
|
|
|
1437
1437
|
False,
|
|
1438
1438
|
help="Use Wasmer to build and serve the project.",
|
|
1439
1439
|
),
|
|
1440
|
-
wasmer_bin: Optional[
|
|
1440
|
+
wasmer_bin: Optional[str] = typer.Option(
|
|
1441
1441
|
None,
|
|
1442
1442
|
help="The path to the Wasmer binary.",
|
|
1443
1443
|
),
|
|
@@ -1682,7 +1682,7 @@ def serve(
|
|
|
1682
1682
|
False,
|
|
1683
1683
|
help="Use Wasmer to build and serve the project.",
|
|
1684
1684
|
),
|
|
1685
|
-
wasmer_bin: Optional[
|
|
1685
|
+
wasmer_bin: Optional[str] = typer.Option(
|
|
1686
1686
|
None,
|
|
1687
1687
|
help="The path to the Wasmer binary.",
|
|
1688
1688
|
),
|
|
@@ -12,7 +12,6 @@ from .base import (
|
|
|
12
12
|
DetectResult,
|
|
13
13
|
DependencySpec,
|
|
14
14
|
Provider,
|
|
15
|
-
_exists,
|
|
16
15
|
MountSpec,
|
|
17
16
|
ServiceSpec,
|
|
18
17
|
VolumeSpec,
|
|
@@ -119,10 +118,10 @@ class NodeStaticProvider(StaticFileProvider):
|
|
|
119
118
|
package_manager: PackageManager
|
|
120
119
|
package_json: Optional[Dict[str, Any]]
|
|
121
120
|
extra_dependencies: Set[str]
|
|
121
|
+
static_generator: Optional[StaticGenerator] = None
|
|
122
122
|
|
|
123
123
|
def __init__(self, path: Path, custom_commands: CustomCommands):
|
|
124
124
|
super().__init__(path, custom_commands)
|
|
125
|
-
self.static_generator: Optional[StaticGenerator] = None
|
|
126
125
|
if (path / "package-lock.json").exists():
|
|
127
126
|
self.package_manager = PackageManager.NPM
|
|
128
127
|
elif (path / "pnpm-lock.yaml").exists():
|
shipit_cli-0.13.1/PKG-INFO
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: shipit-cli
|
|
3
|
-
Version: 0.13.1
|
|
4
|
-
Summary: Shipit CLI is the best way to build, serve and deploy your projects anywhere.
|
|
5
|
-
Project-URL: homepage, https://wasmer.io
|
|
6
|
-
Project-URL: repository, https://github.com/wasmerio/shipit
|
|
7
|
-
Project-URL: Changelog, https://github.com/wasmerio/shipit/changelog
|
|
8
|
-
Requires-Python: >=3.10
|
|
9
|
-
Requires-Dist: dotenv>=0.9.9
|
|
10
|
-
Requires-Dist: pyyaml>=6.0.2
|
|
11
|
-
Requires-Dist: requests>=2.32.5
|
|
12
|
-
Requires-Dist: rich>=14.1.0
|
|
13
|
-
Requires-Dist: semantic-version>=2.10.0
|
|
14
|
-
Requires-Dist: sh>=2.2.2
|
|
15
|
-
Requires-Dist: starlark-pyo3>=2025.1
|
|
16
|
-
Requires-Dist: tomlkit>=0.13.3
|
|
17
|
-
Requires-Dist: typer>=0.16.1
|
shipit_cli-0.13.1/README.md
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|