shipit-cli 0.22.0__tar.gz → 0.22.1__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 (174) hide show
  1. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/PKG-INFO +1 -1
  2. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/pyproject.toml +1 -1
  3. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/runners/wasmer.py +38 -1
  4. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/version.py +1 -1
  5. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_wasmer_annotations.py +49 -3
  6. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/.gitignore +0 -0
  7. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/README.md +0 -0
  8. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/__init__.py +0 -0
  9. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/assets/node/optimize-node-modules.sh +0 -0
  10. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/assets/php/php.ini +0 -0
  11. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/assets/wordpress/.htaccess +0 -0
  12. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/assets/wordpress/install.sh +0 -0
  13. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/assets/wordpress/start.php +0 -0
  14. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/assets/wordpress/wp-config.php +0 -0
  15. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/builders/__init__.py +0 -0
  16. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/builders/base.py +0 -0
  17. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/builders/docker.py +0 -0
  18. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/builders/local.py +0 -0
  19. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/cli.py +0 -0
  20. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/evaluator.py +0 -0
  21. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/generator.py +0 -0
  22. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/procfile.py +0 -0
  23. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/base.py +0 -0
  24. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/go.py +0 -0
  25. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/hugo.py +0 -0
  26. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/install_context.py +0 -0
  27. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/jekyll.py +0 -0
  28. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/laravel.py +0 -0
  29. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/mkdocs.py +0 -0
  30. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/node.py +0 -0
  31. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/node_static.py +0 -0
  32. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/php.py +0 -0
  33. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/python.py +0 -0
  34. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/registry.py +0 -0
  35. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/staticfile.py +0 -0
  36. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/providers/wordpress.py +0 -0
  37. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/runners/__init__.py +0 -0
  38. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/runners/base.py +0 -0
  39. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/runners/local.py +0 -0
  40. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/shipit_types.py +0 -0
  41. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlark_loader.py +0 -0
  42. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/prelude.shipit +0 -0
  43. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/serve.shipit +0 -0
  44. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/go.shipit +0 -0
  45. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/hugo.shipit +0 -0
  46. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/jekyll.shipit +0 -0
  47. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/laravel.shipit +0 -0
  48. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/mkdocs.shipit +0 -0
  49. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/node.shipit +0 -0
  50. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/node_static.shipit +0 -0
  51. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/php.shipit +0 -0
  52. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/python.shipit +0 -0
  53. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/staticfile.shipit +0 -0
  54. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/starlib/tools/wordpress.shipit +0 -0
  55. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/ui.py +0 -0
  56. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/utils.py +0 -0
  57. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/src/shipit/volumes.py +0 -0
  58. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_helpers.py +0 -0
  59. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/go-graphql.json +0 -0
  60. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/go-simple.json +0 -0
  61. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/hugo.json +0 -0
  62. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/mkdocs-with-plugins.json +0 -0
  63. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/mkdocs-with-plugins__cross.json +0 -0
  64. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/mkdocs.json +0 -0
  65. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/mkdocs__cross.json +0 -0
  66. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-astro.json +0 -0
  67. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-elysia.json +0 -0
  68. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-express.json +0 -0
  69. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-fastify.json +0 -0
  70. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-h3.json +0 -0
  71. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-hono.json +0 -0
  72. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-hydrogen.json +0 -0
  73. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-koa.json +0 -0
  74. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-mastra.json +0 -0
  75. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-mcp.json +0 -0
  76. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-nestjs.json +0 -0
  77. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-next.json +0 -0
  78. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-nitro.json +0 -0
  79. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-npm-file-subdir.json +0 -0
  80. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-pnpm-workspace-subdir.json +0 -0
  81. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-react-router.json +0 -0
  82. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-remix.json +0 -0
  83. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-solidstart.json +0 -0
  84. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-tanstack-start.json +0 -0
  85. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node-xmcp.json +0 -0
  86. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/node.json +0 -0
  87. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-angular.json +0 -0
  88. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-assemble.json +0 -0
  89. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-astro.json +0 -0
  90. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-brunch.json +0 -0
  91. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-create-react-app.json +0 -0
  92. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-docusaurus-old.json +0 -0
  93. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-docusaurus.json +0 -0
  94. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-eleventy.json +0 -0
  95. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-ember.json +0 -0
  96. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-gatsby.json +0 -0
  97. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-harp.json +0 -0
  98. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-hexo.json +0 -0
  99. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-ionic-angular.json +0 -0
  100. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-ionic-react.json +0 -0
  101. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-metalsmith.json +0 -0
  102. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-next.json +0 -0
  103. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-nuxt.json +0 -0
  104. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-parcel.json +0 -0
  105. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-polymer.json +0 -0
  106. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-preact.json +0 -0
  107. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-remix.json +0 -0
  108. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-sanity.json +0 -0
  109. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-stencil.json +0 -0
  110. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-storybook.json +0 -0
  111. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-svelte.json +0 -0
  112. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-sveltekit.json +0 -0
  113. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-umijs.json +0 -0
  114. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-vite-react.json +0 -0
  115. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-vite.json +0 -0
  116. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-vitepress.json +0 -0
  117. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-vue.json +0 -0
  118. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/nodestatic-vuepress.json +0 -0
  119. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/php-api.json +0 -0
  120. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/php-laravel-react.json +0 -0
  121. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/php-nobuild.json +0 -0
  122. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/php-wordpress-empty.json +0 -0
  123. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/php-wordpress-plugin.json +0 -0
  124. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/php-wordpress-theme.json +0 -0
  125. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/php-wordpress.json +0 -0
  126. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-django.json +0 -0
  127. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-django__cross.json +0 -0
  128. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-fastapi.json +0 -0
  129. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-fastapi__cross.json +0 -0
  130. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-fasthtml.json +0 -0
  131. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-fasthtml__cross.json +0 -0
  132. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-ffmpeg.json +0 -0
  133. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-ffmpeg__cross.json +0 -0
  134. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-flask.json +0 -0
  135. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-flask__cross.json +0 -0
  136. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-mcp-chatgpt.json +0 -0
  137. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-mcp-chatgpt__cross.json +0 -0
  138. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-mcp.json +0 -0
  139. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-mcp__cross.json +0 -0
  140. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-pandoc.json +0 -0
  141. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-pandoc__cross.json +0 -0
  142. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-pillow.json +0 -0
  143. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-pillow__cross.json +0 -0
  144. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-procfile.json +0 -0
  145. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-procfile__cross.json +0 -0
  146. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-streamlit.json +0 -0
  147. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/python-streamlit__cross.json +0 -0
  148. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/static-htmlwithjs.json +0 -0
  149. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/static-nobuild.json +0 -0
  150. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/staticfile-redirects.json +0 -0
  151. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/staticfile.json +0 -0
  152. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/synthetic__go_subdir.json +0 -0
  153. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/synthetic__jekyll_bare.json +0 -0
  154. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/synthetic__jekyll_gemfile.json +0 -0
  155. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/synthetic__python_subdir.json +0 -0
  156. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/plan_snapshots/synthetic__static_subdir.json +0 -0
  157. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_cli_after_deploy.py +0 -0
  158. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_command_overrides.py +0 -0
  159. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_e2e.py +0 -0
  160. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_evaluator.py +0 -0
  161. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_generate_shipit_examples.py +0 -0
  162. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_install_context.py +0 -0
  163. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_node_provider.py +0 -0
  164. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_node_static_provider.py +0 -0
  165. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_php_provider.py +0 -0
  166. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_plan_snapshots.py +0 -0
  167. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_project_context.py +0 -0
  168. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_python_detection.py +0 -0
  169. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_starlark_loader.py +0 -0
  170. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_staticfile_provider.py +0 -0
  171. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_subdir.py +0 -0
  172. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_version.py +0 -0
  173. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/tests/test_volumes.py +0 -0
  174. {shipit_cli-0.22.0 → shipit_cli-0.22.1}/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.22.0
