Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-2738

Review workflow for installing Quickload Saver App using App Store

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      0.5
    • Sprint:
      Winter 1 Dec 28 - Jan 8, Winter 2 Jan 11 - Jan 22, Winter 3 Jan 25 - Feb 5, Winter 4 Feb 8 - Feb 19

      Description

      Noor has released a new version of the Quickload App, which only works with IGB version 9.1.8.

      Submit the App to one of the development (testing) appstore.

      If that succeeds, next test our versioning scheme that is supposed to ensure that apps cannot be installed into incompatible versions of IGB. To develop the quickload app, we needed to modify IGB itself, adding new features to the API. As a result, the Quickload App can only function properly when installed in the latest IGB version 9.1.8.

      To test how this is working, try to install the App from the test appstore into:

      • IGB 9.1.6 (the released version)
      • IGB 9.1.8 (the development version - get it directly from the team's bitbucket repository Downloads section)

      Please make a note of any usability problems or weirdness you observe.

        Attachments

        1. App_Repositories.png
          App_Repositories.png
          242 kB
        2. Appstore_Another_App.png
          Appstore_Another_App.png
          591 kB
        3. Appstore_Quickload_App.png
          Appstore_Quickload_App.png
          529 kB
        4. IGB_Screenshot.png
          IGB_Screenshot.png
          244 kB
        5. Manifest.PNG
          Manifest.PNG
          63 kB

          Issue Links

            Activity

            Hide
            inaylor Irvin Naylor (Inactive) added a comment -

            [~aloraine] - I see now. I was thinking about that as well, it seemed as if the pom.xml and the manifest file weren't on the same page regarding what versions are required. That might have been the reason why the app store allowed it since I noticed it also said that it was compatible with 9.1.x and 10, just like in the manifest.

            I'm currently testing in 9.1.8 to see what happens when the app runs (since before I just tested to see if it showed up in the actual download manager.) but I'll poke around and see what else I can find

            Show
            inaylor Irvin Naylor (Inactive) added a comment - [~aloraine] - I see now. I was thinking about that as well, it seemed as if the pom.xml and the manifest file weren't on the same page regarding what versions are required. That might have been the reason why the app store allowed it since I noticed it also said that it was compatible with 9.1.x and 10, just like in the manifest. I'm currently testing in 9.1.8 to see what happens when the app runs (since before I just tested to see if it showed up in the actual download manager.) but I'll poke around and see what else I can find
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Looks like we need to modify the pom.xml as with here: https://bnd.bndtools.org/chapters/170-versioning.html

            FAQ: Why does bnd use only major and minor version component in import-package headers?
            
            The micro is left out because it generates a lot of unnecessary releases, this is similar to the maven release process. If you connect everything 100%, you cannot move anything unless all its dependencies are moved at the same time. We actually tried in the OSGi build to use micro version changes for default methods in Java 8 but found that it just creates an enormous ripple through effect in the build. Not depending on the micro version is a lubricant that does not kill any bundle out there that depends on you.
            
            This should not be a problem because a micro version is a deployment issue since the semantic versioning should be used for APIs and a micro change is not visible in the API.
            
            That said, this is bnd so obviously you can override it. You can override the default version policy is:
            
            -provider-policy = ${range;[==,=+)}
            -consumer-policy = ${range;[==,+)}
            Just set ‘===’ instead of ‘==’ for the floor version in your pom.xml in the section and you should be ok.
            
            <configuration>
            	<_provider-policy>${range;[===,=+)}</_provider-policy>
            	<_consumer-policy>${range;[===,+)}</_consumer-policy>
            </configuration>
            
            Show
            ann.loraine Ann Loraine added a comment - - edited Looks like we need to modify the pom.xml as with here: https://bnd.bndtools.org/chapters/170-versioning.html FAQ: Why does bnd use only major and minor version component in import - package headers? The micro is left out because it generates a lot of unnecessary releases, this is similar to the maven release process. If you connect everything 100%, you cannot move anything unless all its dependencies are moved at the same time. We actually tried in the OSGi build to use micro version changes for default methods in Java 8 but found that it just creates an enormous ripple through effect in the build. Not depending on the micro version is a lubricant that does not kill any bundle out there that depends on you. This should not be a problem because a micro version is a deployment issue since the semantic versioning should be used for APIs and a micro change is not visible in the API. That said, this is bnd so obviously you can override it. You can override the default version policy is: -provider-policy = ${range;[==,=+)} -consumer-policy = ${range;[==,+)} Just set ‘===’ instead of ‘==’ for the floor version in your pom.xml in the section and you should be ok. <configuration> <_provider-policy>${range;[===,=+)}</_provider-policy> <_consumer-policy>${range;[===,+)}</_consumer-policy> </configuration>
            Hide
            ann.loraine Ann Loraine added a comment -

            It looks to me like we can use "configuration" tags above to force the maven bundle plugin to specify micro versions.
            I'm not sure it will work, but I'd like to give it a try, so I made a new ticket for it.
            Do you want to give it a try?
            attn: Irvin Naylor

            Show
            ann.loraine Ann Loraine added a comment - It looks to me like we can use "configuration" tags above to force the maven bundle plugin to specify micro versions. I'm not sure it will work, but I'd like to give it a try, so I made a new ticket for it. Do you want to give it a try? attn: Irvin Naylor
            Hide
            inaylor Irvin Naylor (Inactive) added a comment -

            [~aloraine] I see, that makes sense! And sure, I could give it a shot.

            Show
            inaylor Irvin Naylor (Inactive) added a comment - [~aloraine] I see, that makes sense! And sure, I could give it a shot.
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Before you get started, I need to make a LoraineLab fork of Noor's repository. Once I do that, you should "fork" from that fork, since Noor is no longer available for merging pull requests into her code. (She is now working at Amazon )

            Show
            ann.loraine Ann Loraine added a comment - - edited Before you get started, I need to make a LoraineLab fork of Noor's repository. Once I do that, you should "fork" from that fork, since Noor is no longer available for merging pull requests into her code. (She is now working at Amazon )

              People

              • Assignee:
                Unassigned
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: