shipit-cli 0.15.1__tar.gz → 0.15.2__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 (38) hide show
  1. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/PKG-INFO +1 -1
  2. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/pyproject.toml +1 -1
  3. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/base.py +4 -4
  4. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/php.py +17 -2
  5. shipit_cli-0.15.2/src/shipit/version.py +5 -0
  6. shipit_cli-0.15.1/src/shipit/version.py +0 -5
  7. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/.gitignore +0 -0
  8. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/README.md +0 -0
  9. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/__init__.py +0 -0
  10. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/assets/php/php.ini +0 -0
  11. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/assets/wordpress/install.sh +0 -0
  12. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/assets/wordpress/wp-config.php +0 -0
  13. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/builders/__init__.py +0 -0
  14. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/builders/base.py +0 -0
  15. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/builders/docker.py +0 -0
  16. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/builders/local.py +0 -0
  17. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/cli.py +0 -0
  18. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/generator.py +0 -0
  19. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/procfile.py +0 -0
  20. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/hugo.py +0 -0
  21. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/jekyll.py +0 -0
  22. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/laravel.py +0 -0
  23. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/mkdocs.py +0 -0
  24. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/node_static.py +0 -0
  25. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/python.py +0 -0
  26. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/registry.py +0 -0
  27. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/staticfile.py +0 -0
  28. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/providers/wordpress.py +0 -0
  29. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/runners/__init__.py +0 -0
  30. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/runners/base.py +0 -0
  31. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/runners/local.py +0 -0
  32. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/runners/wasmer.py +0 -0
  33. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/shipit_types.py +0 -0
  34. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/ui.py +0 -0
  35. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/src/shipit/utils.py +0 -0
  36. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/tests/test_e2e.py +0 -0
  37. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/tests/test_generate_shipit_examples.py +0 -0
  38. {shipit_cli-0.15.1 → shipit_cli-0.15.2}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shipit-cli
3
- Version: 0.15.1
3
+ Version: 0.15.2
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "shipit-cli"
3
- version = "0.15.1"
3
+ version = "0.15.2"
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"
@@ -2,8 +2,8 @@ from dataclasses import dataclass, field
2
2
  from pathlib import Path
3
3
  from typing import Any, Dict, List, Optional, Protocol, Literal
4
4
  from shipit.procfile import Procfile
5
- from pydantic import BaseModel, Field
6
- from pydantic_settings import SettingsConfigDict
5
+ from pydantic import Field
6
+ from pydantic_settings import BaseSettings, SettingsConfigDict
7
7
 
8
8
 
9
9
  @dataclass
@@ -12,7 +12,7 @@ class DetectResult:
12
12
  score: int # Higher score wins when multiple providers match
13
13
 
14
14
 
15
- class CustomCommands(BaseModel):
15
+ class CustomCommands(BaseSettings):
16
16
  model_config = SettingsConfigDict(extra="ignore")
17
17
 
18
18
  install: Optional[str] = None
@@ -46,7 +46,7 @@ class CustomCommands(BaseModel):
46
46
  return self
47
47
 
48
48
 
49
- class Config(BaseModel):
49
+ class Config(BaseSettings):
50
50
  model_config = SettingsConfigDict(extra="ignore", env_prefix="SHIPIT_")
51
51
 
52
52
  port: Optional[int] = 8080
@@ -19,6 +19,7 @@ class PhpConfig(Config):
19
19
  model_config = SettingsConfigDict(extra="ignore", env_prefix="SHIPIT_")
20
20
 
21
21
  use_composer: bool = False
22
+ composer_build_script: Optional[str] = None
22
23
  php_version: Optional[str] = "8.3"
23
24
  php_architecture: Optional[Literal["64-bit", "32-bit"]] = "64-bit"
24
25
 
@@ -38,7 +39,16 @@ class PhpProvider:
38
39
  )
39
40
  or False
40
41
  )
41
- return PhpConfig(use_composer=use_composer, **base_config.model_dump())
42
+ composer_build_script = None
43
+ if use_composer:
44
+ composer_config = json.load(open(path / "composer.json"))
45
+ if "scripts" in composer_config:
46
+ assert isinstance(composer_config["scripts"], dict), "Scripts must be a dictionary"
47
+ composer_build_script = "post-update-cmd" if "post-update-cmd" in composer_config["scripts"] else None
48
+ if not composer_build_script and "post-install-cmd" in composer_config["scripts"]:
49
+ composer_build_script = "post-install-cmd"
50
+ config = PhpConfig(use_composer=use_composer, composer_build_script=composer_build_script, **base_config.model_dump())
51
+ return config
42
52
 
43
53
  @classmethod
44
54
  def name(cls) -> str:
@@ -97,10 +107,15 @@ class PhpProvider:
97
107
  if self.config.use_composer:
98
108
  steps.append('env(COMPOSER_HOME="/tmp", COMPOSER_FUND="0")')
99
109
  steps.append(
100
- 'run("composer install --optimize-autoloader --no-scripts --no-interaction", inputs=["composer.json", "composer.lock"], outputs=["."], group="install")'
110
+ 'run("composer install --optimize-autoloader --ignore-platform-reqs --no-scripts --no-interaction", inputs=["composer.json", "composer.lock"], outputs=["."], group="install")'
101
111
  )
102
112
 
103
113
  steps.append('copy(".", ".", ignore=[".git"])')
114
+
115
+ # Since we don't run the scripts during the install step, we need to run them after the build step
116
+ if self.config.use_composer and self.config.composer_build_script:
117
+ steps.append(f'run("composer run-script {self.config.composer_build_script}", outputs=["."], group="build")')
118
+
104
119
  return steps
105
120
 
106
121
  def prepare_steps(self) -> Optional[list[str]]:
@@ -0,0 +1,5 @@
1
+ __all__ = ["version", "version_info"]
2
+
3
+
4
+ version = "0.15.2"
5
+ version_info = (0, 15, 2, "final", 0)
@@ -1,5 +0,0 @@
1
- __all__ = ["version", "version_info"]
2
-
3
-
4
- version = "0.15.1"
5
- version_info = (0, 15, 1, "final", 0)
File without changes
File without changes