3
+ Version: 0.22.1
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.22.0"
3
+ version = "0.22.1"
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"
@@ -29,6 +29,8 @@ 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
+ WASMER_VERSION_ANNOTATION = "wasmer.io/version"
33
+ BUILD_ANNOTATIONS_FILENAME = "build-annotations.yaml"
32
34
  EDGEJS_QUICKJS_DEPENDENCY = "wasmer/edgejs-quickjs@=0.0.7"
33
35
  PHPIX_VERSION = "0.3.0-rc.2"
34
36
 
@@ -41,7 +43,10 @@ def serialize_provider_config(provider_config: Any) -> Dict[str, Any]:
41
43
  if provider_config is None:
42
44
  return {}
43
45
  if hasattr(provider_config, "model_dump"):
44
- return provider_config.model_dump(mode="json", exclude_none=True)
46
+ return provider_config.model_dump(
47
+ mode="json",
48
+ exclude_defaults=True,
49
+ )
45
50
  if isinstance(provider_config, dict):
46
51
  return provider_config
47
52
  return {}
@@ -313,6 +318,7 @@ class WasmerRunner:
313
318
  return new_build_steps
314
319
 
315
320
  def build(self, serve: Serve) -> None:
321
+ self._write_build_annotations()
316
322
  self.build_prepare(serve)
