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
         |