shipit-cli 0.15.1__py3-none-any.whl → 0.15.2__py3-none-any.whl

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/providers/base.py CHANGED
@@ -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
shipit/providers/php.py CHANGED
@@ -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]]:
shipit/version.py CHANGED
@@ -1,5 +1,5 @@
1
1
  __all__ = ["version", "version_info"]
2
2
 
3
3
 
4
- version = "0.15.1"
5
- version_info = (0, 15, 1, "final", 0)
4
+ version = "0.15.2"
5
+ version_info = (0, 15, 2, "final", 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
@@ -5,7 +5,7 @@ shipit/procfile.py,sha256=bjsdG8aSbRhKvrN96OiSOh0xjJHnlZg42eadtlsLc0M,1129
5
5
  shipit/shipit_types.py,sha256=wQzuYOIJMlovOq56ropf2T3j_Ye6Y8BYYdAuXfEGHbM,2062
6
6
  shipit/ui.py,sha256=vqtuAYXwB_PqlcOchrPFTQ3yoCXRBqV_GnB5R2u-1-k,243
7
7
  shipit/utils.py,sha256=XaiuaT_5mnzlXD9i1PAkaVc162y5Y_wj_oo1z2gUQBI,248
8
- shipit/version.py,sha256=q8SlRWdsvng7MZpPYDKxyoGYK8uOMP4KzryloyqqOfc,97
8
+ shipit/version.py,sha256=VIlfN0QiC8CAK1LDKQ9UxRGa1rI4adibaKMCjK4g2To,97
9
9
  shipit/assets/php/php.ini,sha256=SaR3wvssSROtxTY_CQ5-BspM_47_I971V5X2dsqe8sU,2579
10
10
  shipit/assets/wordpress/install.sh,sha256=8sNe4w9F9y97JR-w5Q0ZHVgZvNm_vnd1CacY5fQjewI,3087
11
11
  shipit/assets/wordpress/wp-config.php,sha256=q7KHB_TyLrodXzbg8EEPm42XWDIevtwL6wk3L0kbVrs,4809
@@ -13,13 +13,13 @@ shipit/builders/__init__.py,sha256=n1g3bZ_VaXVQIhwTlJnRWzDMCymVUjolykopnypyyyE,1
13
13
  shipit/builders/base.py,sha256=mP8WdPs53oLiTQkYT1r7xpyNW5D_2gcTUFwOPkpPsHc,477
14
14
  shipit/builders/docker.py,sha256=wnCJdOK-PR7TV3QpHTapDkOYx3G4P47YJeLihgifJ88,9613
15
15
  shipit/builders/local.py,sha256=xWN-YevtXp63igycJU-lnIkZQHhhrX176RX6kFNfxKE,6014
16
- shipit/providers/base.py,sha256=qKEarV37t7Zi2T8Mg0utjvVJN4gkiRCkOPG4w4NqFo4,4163
16
+ shipit/providers/base.py,sha256=gExUrdeZsfC_auBS2OYz-aUTQto1Xsp7mpyVXBXJ3Z4,4172
17
17
  shipit/providers/hugo.py,sha256=OIjfRMY6BbEM5uhtVlHlMDZH0uxbrtEEIoMMqDZlX5U,3515
18
18
  shipit/providers/jekyll.py,sha256=6XjTIklYfK_iez90j7YL1UDCreReGAaT3zH8fSYMguI,3968
19
19
  shipit/providers/laravel.py,sha256=UjfG-CDLihxuWkvZ6Q8KfXOi1Fx71Vcy1NfdjW1Nwgo,3412
20
20
  shipit/providers/mkdocs.py,sha256=PDg8gV8OVmlU89B8Fa2AfEgdC9c0x3JkpMUPFaBd0Ts,2662
21
21
  shipit/providers/node_static.py,sha256=XCmWIV7OtKE0vg4lIba0Y3IvHuNMaFmJ4OCj3fev5kY,15463
22
- shipit/providers/php.py,sha256=YL9bFVlTkQ3HgSQ7Vi9YJlkEWXl1M4dbeBMXP2G-EHc,4483
22
+ shipit/providers/php.py,sha256=yYXbu_s8kDIc5qNKlrultFUnXCtQqRP3QfrcqRzTNyo,5487
23
23
  shipit/providers/python.py,sha256=gj4tfL4ewAU4mhzOrpcdVYx19JNFNBx3pRYE0IixTPM,22754
24
24
  shipit/providers/registry.py,sha256=MSaKc3Eqs1vM04njGUyTtOeL8ffmmWyB3kSpvirqHfg,693
25
25
  shipit/providers/staticfile.py,sha256=hpZVFBATiIUOD0miSE1aHtJurqCaPusRuj5MdJV2JU8,3447
@@ -28,7 +28,7 @@ shipit/runners/__init__.py,sha256=s1kICs9W8Z5buF0dalgNNx2AzGAsiTw8OzCIgYiN_ps,15
28
28
  shipit/runners/base.py,sha256=edXGW_4lngQS_Q110yy_6UnyOSKLbxxJm5vDIu8ge7Y,582
29
29
  shipit/runners/local.py,sha256=OFWyI_IO_7q_QZrbEnXFRUVbNCwNYuxZTdA1PI2Icp4,4138
30
30
  shipit/runners/wasmer.py,sha256=d2oL7x74yU6_q1cMYuu3M19XyGzDKnJZHirf1SBuF_k,17202
31
- shipit_cli-0.15.1.dist-info/METADATA,sha256=dQCRPs5oKZzgOzJrdG-Ji_gYNk7GXv7ojZm02ngQg1k,3773
32
- shipit_cli-0.15.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
33
- shipit_cli-0.15.1.dist-info/entry_points.txt,sha256=7AE1NjSrHaSDfbfsRRO50KKnHFTbB0Imsccd1WynzAQ,72
34
- shipit_cli-0.15.1.dist-info/RECORD,,
31
+ shipit_cli-0.15.2.dist-info/METADATA,sha256=QjI79Bec18mghB3iG2L-f7E8gkeK8JAgorre0e9X6QM,3773
32
+ shipit_cli-0.15.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
33
+ shipit_cli-0.15.2.dist-info/entry_points.txt,sha256=7AE1NjSrHaSDfbfsRRO50KKnHFTbB0Imsccd1WynzAQ,72
34
+ shipit_cli-0.15.2.dist-info/RECORD,,