317
323
  self.build_serve(serve)
318
324
 
@@ -635,6 +641,7 @@ class WasmerRunner:
635
641
 
636
642
  annotations = yaml_config.get("annotations", {})
637
643
  assert isinstance(annotations, dict), "annotations must be a dictionary"
644
+ annotations.update(self._load_build_annotations())
638
645
  annotations[SHIPIT_CONFIG_ANNOTATION] = serialize_provider_config(
639
646
  self.provider_config
640
647
  )
@@ -759,6 +766,36 @@ class WasmerRunner:
759
766
  env=env or os.environ,
760
767
  )
761
768
 
769
+ def _get_wasmer_version(self) -> str:
770
+ result = subprocess.run(
771
+ [self.bin, "--version"],
772
+ check=True,
773
+ capture_output=True,
774
+ text=True,
775
+ )
776
+ output = result.stdout.strip()
777
+ name, separator, version = output.partition(" ")
778
+ if name.lower() != "wasmer" or not separator or not version:
779
+ raise ValueError(f"Unexpected Wasmer version output: {output!r}")
780
+ return version
781
+
782
+ def _write_build_annotations(self) -> None:
783
+ self.wasmer_dir_path.mkdir(parents=True, exist_ok=True)
784
+ annotations_path = self.wasmer_dir_path / BUILD_ANNOTATIONS_FILENAME
785
+ annotations_path.write_text(
786
+ yaml.dump({WASMER_VERSION_ANNOTATION: self._get_wasmer_version()})
787
+ )
788
+
789
+ def _load_build_annotations(self) -> Dict[str, Any]:
790
+ annotations_path = self.wasmer_dir_path / BUILD_ANNOTATIONS_FILENAME
791
+ if not annotations_path.exists():
792
+ return {}
793
+ annotations = yaml.safe_load(annotations_path.read_text()) or {}
794
+ assert isinstance(annotations, dict), (
795
+ f"{BUILD_ANNOTATIONS_FILENAME} must contain a dictionary"
796
+ )
797
+ return annotations
798
+
762
799
  def _update_app_yaml(
763
800
  self, app_owner: Optional[str] = None, app_name: Optional[str] = None
764
801
  ) -> None:
@@ -1,7 +1,7 @@
1
1
  __all__ = ["version", "version_info"]
2
2
 
3
3
 
4
- version = "0.22.0" # x-release-please-version
4
+ version = "0.22.1" # x-release-please-version
5
5
  _version_parts = version.split(".")
