shopify-cli 2.6.1 → 2.6.5
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 +79 -97
- data/Dockerfile +12 -2
- data/Gemfile +1 -0
- data/Gemfile.lock +5 -3
- data/RELEASING.md +17 -30
- data/Rakefile +0 -5
- data/ext/shopify-cli/extconf.rb +0 -1
- data/lib/project_types/extension/features/argo.rb +8 -2
- 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/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/serve.rb +7 -8
- data/lib/project_types/rails/messages/messages.rb +1 -4
- data/lib/project_types/script/commands/create.rb +3 -1
- data/lib/project_types/script/config/extension_points.yml +7 -0
- 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/push_script.rb +15 -1
- data/lib/project_types/script/layers/domain/push_package.rb +5 -2
- data/lib/project_types/script/layers/infrastructure/errors.rb +17 -0
- 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 +4 -13
- data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +4 -2
- data/lib/project_types/script/layers/infrastructure/script_service.rb +6 -1
- data/lib/project_types/script/messages/messages.rb +6 -4
- data/lib/project_types/script/ui/error_handler.rb +16 -0
- data/lib/project_types/theme/commands/serve.rb +1 -0
- data/lib/project_types/theme/messages/messages.rb +5 -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 +25 -14
- 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/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 +2 -2
- data/lib/shopify_cli/version.rb +1 -1
- data/lib/shopify_cli.rb +4 -0
- data/shopify-cli.gemspec +1 -8
- data/utilities/docker/container.rb +76 -0
- data/utilities/docker.rb +44 -3
- metadata +14 -5
- 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,26 @@ module Utilities
|
|
24
57
|
|
25
58
|
def build_image_if_needed
|
26
59
|
unless image_exists?(image_tag)
|
27
|
-
|
60
|
+
_, err, stat = Open3.capture3(
|
61
|
+
"docker", "build", root_dir, "-t", image_tag
|
62
|
+
)
|
63
|
+
raise Error, err unless stat.success?
|
28
64
|
end
|
29
65
|
end
|
30
66
|
|
31
67
|
def image_tag
|
32
68
|
gemfile_lock_path = File.expand_path("./Gemfile.lock", root_dir)
|
33
|
-
|
69
|
+
dockerfile_path = File.expand_path("./Dockerfile", root_dir)
|
70
|
+
fingerprintable_strings = [
|
71
|
+
File.read(gemfile_lock_path),
|
72
|
+
File.read(dockerfile_path),
|
73
|
+
]
|
74
|
+
image_sha = Digest::SHA256.hexdigest(fingerprintable_strings.join("-"))
|
34
75
|
"shopify-cli-#{image_sha}"
|
35
76
|
end
|
36
77
|
|
37
78
|
def image_exists?(tag)
|
38
|
-
_, stat = Open3.
|
79
|
+
_, stat = Open3.capture2e(
|
39
80
|
"docker", "inspect",
|
40
81
|
"--type=image",
|
41
82
|
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.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-20 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
|
@@ -356,8 +356,11 @@ files:
|
|
356
356
|
- lib/shopify_cli/admin_api/populate_resource_command.rb
|
357
357
|
- lib/shopify_cli/admin_api/schema.rb
|
358
358
|
- lib/shopify_cli/api.rb
|
359
|
+
- lib/shopify_cli/app_type_detector.rb
|
359
360
|
- lib/shopify_cli/command.rb
|
360
361
|
- lib/shopify_cli/command/app_sub_command.rb
|
362
|
+
- lib/shopify_cli/command_options.rb
|
363
|
+
- lib/shopify_cli/command_options/command_serve_options.rb
|
361
364
|
- lib/shopify_cli/commands.rb
|
362
365
|
- lib/shopify_cli/commands/config.rb
|
363
366
|
- lib/shopify_cli/commands/help.rb
|
@@ -367,6 +370,7 @@ files:
|
|
367
370
|
- lib/shopify_cli/commands/populate/customer.rb
|
368
371
|
- lib/shopify_cli/commands/populate/draft_order.rb
|
369
372
|
- lib/shopify_cli/commands/populate/product.rb
|
373
|
+
- lib/shopify_cli/commands/reporting.rb
|
370
374
|
- lib/shopify_cli/commands/store.rb
|
371
375
|
- lib/shopify_cli/commands/switch.rb
|
372
376
|
- lib/shopify_cli/commands/system.rb
|
@@ -384,7 +388,6 @@ files:
|
|
384
388
|
- lib/shopify_cli/db.rb
|
385
389
|
- lib/shopify_cli/environment.rb
|
386
390
|
- lib/shopify_cli/exception_reporter.rb
|
387
|
-
- lib/shopify_cli/exception_reporter/permission_controller.rb
|
388
391
|
- lib/shopify_cli/feature.rb
|
389
392
|
- lib/shopify_cli/form.rb
|
390
393
|
- lib/shopify_cli/git.rb
|
@@ -402,6 +405,7 @@ files:
|
|
402
405
|
- lib/shopify_cli/migrator.rb
|
403
406
|
- lib/shopify_cli/migrator/migration.rb
|
404
407
|
- lib/shopify_cli/migrator/migrations/1631709766_noop.rb
|
408
|
+
- lib/shopify_cli/migrator/migrations/1633691650_merge_reporting_configuration.rb
|
405
409
|
- lib/shopify_cli/options.rb
|
406
410
|
- lib/shopify_cli/packager.rb
|
407
411
|
- lib/shopify_cli/partners_api.rb
|
@@ -411,10 +415,14 @@ files:
|
|
411
415
|
- lib/shopify_cli/project.rb
|
412
416
|
- lib/shopify_cli/project_commands.rb
|
413
417
|
- lib/shopify_cli/project_type.rb
|
418
|
+
- lib/shopify_cli/reporting_configuration_controller.rb
|
414
419
|
- lib/shopify_cli/resolve_constant.rb
|
415
420
|
- lib/shopify_cli/resources.rb
|
416
421
|
- lib/shopify_cli/resources/env_file.rb
|
417
422
|
- lib/shopify_cli/result.rb
|
423
|
+
- lib/shopify_cli/services.rb
|
424
|
+
- lib/shopify_cli/services/base_service.rb
|
425
|
+
- lib/shopify_cli/services/reporting_service.rb
|
418
426
|
- lib/shopify_cli/shopifolk.rb
|
419
427
|
- lib/shopify_cli/sub_command.rb
|
420
428
|
- lib/shopify_cli/task.rb
|
@@ -451,6 +459,7 @@ files:
|
|
451
459
|
- shopify.fish
|
452
460
|
- shopify.sh
|
453
461
|
- utilities/docker.rb
|
462
|
+
- utilities/docker/container.rb
|
454
463
|
- utilities/utilities.rb
|
455
464
|
- vendor/deps/cli-kit/REVISION
|
456
465
|
- vendor/deps/cli-kit/lib/cli/kit.rb
|
@@ -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
|