shipit-cli 0.21.4__tar.gz → 0.21.5__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.21.4 → shipit_cli-0.21.5}/PKG-INFO +2 -2
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/README.md +1 -1
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/pyproject.toml +1 -1
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/node.py +6 -1
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/runners/wasmer.py +13 -4
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/version.py +1 -1
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_node_provider.py +19 -1
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_wasmer_annotations.py +39 -2
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/.gitignore +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/__init__.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/assets/node/optimize-node-modules.sh +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/assets/php/php.ini +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/assets/wordpress/.htaccess +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/assets/wordpress/install.sh +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/assets/wordpress/start.php +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/assets/wordpress/wp-config.php +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/builders/__init__.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/builders/base.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/builders/docker.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/builders/local.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/cli.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/generator.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/procfile.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/base.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/go.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/hugo.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/install_context.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/jekyll.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/laravel.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/mkdocs.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/node_static.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/php.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/python.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/registry.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/staticfile.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/providers/wordpress.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/runners/__init__.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/runners/base.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/runners/local.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/shipit_types.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/ui.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/utils.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/src/shipit/volumes.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_cli_after_deploy.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_e2e.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_generate_shipit_examples.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_install_context.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_node_static_provider.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_php_provider.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_staticfile_provider.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_subdir.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_version.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_volumes.py +0 -0
- {shipit_cli-0.21.4 → shipit_cli-0.21.5}/tests/test_wordpress_phpix.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shipit-cli
|
|
3
|
-
Version: 0.21.
|
|
3
|
+
Version: 0.21.5
|
|
4
4
|
Summary: Shipit CLI is the best way to build, serve and deploy your projects anywhere.
|
|
5
5
|
Project-URL: homepage, https://wasmer.io
|
|
6
6
|
Project-URL: repository, https://github.com/wasmerio/shipit
|
|
@@ -166,7 +166,7 @@ Conventional Commits. When that PR is merged, it creates a GitHub release with
|
|
|
166
166
|
a `vX.Y.Z` tag and dispatches the PyPI workflow for that tag with the built-in
|
|
167
167
|
`GITHUB_TOKEN`. The PyPI workflow also supports manual dispatch for reruns. It:
|
|
168
168
|
|
|
169
|
-
* Runs regular
|
|
169
|
+
* Runs regular tests, excluding e2e tests.
|
|
170
170
|
* Validates that the tag version without the leading `v` matches:
|
|
171
171
|
* `project.version` in `pyproject.toml`
|
|
172
172
|
* `version` in `src/shipit/version.py`
|
|
@@ -143,7 +143,7 @@ Conventional Commits. When that PR is merged, it creates a GitHub release with
|
|
|
143
143
|
a `vX.Y.Z` tag and dispatches the PyPI workflow for that tag with the built-in
|
|
144
144
|
`GITHUB_TOKEN`. The PyPI workflow also supports manual dispatch for reruns. It:
|
|
145
145
|
|
|
146
|
-
* Runs regular
|
|
146
|
+
* Runs regular tests, excluding e2e tests.
|
|
147
147
|
* Validates that the tag version without the leading `v` matches:
|
|
148
148
|
* `project.version` in `pyproject.toml`
|
|
149
149
|
* `version` in `src/shipit/version.py`
|
|
@@ -420,6 +420,7 @@ class NodeConfig(Config):
|
|
|
420
420
|
model_config = SettingsConfigDict(extra="ignore", env_prefix="SHIPIT_")
|
|
421
421
|
|
|
422
422
|
use_edgejs: Optional[bool] = False
|
|
423
|
+
precompile_edgejs: Optional[bool] = None
|
|
423
424
|
package_manager: Optional[PackageManager] = None
|
|
424
425
|
framework: Optional[NodeFramework] = None
|
|
425
426
|
extra_dependencies: Set[str] = Field(default_factory=set)
|
|
@@ -1234,7 +1235,11 @@ class NodeProvider:
|
|
|
1234
1235
|
return None
|
|
1235
1236
|
|
|
1236
1237
|
def prepare_steps(self) -> Optional[list[str]]:
|
|
1237
|
-
|
|
1238
|
+
if not self.config.precompile_edgejs:
|
|
1239
|
+
return []
|
|
1240
|
+
return [
|
|
1241
|
+
'run("edgejs --precompile {}".format(app.serve_path))',
|
|
1242
|
+
]
|
|
1238
1243
|
|
|
1239
1244
|
def commands(self) -> Dict[str, str]:
|
|
1240
1245
|
if not self.config.commands.start:
|
|
@@ -29,6 +29,7 @@ SHIPIT_CONFIG_ANNOTATION = "shipitcli.com/config"
|
|
|
29
29
|
SHIPIT_PROVIDER_ANNOTATION = "shipitcli.com/provider"
|
|
30
30
|
SHIPIT_VERSION_ANNOTATION = "shipitcli.com/version"
|
|
31
31
|
WASMER_APP_KIND_ANNOTATION = "wasmer.io/app-kind"
|
|
32
|
+
EDGEJS_QUICKJS_DEPENDENCY = "wasmer/edgejs-quickjs@=0.0.6"
|
|
32
33
|
|
|
33
34
|
|
|
34
35
|
def serialize_provider_config(provider_config: Any) -> Dict[str, Any]:
|
|
@@ -101,9 +102,9 @@ class WasmerRunner:
|
|
|
101
102
|
mapper: Dict[str, MapperItem] = {
|
|
102
103
|
"node": {
|
|
103
104
|
"dependencies": {
|
|
104
|
-
"latest":
|
|
105
|
-
"24":
|
|
106
|
-
"22":
|
|
105
|
+
"latest": EDGEJS_QUICKJS_DEPENDENCY,
|
|
106
|
+
"24": EDGEJS_QUICKJS_DEPENDENCY,
|
|
107
|
+
"22": EDGEJS_QUICKJS_DEPENDENCY,
|
|
107
108
|
},
|
|
108
109
|
"scripts": {"edge"},
|
|
109
110
|
"aliases": {"node": "edge"},
|
|
@@ -256,6 +257,8 @@ class WasmerRunner:
|
|
|
256
257
|
provider_config.phpix = True
|
|
257
258
|
if isinstance(provider_config, NodeConfig):
|
|
258
259
|
provider_config.use_edgejs = True
|
|
260
|
+
if provider_config.precompile_edgejs is None:
|
|
261
|
+
provider_config.precompile_edgejs = True
|
|
259
262
|
provider_config.remove_native_binaries = True
|
|
260
263
|
self.provider_config = provider_config
|
|
261
264
|
return provider_config
|
|
@@ -486,7 +489,8 @@ class WasmerRunner:
|
|
|
486
489
|
wasi_args = table()
|
|
487
490
|
if serve.cwd:
|
|
488
491
|
wasi_args.add("cwd", serve.cwd)
|
|
489
|
-
|
|
492
|
+
main_args = self.main_args_for_module(command_module, parts[1:])
|
|
493
|
+
wasi_args.add("main-args", array(main_args).multiline(True))
|
|
490
494
|
if serve.env:
|
|
491
495
|
command_env.update(serve.env)
|
|
492
496
|
if command_env:
|
|
@@ -701,6 +705,11 @@ class WasmerRunner:
|
|
|
701
705
|
return "edgejs" in module or atom == "edgejs"
|
|
702
706
|
return False
|
|
703
707
|
|
|
708
|
+
def main_args_for_module(self, module: str, args: List[str]) -> List[str]:
|
|
709
|
+
if "edgejs" not in module or "--bytecode-cache" in args:
|
|
710
|
+
return args
|
|
711
|
+
return ["--bytecode-cache", *args]
|
|
712
|
+
|
|
704
713
|
def has_serve_command(self, command: str) -> bool:
|
|
705
714
|
wasmer_toml_path = self.wasmer_dir_path / "wasmer.toml"
|
|
706
715
|
if not wasmer_toml_path.exists():
|
|
@@ -7,7 +7,12 @@ import pytest
|
|
|
7
7
|
from shipit.generator import load_provider
|
|
8
8
|
from shipit.providers.base import Config
|
|
9
9
|
from shipit.providers.laravel import LaravelProvider
|
|
10
|
-
from shipit.providers.node import
|
|
10
|
+
from shipit.providers.node import (
|
|
11
|
+
NodeConfig,
|
|
12
|
+
NodeFramework,
|
|
13
|
+
NodeProvider,
|
|
14
|
+
PackageManager,
|
|
15
|
+
)
|
|
11
16
|
from shipit.providers.node_static import NodeStaticProvider
|
|
12
17
|
from shipit.providers.php import PhpFramework
|
|
13
18
|
|
|
@@ -420,6 +425,19 @@ def test_node_provider_skips_native_binary_optimizer_by_default(
|
|
|
420
425
|
assert all(mount.name != "assets" for mount in provider.mounts())
|
|
421
426
|
|
|
422
427
|
|
|
428
|
+
def test_node_prepare_steps_use_precompile_edgejs_flag(tmp_path: Path) -> None:
|
|
429
|
+
config = NodeConfig()
|
|
430
|
+
provider = NodeProvider(tmp_path, config)
|
|
431
|
+
|
|
432
|
+
assert config.precompile_edgejs is None
|
|
433
|
+
assert provider.prepare_steps() == []
|
|
434
|
+
|
|
435
|
+
config.precompile_edgejs = True
|
|
436
|
+
assert provider.prepare_steps() == [
|
|
437
|
+
'run("edgejs --precompile {}".format(app.serve_path))',
|
|
438
|
+
]
|
|
439
|
+
|
|
440
|
+
|
|
423
441
|
def test_node_provider_uses_build_only_assets_mount(tmp_path: Path) -> None:
|
|
424
442
|
(tmp_path / "package.json").write_text("{}\n")
|
|
425
443
|
provider_config = NodeProvider.load_config(tmp_path, Config())
|
|
@@ -201,13 +201,35 @@ def test_wasmer_node_manifest_maps_to_edgejs(tmp_path: Path) -> None:
|
|
|
201
201
|
runner.build_serve(serve)
|
|
202
202
|
|
|
203
203
|
manifest = tomllib.loads((runner.wasmer_dir_path / "wasmer.toml").read_text())
|
|
204
|
-
assert manifest["dependencies"]["wasmer/edgejs-quickjs"] == "=0.0.
|
|
204
|
+
assert manifest["dependencies"]["wasmer/edgejs-quickjs"] == "=0.0.6"
|
|
205
205
|
assert manifest["command"][0]["module"] == "wasmer/edgejs-quickjs:edge"
|
|
206
206
|
wasi = manifest["command"][0]["annotations"]["wasi"]
|
|
207
|
-
assert wasi["main-args"] == ["server.js"]
|
|
207
|
+
assert wasi["main-args"] == ["--bytecode-cache", "server.js"]
|
|
208
208
|
assert "env" not in wasi
|
|
209
209
|
|
|
210
210
|
|
|
211
|
+
def test_wasmer_edge_manifest_does_not_duplicate_bytecode_cache(
|
|
212
|
+
tmp_path: Path,
|
|
213
|
+
) -> None:
|
|
214
|
+
src_dir = tmp_path / "src"
|
|
215
|
+
src_dir.mkdir()
|
|
216
|
+
runner = WasmerRunner(DummyBuildBackend(tmp_path), src_dir)
|
|
217
|
+
|
|
218
|
+
serve = Serve(
|
|
219
|
+
name="node",
|
|
220
|
+
provider="node",
|
|
221
|
+
build=[],
|
|
222
|
+
deps=[Package("node", "22")],
|
|
223
|
+
commands={"start": "edge --bytecode-cache server.js"},
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
runner.build_serve(serve)
|
|
227
|
+
|
|
228
|
+
manifest = tomllib.loads((runner.wasmer_dir_path / "wasmer.toml").read_text())
|
|
229
|
+
wasi = manifest["command"][0]["annotations"]["wasi"]
|
|
230
|
+
assert wasi["main-args"] == ["--bytecode-cache", "server.js"]
|
|
231
|
+
|
|
232
|
+
|
|
211
233
|
def test_wasmer_prepare_config_enables_node_edge_optimizations(
|
|
212
234
|
tmp_path: Path,
|
|
213
235
|
) -> None:
|
|
@@ -218,6 +240,21 @@ def test_wasmer_prepare_config_enables_node_edge_optimizations(
|
|
|
218
240
|
config = runner.prepare_config(NodeConfig())
|
|
219
241
|
|
|
220
242
|
assert config.use_edgejs is True
|
|
243
|
+
assert config.precompile_edgejs is True
|
|
244
|
+
assert config.remove_native_binaries is True
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def test_wasmer_prepare_config_preserves_node_precompile_override(
|
|
248
|
+
tmp_path: Path,
|
|
249
|
+
) -> None:
|
|
250
|
+
src_dir = tmp_path / "src"
|
|
251
|
+
src_dir.mkdir()
|
|
252
|
+
runner = WasmerRunner(DummyBuildBackend(tmp_path), src_dir)
|
|
253
|
+
|
|
254
|
+
config = runner.prepare_config(NodeConfig(precompile_edgejs=False))
|
|
255
|
+
|
|
256
|
+
assert config.use_edgejs is True
|
|
257
|
+
assert config.precompile_edgejs is False
|
|
221
258
|
assert config.remove_native_binaries is True
|
|
222
259
|
|
|
223
260
|
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|