shopify-cli 2.6.2 → 2.6.6
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.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +15 -4
- data/.github/workflows/shopify.yml +3 -6
- data/CHANGELOG.md +89 -99
- data/CONTRIBUTING.md +9 -1
- data/Dockerfile +22 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +7 -3
- data/RELEASING.md +17 -30
- data/Rakefile +0 -5
- data/lib/project_types/extension/cli.rb +1 -0
- data/lib/project_types/extension/commands/create.rb +1 -0
- data/lib/project_types/extension/features/argo.rb +9 -10
- data/lib/project_types/extension/features/argo_serve.rb +1 -1
- data/lib/project_types/extension/forms/create.rb +1 -1
- data/lib/project_types/extension/forms/questions/ask_template.rb +2 -1
- data/lib/project_types/extension/messages/messages.rb +1 -0
- data/lib/project_types/extension/models/server_config/extension.rb +2 -0
- data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +1 -1
- data/lib/project_types/extension/models/specification_handlers/checkout_ui_extension.rb +1 -1
- data/lib/project_types/extension/tasks/converters/server_config_converter.rb +4 -5
- data/lib/project_types/extension/tasks/find_package_from_json.rb +37 -0
- data/lib/project_types/extension/tasks/load_server_config.rb +6 -1
- data/lib/project_types/node/commands/serve.rb +7 -16
- data/lib/project_types/node/messages/messages.rb +0 -5
- data/lib/project_types/php/commands/serve.rb +6 -9
- data/lib/project_types/php/messages/messages.rb +1 -4
- data/lib/project_types/rails/commands/create.rb +45 -16
- data/lib/project_types/rails/commands/serve.rb +7 -8
- data/lib/project_types/rails/forms/create.rb +0 -1
- data/lib/project_types/rails/messages/messages.rb +1 -4
- data/lib/project_types/script/commands/create.rb +4 -5
- data/lib/project_types/script/config/extension_points.yml +10 -0
- data/lib/project_types/script/errors.rb +0 -18
- data/lib/project_types/script/graphql/app_script_set.graphql +2 -0
- data/lib/project_types/script/layers/application/build_script.rb +2 -1
- data/lib/project_types/script/layers/application/create_script.rb +2 -2
- data/lib/project_types/script/layers/application/push_script.rb +15 -1
- data/lib/project_types/script/layers/domain/push_package.rb +5 -2
- data/lib/project_types/script/layers/domain/script_json.rb +1 -1
- data/lib/project_types/script/layers/infrastructure/api_clients/partners_proxy_api_client.rb +0 -4
- data/lib/project_types/script/layers/infrastructure/errors.rb +17 -2
- data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_task_runner.rb +29 -13
- data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +29 -13
- data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +4 -2
- data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +3 -4
- data/lib/project_types/script/layers/infrastructure/script_service.rb +7 -2
- data/lib/project_types/script/messages/messages.rb +9 -22
- data/lib/project_types/script/ui/error_handler.rb +16 -26
- data/lib/project_types/theme/commands/serve.rb +2 -0
- data/lib/project_types/theme/messages/messages.rb +6 -0
- data/lib/shopify_cli/app_type_detector.rb +32 -0
- data/lib/shopify_cli/command.rb +6 -1
- data/lib/shopify_cli/command_options/command_serve_options.rb +43 -0
- data/lib/shopify_cli/command_options.rb +7 -0
- data/lib/shopify_cli/commands/login.rb +3 -3
- data/lib/shopify_cli/commands/reporting.rb +38 -0
- data/lib/shopify_cli/commands/switch.rb +1 -1
- data/lib/shopify_cli/commands.rb +1 -0
- data/lib/shopify_cli/constants.rb +7 -3
- data/lib/shopify_cli/core/monorail.rb +9 -20
- data/lib/shopify_cli/environment.rb +15 -1
- data/lib/shopify_cli/exception_reporter.rb +29 -15
- data/lib/shopify_cli/messages/messages.rb +48 -19
- data/lib/shopify_cli/migrator/migration.rb +1 -1
- data/lib/shopify_cli/migrator/migrations/1631709766_noop.rb +1 -1
- data/lib/shopify_cli/migrator/migrations/1633691650_merge_reporting_configuration.rb +41 -0
- data/lib/shopify_cli/migrator.rb +9 -11
- data/lib/shopify_cli/reporting_configuration_controller.rb +64 -0
- data/lib/shopify_cli/services/base_service.rb +13 -0
- data/lib/shopify_cli/services/reporting_service.rb +16 -0
- data/lib/shopify_cli/services.rb +6 -0
- data/lib/shopify_cli/theme/dev_server/watcher.rb +2 -2
- data/lib/shopify_cli/theme/dev_server.rb +3 -2
- data/lib/shopify_cli/version.rb +1 -1
- data/lib/shopify_cli.rb +4 -0
- data/shopify-cli.gemspec +2 -13
- data/utilities/docker/container.rb +97 -0
- data/utilities/docker.rb +45 -3
- metadata +18 -10
- data/ext/shopify-cli/extconf.rb +0 -60
- data/lib/project_types/script/graphql/app_script_update_or_create.graphql +0 -0
- data/lib/shopify_cli/exception_reporter/permission_controller.rb +0 -54
data/utilities/docker.rb
CHANGED
@@ -1,10 +1,43 @@
|
|
1
1
|
require "open3"
|
2
|
+
require "securerandom"
|
2
3
|
|
3
4
|
module Utilities
|
4
5
|
module Docker
|
6
|
+
autoload :Container, "docker/container"
|
7
|
+
|
5
8
|
Error = Class.new(StandardError)
|
6
9
|
|
7
10
|
class << self
|
11
|
+
def create_container(env: {})
|
12
|
+
id = SecureRandom.hex
|
13
|
+
cwd = "/tmp/#{SecureRandom.hex}"
|
14
|
+
|
15
|
+
build_image_if_needed
|
16
|
+
|
17
|
+
_, stderr, stat = Open3.capture3(
|
18
|
+
"docker", "run",
|
19
|
+
"-t", "-d",
|
20
|
+
"--name", id,
|
21
|
+
"--volume", "#{Shellwords.escape(root_dir)}:/usr/src/app",
|
22
|
+
image_tag,
|
23
|
+
"tail", "-f", "/dev/null"
|
24
|
+
)
|
25
|
+
raise Error, stderr unless stat.success?
|
26
|
+
|
27
|
+
_, stderr, stat = Open3.capture3(
|
28
|
+
"docker", "exec",
|
29
|
+
id,
|
30
|
+
"mkdir", "-p", cwd
|
31
|
+
)
|
32
|
+
raise Error, stderr unless stat.success?
|
33
|
+
|
34
|
+
Container.new(
|
35
|
+
id: id,
|
36
|
+
cwd: cwd,
|
37
|
+
env: env
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
8
41
|
def run_and_rm_container(*args)
|
9
42
|
build_image_if_needed
|
10
43
|
system(
|
@@ -24,18 +57,27 @@ module Utilities
|
|
24
57
|
|
25
58
|
def build_image_if_needed
|
26
59
|
unless image_exists?(image_tag)
|
27
|
-
|
60
|
+
puts "Rebuilding the Docker image..."
|
61
|
+
_, err, stat = Open3.capture3(
|
62
|
+
"docker", "build", root_dir, "-t", image_tag
|
63
|
+
)
|
64
|
+
raise Error, err unless stat.success?
|
28
65
|
end
|
29
66
|
end
|
30
67
|
|
31
68
|
def image_tag
|
32
69
|
gemfile_lock_path = File.expand_path("./Gemfile.lock", root_dir)
|
33
|
-
|
70
|
+
dockerfile_path = File.expand_path("./Dockerfile", root_dir)
|
71
|
+
fingerprintable_strings = [
|
72
|
+
File.read(gemfile_lock_path),
|
73
|
+
File.read(dockerfile_path),
|
74
|
+
]
|
75
|
+
image_sha = Digest::SHA256.hexdigest(fingerprintable_strings.join("-"))
|
34
76
|
"shopify-cli-#{image_sha}"
|
35
77
|
end
|
36
78
|
|
37
79
|
def image_exists?(tag)
|
38
|
-
_, stat = Open3.
|
80
|
+
_, stat = Open3.capture2e(
|
39
81
|
"docker", "inspect",
|
40
82
|
"--type=image",
|
41
83
|
tag
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shopify-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -92,14 +92,14 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
95
|
+
version: 1.7.2
|
96
96
|
type: :runtime
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
102
|
+
version: 1.7.2
|
103
103
|
description: |
|
104
104
|
Shopify CLI helps you build Shopify apps faster. It quickly scaffolds Node.js
|
105
105
|
and Ruby on Rails embedded apps. It also automates many common tasks in the
|
@@ -107,9 +107,9 @@ description: |
|
|
107
107
|
and webhooks.
|
108
108
|
email:
|
109
109
|
- dev-tools-education@shopify.com
|
110
|
-
executables:
|
111
|
-
|
112
|
-
|
110
|
+
executables:
|
111
|
+
- shopify
|
112
|
+
extensions: []
|
113
113
|
extra_rdoc_files: []
|
114
114
|
files:
|
115
115
|
- ".github/CODEOWNERS"
|
@@ -155,7 +155,6 @@ files:
|
|
155
155
|
- docs/getting-started/upgrade/index.md
|
156
156
|
- docs/help/start-app/index.md
|
157
157
|
- docs/index.md
|
158
|
-
- ext/shopify-cli/extconf.rb
|
159
158
|
- ext/shopify-extensions/extconf.rb
|
160
159
|
- ext/shopify-extensions/shopify_extensions.rb
|
161
160
|
- ext/shopify-extensions/version
|
@@ -250,6 +249,7 @@ files:
|
|
250
249
|
- lib/project_types/extension/tasks/create_extension.rb
|
251
250
|
- lib/project_types/extension/tasks/fetch_specifications.rb
|
252
251
|
- lib/project_types/extension/tasks/find_npm_packages.rb
|
252
|
+
- lib/project_types/extension/tasks/find_package_from_json.rb
|
253
253
|
- lib/project_types/extension/tasks/get_app.rb
|
254
254
|
- lib/project_types/extension/tasks/get_apps.rb
|
255
255
|
- lib/project_types/extension/tasks/get_extensions.rb
|
@@ -300,7 +300,6 @@ files:
|
|
300
300
|
- lib/project_types/script/errors.rb
|
301
301
|
- lib/project_types/script/forms/create.rb
|
302
302
|
- lib/project_types/script/graphql/app_script_set.graphql
|
303
|
-
- lib/project_types/script/graphql/app_script_update_or_create.graphql
|
304
303
|
- lib/project_types/script/graphql/get_app_scripts.graphql
|
305
304
|
- lib/project_types/script/graphql/module_upload_url_generate.graphql
|
306
305
|
- lib/project_types/script/graphql/script_service_proxy.graphql
|
@@ -356,8 +355,11 @@ files:
|
|
356
355
|
- lib/shopify_cli/admin_api/populate_resource_command.rb
|
357
356
|
- lib/shopify_cli/admin_api/schema.rb
|
358
357
|
- lib/shopify_cli/api.rb
|
358
|
+
- lib/shopify_cli/app_type_detector.rb
|
359
359
|
- lib/shopify_cli/command.rb
|
360
360
|
- lib/shopify_cli/command/app_sub_command.rb
|
361
|
+
- lib/shopify_cli/command_options.rb
|
362
|
+
- lib/shopify_cli/command_options/command_serve_options.rb
|
361
363
|
- lib/shopify_cli/commands.rb
|
362
364
|
- lib/shopify_cli/commands/config.rb
|
363
365
|
- lib/shopify_cli/commands/help.rb
|
@@ -367,6 +369,7 @@ files:
|
|
367
369
|
- lib/shopify_cli/commands/populate/customer.rb
|
368
370
|
- lib/shopify_cli/commands/populate/draft_order.rb
|
369
371
|
- lib/shopify_cli/commands/populate/product.rb
|
372
|
+
- lib/shopify_cli/commands/reporting.rb
|
370
373
|
- lib/shopify_cli/commands/store.rb
|
371
374
|
- lib/shopify_cli/commands/switch.rb
|
372
375
|
- lib/shopify_cli/commands/system.rb
|
@@ -384,7 +387,6 @@ files:
|
|
384
387
|
- lib/shopify_cli/db.rb
|
385
388
|
- lib/shopify_cli/environment.rb
|
386
389
|
- lib/shopify_cli/exception_reporter.rb
|
387
|
-
- lib/shopify_cli/exception_reporter/permission_controller.rb
|
388
390
|
- lib/shopify_cli/feature.rb
|
389
391
|
- lib/shopify_cli/form.rb
|
390
392
|
- lib/shopify_cli/git.rb
|
@@ -402,6 +404,7 @@ files:
|
|
402
404
|
- lib/shopify_cli/migrator.rb
|
403
405
|
- lib/shopify_cli/migrator/migration.rb
|
404
406
|
- lib/shopify_cli/migrator/migrations/1631709766_noop.rb
|
407
|
+
- lib/shopify_cli/migrator/migrations/1633691650_merge_reporting_configuration.rb
|
405
408
|
- lib/shopify_cli/options.rb
|
406
409
|
- lib/shopify_cli/packager.rb
|
407
410
|
- lib/shopify_cli/partners_api.rb
|
@@ -411,10 +414,14 @@ files:
|
|
411
414
|
- lib/shopify_cli/project.rb
|
412
415
|
- lib/shopify_cli/project_commands.rb
|
413
416
|
- lib/shopify_cli/project_type.rb
|
417
|
+
- lib/shopify_cli/reporting_configuration_controller.rb
|
414
418
|
- lib/shopify_cli/resolve_constant.rb
|
415
419
|
- lib/shopify_cli/resources.rb
|
416
420
|
- lib/shopify_cli/resources/env_file.rb
|
417
421
|
- lib/shopify_cli/result.rb
|
422
|
+
- lib/shopify_cli/services.rb
|
423
|
+
- lib/shopify_cli/services/base_service.rb
|
424
|
+
- lib/shopify_cli/services/reporting_service.rb
|
418
425
|
- lib/shopify_cli/shopifolk.rb
|
419
426
|
- lib/shopify_cli/sub_command.rb
|
420
427
|
- lib/shopify_cli/task.rb
|
@@ -451,6 +458,7 @@ files:
|
|
451
458
|
- shopify.fish
|
452
459
|
- shopify.sh
|
453
460
|
- utilities/docker.rb
|
461
|
+
- utilities/docker/container.rb
|
454
462
|
- utilities/utilities.rb
|
455
463
|
- vendor/deps/cli-kit/REVISION
|
456
464
|
- vendor/deps/cli-kit/lib/cli/kit.rb
|
data/ext/shopify-cli/extconf.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
require "rbconfig"
|
2
|
-
require "fileutils"
|
3
|
-
require "date"
|
4
|
-
|
5
|
-
gem = File.expand_path("../../../", __FILE__)
|
6
|
-
exe = File.join(gem, "bin", "shopify")
|
7
|
-
|
8
|
-
# `--skip-cli-build` will be passed from the brew `shopify-cli.rb` formula, so
|
9
|
-
# as to prevent this extension builder doing the script and sym-link creation;
|
10
|
-
# the brew install process takes care of these itself - see
|
11
|
-
# https://github.com/Shopify/homebrew-shopify/shopify-cli.rb
|
12
|
-
if ARGV && ARGV[0]&.match(/skip-cli-build/)
|
13
|
-
makefile_content = <<~MAKEFILE
|
14
|
-
.PHONY: clean
|
15
|
-
|
16
|
-
clean: ;
|
17
|
-
|
18
|
-
install: ;
|
19
|
-
MAKEFILE
|
20
|
-
elsif RUBY_PLATFORM.match(/mswin|mingw|cygwin/)
|
21
|
-
bat_path = File.dirname(RbConfig.ruby)
|
22
|
-
bat = "#{bat_path}\\shopify.bat"
|
23
|
-
|
24
|
-
script_content = "#{RbConfig.ruby} -I '#{gem}' '#{exe}' %*"
|
25
|
-
|
26
|
-
FileUtils.mkdir_p(bat_path)
|
27
|
-
makefile_content = <<~MAKEFILE
|
28
|
-
.PHONY: clean install
|
29
|
-
|
30
|
-
clean:
|
31
|
-
\t rm -f "#{bat}"
|
32
|
-
|
33
|
-
install: clean
|
34
|
-
\t echo "@ECHO OFF"> "#{bat}"
|
35
|
-
\t echo "#{script_content}">> "#{bat}"
|
36
|
-
MAKEFILE
|
37
|
-
else
|
38
|
-
script = exe + ".sh"
|
39
|
-
symlink = "/usr/local/bin/shopify"
|
40
|
-
|
41
|
-
script_content = <<~SCRIPT
|
42
|
-
#!/usr/bin/env bash
|
43
|
-
#{RbConfig.ruby} -I #{gem} #{exe} $@
|
44
|
-
SCRIPT
|
45
|
-
|
46
|
-
File.write(script, script_content)
|
47
|
-
FileUtils.chmod("+x", script)
|
48
|
-
|
49
|
-
makefile_content = <<~MAKEFILE
|
50
|
-
.PHONY: clean install
|
51
|
-
|
52
|
-
clean:
|
53
|
-
\t@sudo rm -f #{symlink}
|
54
|
-
|
55
|
-
install: clean
|
56
|
-
\t@sudo ln -s #{script} #{symlink}
|
57
|
-
MAKEFILE
|
58
|
-
end
|
59
|
-
|
60
|
-
File.write("Makefile", makefile_content)
|
File without changes
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module ShopifyCLI
|
2
|
-
module ExceptionReporter
|
3
|
-
module PermissionController
|
4
|
-
def self.report_error?(context: ShopifyCLI::Context.new)
|
5
|
-
CLI::UI::Prompt.ask(context.message("core.error_reporting.report_error.question")) do |handler|
|
6
|
-
handler.option(context.message("core.error_reporting.report_error.yes")) { |_| true }
|
7
|
-
handler.option(context.message("core.error_reporting.report_error.no")) { |_| false }
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.automatic_reporting_prompted?
|
12
|
-
ShopifyCLI::Config.get_section(Constants::Config::Sections::ErrorTracking::NAME).key?(
|
13
|
-
Constants::Config::Sections::ErrorTracking::Fields::AUTOMATIC_REPORTING
|
14
|
-
)
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.can_report_automatically?(context: ShopifyCLI::Context.new)
|
18
|
-
# If the terminal is not interactive we can't prompt the user.
|
19
|
-
return false unless ShopifyCLI::Environment.interactive?
|
20
|
-
|
21
|
-
if automatic_reporting_prompted?
|
22
|
-
automatic_reporting_enabled?
|
23
|
-
else
|
24
|
-
prompt_user(context: context)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.prompt_user(context:)
|
29
|
-
enable_automatic_tracking = CLI::UI::Prompt.ask(
|
30
|
-
context.message("core.error_reporting.enable_automatic_reporting_prompt.question")
|
31
|
-
) do |handler|
|
32
|
-
handler.option(context.message("core.error_reporting.enable_automatic_reporting_prompt.yes")) { |_| true }
|
33
|
-
handler.option(context.message("core.error_reporting.enable_automatic_reporting_prompt.no")) { |_| false }
|
34
|
-
end
|
35
|
-
|
36
|
-
ShopifyCLI::Config.set(
|
37
|
-
Constants::Config::Sections::ErrorTracking::NAME,
|
38
|
-
Constants::Config::Sections::ErrorTracking::Fields::AUTOMATIC_REPORTING,
|
39
|
-
enable_automatic_tracking
|
40
|
-
)
|
41
|
-
|
42
|
-
enable_automatic_tracking
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.automatic_reporting_enabled?
|
46
|
-
ShopifyCLI::Config.get_bool(
|
47
|
-
Constants::Config::Sections::ErrorTracking::NAME,
|
48
|
-
Constants::Config::Sections::ErrorTracking::Fields::AUTOMATIC_REPORTING,
|
49
|
-
default: false
|
50
|
-
)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|