6
6
  version_info = (
7
7
  int(_version_parts[0]),
@@ -1,3 +1,4 @@
1
+ import subprocess
1
2
  import tomllib
2
3
  from pathlib import Path
3
4
 
@@ -7,7 +8,12 @@ import yaml
7
8
  from shipit.providers.node import NodeConfig
8
9
  from shipit.providers.php import PhpFramework
9
10
  from shipit.providers.python import PythonConfig, PythonFramework
10
- from shipit.runners.wasmer import WasmerRunner, resolve_app_kind
11
+ from shipit.runners.wasmer import (
12
+ BUILD_ANNOTATIONS_FILENAME,
13
+ WasmerRunner,
14
+ resolve_app_kind,
15
+ serialize_provider_config,
16
+ )
11
17
  from shipit.shipit_types import Package, Serve, Volume
12
18
  from shipit.version import version as shipit_version
13
19
 
@@ -54,7 +60,17 @@ def test_resolve_app_kind(
54
60
  assert resolve_app_kind(provider, framework) == expected
55
61
 
56
62
 
57
- def test_wasmer_app_yaml_adds_python_annotations(tmp_path: Path) -> None:
63
+ def test_serialize_provider_config_excludes_defaults() -> None:
64
+ assert serialize_provider_config(PythonConfig()) == {}
65
+ assert serialize_provider_config(
66
+ PythonConfig(framework=PythonFramework.Django)
67
+ ) == {"framework": "django"}
68
+
69
+
70
+ def test_wasmer_app_yaml_adds_python_annotations(
71
+ tmp_path: Path,
72
+ monkeypatch: pytest.MonkeyPatch,
73
+ ) -> None:
58
74
  src_dir = tmp_path / "src"
59
75
  src_dir.mkdir()
60
76
  (src_dir / "app.yaml").write_text(
@@ -63,6 +79,7 @@ def test_wasmer_app_yaml_adds_python_annotations(tmp_path: Path) -> None:
63
79
 
64
80
  runner = WasmerRunner(DummyBuildBackend(tmp_path), src_dir)
65
81
  runner.prepare_config(PythonConfig(framework=PythonFramework.Django))
82
+ monkeypatch.setattr(runner, "_get_wasmer_version", lambda: "7.2.0")
66
83
 
67
84
  serve = Serve(
68
85
  name="django",
@@ -76,16 +93,23 @@ def test_wasmer_app_yaml_adds_python_annotations(tmp_path: Path) -> None:
76
93
  },
77
94
  )
78
95
 
79
- runner.build_serve(serve)
96
+ runner.build(serve)
80
97
 
81
98
  app_yaml = yaml.safe_load((runner.wasmer_dir_path / "app.yaml").read_text())
82
99
  annotations = app_yaml["annotations"]
100
+ build_annotations = yaml.safe_load(
101
+ (runner.wasmer_dir_path / BUILD_ANNOTATIONS_FILENAME).read_text()
102
+ )
83
103
 
104
+ assert build_annotations == {"wasmer.io/version": "7.2.0"}
84
105
  assert annotations["example.com/existing"] == "keep"
85
106
  assert annotations["shipitcli.com/provider"] == "python"
86
107
  assert annotations["shipitcli.com/version"] == shipit_version
87
108
  assert annotations["wasmer.io/app-kind"] == "django"
109
+ assert annotations["wasmer.io/version"] == "7.2.0"
88
110
  assert annotations["shipitcli.com/config"]["framework"] == "django"
111
+ assert "python_version" not in annotations["shipitcli.com/config"]
112
+ assert "precompile_python" not in annotations["shipitcli.com/config"]
89
113
  assert (
90
114
  annotations["shipitcli.com/config"]["cross_platform"]
91
115
  == "wasix_wasm32"
@@ -184,6 +208,28 @@ def test_wasmer_run_command_inherits_stdio(
184
208
  }
185
209
 
186
210
 
211
+ def test_get_wasmer_version(
212
+ tmp_path: Path,
213
+ monkeypatch: pytest.MonkeyPatch,
214
+ ) -> None:
215
+ src_dir = tmp_path / "src"
216
+ src_dir.mkdir()
217
+ runner = WasmerRunner(DummyBuildBackend(tmp_path), src_dir, bin="wasmer")
218
+
219
+ def fake_run(*args, **kwargs):
220
+ assert args == (["wasmer", "--version"],)
221
+ assert kwargs == {
222
+ "check": True,
223
+ "capture_output": True,
224
+ "text": True,
225
+ }
226
+ return subprocess.CompletedProcess(args[0], 0, stdout="wasmer 7.2.0\n")
227
+
228
+ monkeypatch.setattr("shipit.runners.wasmer.subprocess.run", fake_run)
229
+
230
+ assert runner._get_wasmer_version() == "7.2.0"
231
+
232
+
187
233
  def test_wasmer_node_manifest_maps_to_edgejs(tmp_path: Path) -> None:
188
234
  src_dir = tmp_path / "src"
189
235
  src_dir.mkdir()
File without changes
File without changes