detail

in lib/gdk/diagnostic/tool_version_manager.rb [24:69]


      def detail(context = nil)
        return if success?

        messages = []

        messages << <<~MESSAGE if broken_asdf_version?
          ERROR: Your installed version of asdf (`
          Please downgrade to `v0.15.0` or switch to `mise`.
        MESSAGE

        if using_asdf?
          messages << <<~MESSAGE
            We're dropping support for asdf in GDK.

            You can still use asdf if you need to, for example outside of GDK. But it's no longer supported in GDK and won't be maintained going forward.

            Mise provides better supply chain security while running faster and avoiding the dependency installation problems that we had to manually fix with asdf.
          MESSAGE

          unless context == :update
            messages << <<~MESSAGE
              To migrate, run:
                gdk update
            MESSAGE
          end

          return messages.join("\n")
        end

        if mise_update_required?
          messages << <<~MESSAGE
            WARNING: Your installed version of mise (#{current_mise_version}) is out of date.
            The latest available version is #{mise_latest_version}.
          MESSAGE

          if mise_update_command
            messages << <<~MESSAGE
              To update to the latest version, run:
                `#{mise_update_command}`
            MESSAGE
          end
        end

        messages.join("\n")
      end