Uploaded image for project: 'Product Roadmaps'
  1. Product Roadmaps
  2. MMF-1066

Turn Update Center into Marketplace



    • Type: MMF
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Labels:


      The context

      Read the context of MMF-951: "Rework the SonarQube licensing mechanism to match the new Pricing Model"

      The purpose of this MMF is to implement the "Discover, install and remove packages" part of MMF-951.

      The expected end-user experience

      As a reminder, here is the expected user-experience:

      As a user, I expect to find everything in the "Marketplace":

      • When I arrive on the page, on top of what we currently see, I immediately see 4 "big boxes" that:
        • Are named after the packages
        • Provide a short description of the purpose of the package
        • Give a link that will bring me to SonarSource website to get more details about the package
        • Have an appealing "Install" button
      • When I click on "Install", a modal box:
        • asks me for a license
        • explicitly explains me that once the license is set, the features will be downloaded and a restart of the server will be required to finalize the installation
        • offers me a button to ask for a license if I don't have one yet
          • This button will redirect me to a form on SonarSource website (passing the Server ID and sum of ncloc as parameters to pre-fill the form)
      • When I click on "Install", the download of features starts and once it's done, asks for restart
        • If the download fails (for instance because SQ does not have access to Internet), a direct link to a ZIP file is provided along with instructions on what to do (i.e. extract it in the plugins "install" folder and restart)
      • Once the restart is completed, all the new commercial features are correctly activated and everything works as expected
      • If I go back to the Marketplace, I expect the edition that I purchase:
        • to be ticked
        • to display an "Uninstall" button instead of the "Install" one

      Once I have a package installed and activated through a valid license:

      • I can update the plugins in the Update Center like I would do for any other plugin
      • I can upgrade to another package if I want to (I will follow the path described previously)
      • I can uninstall the package using a discreet "Uninstall" button that will automatically remove all the commercial plugins which were installed for this package
        • The set of plugins to uninstall are all the installed SonarSource commercial plugins

      Whenever I go to the "License" management page and I click on "Set a new license", I expect SonarQube to:

      • Open the modal window asking me for a new license
      • When I click on OK, verify that:
        • the license is not corrupted (already done)
        • the list of plugins referenced in this license key is in sync with the commercial ones I currently have (not more, not less)
          • If my install plugins perfectly match the ones referenced in the license, the modal closes and I get back to the license page
          • If not, the modal tells me that I need to update my installation to reflect the changes, and I have a "Update installation" button that I can click on
            • If I press escape to skip that step, this "Update installation" button must be highly visible on the license page
      • When I click on the "Update installation", I have the same behaviour as on the Marketplace:
        • I will see a banner with spinner icon while plugins are downloaded and a notification to restart when it's done
        • Or I will see the message to download manually with the relevant instructions


      • It's not possible to install SonarSource commercial plugins with the standard "install" mechanism of the Update Center
        • It's possible to find them if you search (for instance for "COBOL"), but no "Install" button is available and there's a message which says that such plugin is available only through the packages displayed at the top of the page
      • If SonarSource decides to give a tailored package for a given customer (for example Dev Pack + SonarCOBOL), it is intended that this will be done "manually":
        • The Sales person will send the license key along with a ZIP file containing the relevant plugins
        • The customer will have to unzip the archive in the "extensions/install" folder, restart the server and set the license

      Implementation of the solution

      This part will be developed in SonarQube itself, which means that even Community Edition users will see the "advertisement" for SonarSource packages inside the Update Center.

      Even though this will be developed during a 6.6 sprint, this UI should be available only starting with SonarQube 6.7.

      To offer us more flexibility, the definition of the package "boxes" will be retrieved by the browser from a JSON file located on a SonarSource server. This will be something like:

        "6.7": [
                      "key": "support-pack",
      		"name": "Support Pack",
      		"desc": "Get support from SonarSource on your SonarSource Community Edition.",
      		"more_link": "https:/redirect.sonarsource.com/editions/support-pack.html",
      		"request_license_link": "https:/redirect.sonarsource.com/editions/support-pack.html",
      		"download_link": "https://www.sonarsource.com/downloads/support-pack.zip"
                     "key": "developer-edition",
      		"name": "Developer Edition",
      		"desc": "Offer everything to your development team to collaborate efficiently. Includes branche support, developer notifications and modern languages.",
      		"more_link": "https:/redirect.sonarsource.com/editions/developer-edition.html",
      		"request_license_link": "https:/redirect.sonarsource.com/editions/developer-edition.html",
      		"download_link": "https://www.sonarsource.com/downloads/developer-edition.zip"
                      "key": "enterprise-edition",
      		"name": "Enterprise Edition",
      		"desc": "Go enterprise and maximize return on investment. Includes Developer Edition plus portfolio management, import/export of projects, parallel report processing and legacy languages.",
      		"more_link": "https:/redirect.sonarsource.com/editions/enterprise-edition.html",
      		"request_license_link": "https:/redirect.sonarsource.com/editions/enterprise-edition.html",
      		"download_link": "https://www.sonarsource.com/downloads/enterprise-edition.zip"
                      "key": "datacenter-edition",
      		"name": "Data Center Edition",
      		"desc": "Deploy SonarQube to thousands of developers and projects. Includes Enterprise Edition plus high availability.",
      		"more_link": "https:/redirect.sonarsource.com/editions/datacenter-edition.html",
      		"request_license_link": "https:/redirect.sonarsource.com/editions/datacenter-edition.html",
      		"download_link": "https://www.sonarsource.com/downloads/datacenter-edition.zip"

      More technical details in the first "private" comment of this MMF.

      Current design solution

      In Administration, we no longer have a "System" tab containing "System Info" and "Update Center". We have a System tab (no dropdown) containing what was the System Info page, and a new Marketplace tab.

      The System page will now show an info banner whenever a new version of SonarQube is available (because there's no Update Center anymore)

      When the user is on a non LTS version:

      When the user is on a LTS version:

      The Marketplace tab is where you'll find plugins and our Editions packs.

      When clicking on "Install" on Developer Edition:

      The license page will show all useful informations about his current plan

      License can be updated by clicking on "Set new license". A simple format check will always be performed (nb this is already the case when entering license for the first time)

      Coming back to the Marketplace page, it should look like this

      Errors and other scenarios

      When the Editions blocks cannot be displayed because of network issues

      When the user can't install the Pack because of internet issues

      When the user tries to set a new license that doesn't match her current installation/edition


        1. MMF_951_V1_03_Marketplace_01.png
          161 kB
        2. MMF_951_V1_09_License_02.png
          87 kB
        3. MMF_951_V1_10_License_03.png
          107 kB
        4. MMF_951_V1_11_License_04.png
          109 kB
        5. MMF_951_V1_12_Analysis_Failed_02.png
          94 kB
        6. MMF_951_V1_12_Marketplace_06.png
          172 kB
        7. MMF_951_V1_13_Analysis_Failed_01.png
          158 kB
        8. MMF_951_V1_13_Analysis_Failed_04.png
          90 kB
        9. MMF_951_V2_01_System_Page_01.png
          85 kB
        10. MMF_951_V2_02_System_Page_02.png
          103 kB
        11. MMF_951_V2_03_System_Page_03.png
          132 kB
        12. MMF_951_V2_04_Marketplace_02.png
          152 kB
        13. MMF_951_V2_04_System_Page_04.png
          134 kB
        14. MMF_951_V2_05_Marketplace_03.png
          165 kB
        15. MMF_951_V2_06_Marketplace_04.png
          165 kB
        16. MMF_951_V2_07_Marketplace_05.png
          160 kB
        17. MMF_951_V2_08_Marketplace_InternetIssues.png
          173 kB
        18. MMF_951_V2_12_License_05.png
          115 kB
        19. MMF_951_V2_13_License_06.png
          86 kB
        20. MMF_951_V2_14_License_07.png
          86 kB

          Issue Links



              christophe.levis Christophe Levis
              freddy.mallet Freddy Mallet (Inactive)
              0 Vote for this issue
              6 Start watching this issue