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.
Files changed (28) hide show
  1. shipit_cli-0.13.3/PKG-INFO +131 -0
  2. shipit_cli-0.13.3/README.md +112 -0
  3. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/pyproject.toml +1 -1
  4. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/assets/wordpress/install.sh +8 -0
  5. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/cli.py +4 -4
  6. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/node_static.py +1 -2
  7. shipit_cli-0.13.3/src/shipit/version.py +5 -0
  8. shipit_cli-0.13.1/PKG-INFO +0 -17
  9. shipit_cli-0.13.1/README.md +0 -0
  10. shipit_cli-0.13.1/src/shipit/version.py +0 -5
  11. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/.gitignore +0 -0
  12. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/__init__.py +0 -0
  13. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/assets/php/php.ini +0 -0
  14. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/assets/wordpress/wp-config.php +0 -0
  15. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/generator.py +0 -0
  16. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/procfile.py +0 -0
  17. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/base.py +0 -0
  18. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/hugo.py +0 -0
  19. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/laravel.py +0 -0
  20. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/mkdocs.py +0 -0
  21. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/php.py +0 -0
  22. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/python.py +0 -0
  23. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/registry.py +0 -0
  24. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/staticfile.py +0 -0
  25. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/src/shipit/providers/wordpress.py +0 -0
  26. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/tests/test_e2e.py +0 -0
  27. {shipit_cli-0.13.1 → shipit_cli-0.13.3}/tests/test_generate_shipit_examples.py +0 -0
  28. {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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "shipit-cli"
3
- version = "0.13.1"
3
+ version = "0.13.3"
4
4
  description = "Shipit CLI is the best way to build, serve and deploy your projects anywhere."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -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[Path] = None,
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.absolute() if bin else "wasmer"
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[Path] = typer.Option(
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[Path] = typer.Option(
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():
@@ -0,0 +1,5 @@
1
+ __all__ = ["version", "version_info"]
2
+
3
+
4
+ version = "0.13.3"
5
+ version_info = (0, 13, 3, "final", 0)
@@ -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
File without changes
@@ -1,5 +0,0 @@
1
- __all__ = ["version", "version_info"]
2
-
3
-
4
- version = "0.13.1"
5
- version_info = (0, 13, 1, "final", 0)
File without changes