Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] P2 default fragment requirements


Daniel,

I suppose I don't follow still; that requirement seems like requiring that "2 + 2 = 4" and therefore should not
have any impact whatsoever.

Anyway, I suppose I can try to just remove it and see what breaks.

On 28.02.2014 12:31, Krzysztof Daniel wrote:
Vladimir,

I believe you're right that the information is redundant and wouldn't have to be specified there, but it was probably easier to generate it
redundant that to add a logic that would infer "default" requires from hostRequirements.


Since this logic is not there, by changing the format of P2 files you'd effectively break all older clients, and make it impossible to
update, so I'm afraid we have to live with redundant information.

Best regards,


On Fri, Feb 28, 2014 at 9:13 AM, Vladimir Prus <vladimir@xxxxxxxxxxxxxxxx <mailto:vladimir@xxxxxxxxxxxxxxxx>> wrote:


    Daniel,

    Could you clarify why parsers could break, and why so many updates are required? I don't necessary want to change anything;
    the problem is that I don't understand the semantics of current behaviour. Now, each installable unit has an extra
    IRequirement, contributed via this default fragment, which say:

         <requires size='1'>
             <required namespace='org.eclipse.__equinox.p2.eclipse.type' name='bundle' range='0.0.0' multiple='true' greedy='false'/>
         </requires>

    It looks a no-op requirement to me, as it will be easily satisfied no matter what. So when you say that
    removing such requirement can possibly break something, and be time-consuming, it means I don't really understand either
    this requirement, or P2 requirements in general, and I'd appreciate if you correct me.

    Thanks,



    On 28.02.2014 12:05, Krzysztof Daniel wrote:

        Vladimir,

        I'd expect information would be still complete. At the same time parsers could break.

        If you are willing to commit to do the work (update generator, parsers, verify it still works as expected, and support it
        afterwards) - go
        ahead, I will review changes.

        But there're bigger fish to fry in P2 (f.e. the speed of UI filtering dialog).



        On Fri, Feb 28, 2014 at 8:59 AM, Vladimir Prus <vladimir@xxxxxxxxxxxxxxxx <mailto:vladimir@xxxxxxxxxxxxxxxx>
        <mailto:vladimir@codesourcery.__com <mailto:vladimir@xxxxxxxxxxxxxxxx>>> wrote:


             Hi Daniel,

             thanks for the response! In this particular case, though, I don't see what will break if <requires> is simply removed from
             default fragment?

             Thanks,



             On 28.02.2014 11:53, Krzysztof Daniel wrote:

                 Vladimir,
                 thanks for your questions.

                 Regarding http://wiki.eclipse.org/____Equinox/p2/P2_Fragments <http://wiki.eclipse.org/__Equinox/p2/P2_Fragments>
        <http://wiki.eclipse.org/__Equinox/p2/P2_Fragments <http://wiki.eclipse.org/Equinox/p2/P2_Fragments>> - the name is

                 unfortunate. It's a secondary mechanism for assembling installation
                 from "Installation Fragments". I expect you have no interest in it.

                 I think that the main reason you have hostRequirements and requires are because hostRequirements are usually smaller than
        required.
                 hostRequirements says where to attach the fragment, and required means what the fragment needs.

                 They are identical because P2 will minimize the installation, hence the same bundle used in hostRequirements will be used
        for satisfying
                 requires. I think the protocol could be improved here, but there is almost no gain here, so I'd not expect changes.

                 Best regards,


                 On Thu, Feb 27, 2014 at 5:57 PM, Vladimir Prus <vladimir@xxxxxxxxxxxxxxxx <mailto:vladimir@xxxxxxxxxxxxxxxx>
        <mailto:vladimir@codesourcery.__com <mailto:vladimir@xxxxxxxxxxxxxxxx>>
                 <mailto:vladimir@codesourcery. <mailto:vladimir@codesourcery.>____com <mailto:vladimir@codesourcery.__com
        <mailto:vladimir@xxxxxxxxxxxxxxxx>>>> wrote:


                      Hi,

                      I'm looking at http://wiki.eclipse.org/______Equinox/p2/Setting_Start_______Levels
        <http://wiki.eclipse.org/____Equinox/p2/Setting_Start_____Levels>
                 <http://wiki.eclipse.org/____Equinox/p2/Setting_Start_____Levels
        <http://wiki.eclipse.org/__Equinox/p2/Setting_Start___Levels>> <http://wiki.eclipse.org/____Equinox/p2/Setting_Start_____Levels
        <http://wiki.eclipse.org/__Equinox/p2/Setting_Start___Levels>

                 <http://wiki.eclipse.org/__Equinox/p2/Setting_Start___Levels <http://wiki.eclipse.org/Equinox/p2/Setting_Start_Levels>>> and

                      it mentions that default fragment
                      is added to all IUs, and in particular it contains this:

                          <hostRequirements size='1'>
                             <required namespace='org.eclipse.______equinox.p2.eclipse.type' name='bundle' range='0.0.0' multiple='true'
        greedy='false'/>
                          </hostRequirements>

                          <requires size='1'>
                             <required namespace='org.eclipse.______equinox.p2.eclipse.type' name='bundle' range='0.0.0' multiple='true'
        greedy='false'/>


                          </requires>

                      What exactly is the role of the 'requires' element? It is rather board requirements already, and then this fragment
                      is added to every other IU, so effectively every bundle IU has a requirement that can be satisfied by any other
                      bundle IU, and the practical impact of this is rather unclear to me.

                      Unrelatedly, looking at http://wiki.eclipse.org/______Equinox/p2/P2_Fragments
        <http://wiki.eclipse.org/____Equinox/p2/P2_Fragments> <http://wiki.eclipse.org/____Equinox/p2/P2_Fragments
        <http://wiki.eclipse.org/__Equinox/p2/P2_Fragments>>

                 <http://wiki.eclipse.org/____Equinox/p2/P2_Fragments <http://wiki.eclipse.org/__Equinox/p2/P2_Fragments>
        <http://wiki.eclipse.org/__Equinox/p2/P2_Fragments <http://wiki.eclipse.org/Equinox/p2/P2_Fragments>>> is seems

                      that 'fragments' is used in completely
                      different way there? What is the current primary meaning?

                      Thanks in advance,

                      --
                      Vladimir Prus
                      CodeSourcery / Mentor Graphics
        http://www.mentor.com/______embedded-software/ <http://www.mentor.com/____embedded-software/>
        <http://www.mentor.com/____embedded-software/ <http://www.mentor.com/__embedded-software/>>
                 <http://www.mentor.com/____embedded-software/ <http://www.mentor.com/__embedded-software/>
        <http://www.mentor.com/__embedded-software/ <http://www.mentor.com/embedded-software/>>>
                      _____________________________________________________
                      p2-dev mailing list
        p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx> <mailto:p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>> <mailto:p2-dev@xxxxxxxxxxx
        <mailto:p2-dev@xxxxxxxxxxx> <mailto:p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>>>
        https://dev.eclipse.org/______mailman/listinfo/p2-dev <https://dev.eclipse.org/____mailman/listinfo/p2-dev>
        <https://dev.eclipse.org/____mailman/listinfo/p2-dev <https://dev.eclipse.org/__mailman/listinfo/p2-dev>>

                 <https://dev.eclipse.org/____mailman/listinfo/p2-dev <https://dev.eclipse.org/__mailman/listinfo/p2-dev>
        <https://dev.eclipse.org/__mailman/listinfo/p2-dev <https://dev.eclipse.org/mailman/listinfo/p2-dev>>>





                 --
                 Krzysztof Daniel
        https://twitter.com/kda


                 ___________________________________________________
                 p2-dev mailing list
        p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx> <mailto:p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>>
        https://dev.eclipse.org/____mailman/listinfo/p2-dev <https://dev.eclipse.org/__mailman/listinfo/p2-dev>
        <https://dev.eclipse.org/__mailman/listinfo/p2-dev <https://dev.eclipse.org/mailman/listinfo/p2-dev>>



             --
             Vladimir Prus
             CodeSourcery / Mentor Graphics
        http://www.mentor.com/____embedded-software/ <http://www.mentor.com/__embedded-software/>
        <http://www.mentor.com/__embedded-software/ <http://www.mentor.com/embedded-software/>>
             ___________________________________________________
             p2-dev mailing list
        p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx> <mailto:p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>>
        https://dev.eclipse.org/____mailman/listinfo/p2-dev <https://dev.eclipse.org/__mailman/listinfo/p2-dev>
        <https://dev.eclipse.org/__mailman/listinfo/p2-dev <https://dev.eclipse.org/mailman/listinfo/p2-dev>>




        --
        Krzysztof Daniel
        https://twitter.com/kda


        _________________________________________________
        p2-dev mailing list
        p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>
        https://dev.eclipse.org/__mailman/listinfo/p2-dev <https://dev.eclipse.org/mailman/listinfo/p2-dev>



    --
    Vladimir Prus
    CodeSourcery / Mentor Graphics
    http://www.mentor.com/__embedded-software/ <http://www.mentor.com/embedded-software/>
    _________________________________________________
    p2-dev mailing list
    p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>
    https://dev.eclipse.org/__mailman/listinfo/p2-dev <https://dev.eclipse.org/mailman/listinfo/p2-dev>




--
Krzysztof Daniel
https://twitter.com/kda


_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev



--
Vladimir Prus
CodeSourcery / Mentor Graphics
http://www.mentor.com/embedded-software/


Back to the top