So guys, I think it’s reasonable to find a consensus on this thread.

> I think this rule fits fine within the general frame of Roman's proposal:
> 
> - if the base distro already has a package that satisfies OpenStack
> global requirements (or Fuel requirements), the distro package is
> used;
> - else, OSCI mirror should contain the maximum version of a
> requirement that matches its version specification.

Yup, that also fits well. The only note I’d like to make here is that OS 
services are tested against the latest version of requirements. So perhaps we 
want to test them against the versions, supplied in distos, if those 
requirements are used.


- romcheg

> 19 бер. 2015 о 19:14 Dmitry Borodaenko <dborodae...@mirantis.com> написав(ла):
> 
> Maciej,
> 
> Maintaining multiple versions of the same package concurrently and
> tracking their compatibility with the many different components of
> OpenStack and Fuel creates additional work on many different levels,
> from spec branch management to repo management to validation to
> container building and so on. Unified global requirements help avoid
> such work where it isn't necessary (and when you look close enough
> into each specific case you're likely to find that it's never really
> necessary).
> 
> -DmitryB
> 
> On Thu, Mar 19, 2015 at 4:04 AM, Maciej Kwiek <mkw...@mirantis.com> wrote:
>> I guess it would depend on how many docker containers are running on master
>> node and if we are able to pull off such stunt :).
>> 
>> I am not familiar with the amount of work needed to do sth like that, so the
>> proposition may be silly. Just let me know if it is.
>> 
>> On Thu, Mar 19, 2015 at 11:51 AM, Dmitry Burmistrov
>> <dburmist...@mirantis.com> wrote:
>>> 
>>> Folks,
>>> 
>>>>>> Correct me if I am wrong, but isn't it what we have containers on
>>>>>> master node for?
>>>>>> On the master node itself conflicts won’t happen because the
>>>>>> components are run in their containers.
>>> 
>>> Do you propose to use _separate_ package repository for each docker
>>> container? (It means separate gerrit project for each package of each
>>> container, including openstack projects)
>>> 
>>> On Thu, Mar 19, 2015 at 1:16 PM, Roman Prykhodchenko <m...@romcheg.me>
>>> wrote:
>>>> Folks,
>>>> 
>>>>> I assume you meant: "If a requirement that previously was only in Fuel
>>>>> Requirements is merged to Global Requirements, it should be removed
>>>>> from *Fuel* Requirements».
>>>> 
>>>> Exactly.
>>>> 
>>>>> I'm not sure it's good idea.
>>>>> We should stay so close to upstream distro as we can. It should be
>>>>> very important reason to update package against it's upstream distro
>>>> 
>>>> 
>>>> The issue is the following: OpenStack’s components are tested against
>>>> those versions of dependencies, that are specified in their requirements.
>>>> IIRC those requirements are set up by pip so CI nodes contain latest
>>>> versions of python packages that match their specs.
>>>> 
>>>> The question is whether it’s required to ship OpenStack services with
>>>> packages from a distro or with packages, that are used for testing.
>>>> 
>>>>> Splitting of repositories doesn't help to solve python packages
>>>>> conflicts because master node uses a number of openstack components.
>>>> 
>>>> On the master node itself conflicts won’t happen because the components
>>>> are run in their containers.
>>>> 
>>>> 
>>>> - romcheg
>>>> 
>>>> 
>>>>> 19 бер. 2015 о 10:47 Dmitry Burmistrov <dburmist...@mirantis.com>
>>>>> написав(ла):
>>>>> 
>>>>> Roman, all
>>>>> 
>>>>>>>>       - OSCI mirror should contain the maximum version of a
>>>>>>>> requirement that matches its version specification.
>>>>> I'm not sure it's good idea.
>>>>> We should stay so close to upstream distro as we can. It should be
>>>>> very important reason to update package against it's upstream distro
>>>>> version.
>>>>> If we update some package, we should maintain it too. Tracking bugs,
>>>>> CVEs and so on. The more packages, the more efforts to support it.
>>>>> 
>>>>>>>> - Set up CI jobs to notify OSCI team if either Global Requirements
>>>>>>>> or
>>>>>>>> Fuel Requirements are changed.
>>>>>>>> - Set up requirements proposal jobs that will automatically propose
>>>>>>>> changes to all fuel projects once either of requirements lists was
>>>>>>>> changed
>>>>> Need to be discussed and investigated.
>>>>> 
>>>>> Sebastian, Dmitry,
>>>>> 
>>>>> 
>>>>>>>> There are some plans (unfortunately I do not know details, so maybe
>>>>>>>> someone from OSCI could tell more) to split those repositories
>>>>> Splitting of repositories doesn't help to solve python packages
>>>>> conflicts because master node uses a number of openstack components.
>>>>> Anyway it should be done for 7.0 milestone in order to separatre
>>>>> master-node distro from environment one. (e.g. if we going to move
>>>>> master-node to debian)
>>>>> 
>>>>> 
>>>>> 
>>>>> On Thu, Mar 19, 2015 at 12:01 AM, Dmitry Borodaenko
>>>>> <dborodae...@mirantis.com> wrote:
>>>>>> Roman,
>>>>>> 
>>>>>> I like this proposal very much, thanks for the idea and for putting
>>>>>> together a straightforward process.
>>>>>> 
>>>>>> I assume you meant: "If a requirement that previously was only in Fuel
>>>>>> Requirements is merged to Global Requirements, it should be removed
>>>>>> from *Fuel* Requirements".
>>>>>> 
>>>>>> Sebastian,
>>>>>> 
>>>>>> We have found ways to resolve the conflicts between clvm and docker,
>>>>>> and between ruby versions 1.8 and 2.1, without introducing a separate
>>>>>> package repo for Fuel master. I've updated the blueprint to make note
>>>>>> of that:
>>>>>> 
>>>>>> https://blueprints.launchpad.net/fuel/+spec/separate-repo-for-master-node
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Wed, Mar 18, 2015 at 9:25 AM, Sebastian Kalinowski
>>>>>> <skalinow...@mirantis.com> wrote:
>>>>>>> I assume that you considered a situation when we have a common
>>>>>>> repository
>>>>>>> with RPMs for Fuel master and for nodes.
>>>>>>> There are some plans (unfortunately I do not know details, so maybe
>>>>>>> someone
>>>>>>> from OSCI could tell more) to split those repositories. How this
>>>>>>> workflow
>>>>>>> will work with those separated repos? Will we still need it?
>>>>>>> 
>>>>>>> Thanks!
>>>>>>> Sebastian
>>>>>>> 
>>>>>>> 2015-03-18 11:04 GMT+01:00 Roman Prykhodchenko <m...@romcheg.me>:
>>>>>>>> 
>>>>>>>> Hi folks,
>>>>>>>> 
>>>>>>>> before you say «romcheg, go away and never come back again!», please
>>>>>>>> read
>>>>>>>> the story that caused me to propose this and the proposed solution.
>>>>>>>> Perhaps
>>>>>>>> it makes you reconsider :)
>>>>>>>> 
>>>>>>>> As you know for different reasons, among which are being able to set
>>>>>>>> up
>>>>>>>> everything online and bringing up-to-date packages, we maintain an
>>>>>>>> OSCI
>>>>>>>> repository which is used for building ISOs and deploying OpenStack
>>>>>>>> services.
>>>>>>>> Managing that repo is a pretty hard job. Thus a dedicated group of
>>>>>>>> people is
>>>>>>>> devoted to perform that duty, they are always busy because of a lot
>>>>>>>> of
>>>>>>>> responsibilities they have.
>>>>>>>> 
>>>>>>>> At the same time Fuel’s developers are pretty energetic and always
>>>>>>>> want to
>>>>>>>> add new features to Fuel. For that they love to use different
>>>>>>>> libraries,
>>>>>>>> many of which aren’t in the OSCI mirror yet. So they ask OSCI guys
>>>>>>>> to add
>>>>>>>> more and more of those and I guess that’s pretty fine except one
>>>>>>>> little
>>>>>>>> thing — sometimes those libraries conflict with ones, required by
>>>>>>>> OpenStack
>>>>>>>> services.
>>>>>>>> 
>>>>>>>> To prevent that from happening someone has to check every patch
>>>>>>>> against
>>>>>>>> the OSCI repo and OpenStack’s global requirements, to detect whether
>>>>>>>> a
>>>>>>>> version bump or adding a new library is required an whether it can
>>>>>>>> be
>>>>>>>> performed. As you can guess, there’s too much of a human factor so
>>>>>>>> statistically no one does that until problems appear. Moreover,
>>>>>>>> theres’
>>>>>>>> nothing but a «it’s not compatible with OpenStack» yelling from OSCI
>>>>>>>> team
>>>>>>>> that stops developers to change dependencies in Fuel.
>>>>>>>> 
>>>>>>>> All the stuff described above causes sometimes tremendous time
>>>>>>>> losses and
>>>>>>>> is very problem-prone.
>>>>>>>> 
>>>>>>>> I’d like to propose to make everyone’s life easier by following
>>>>>>>> these
>>>>>>>> steps:
>>>>>>>> 
>>>>>>>> - Create a new project called Fuel Requirements, all changes to it
>>>>>>>> should
>>>>>>>> go through a standard review procedure
>>>>>>>> - We strict ourselves to use only packages from both Fuel
>>>>>>>> Requirements
>>>>>>>> and Global Requirements for the version of OpenStack, Fuel is
>>>>>>>> installing in
>>>>>>>> the following manner:
>>>>>>>>   - If a requirement is in Global Requirements, the version spec in
>>>>>>>> all
>>>>>>>> Fuel’s components should be exactly like that.
>>>>>>>>       - OSCI mirror should contain the maximum version of a
>>>>>>>> requirement
>>>>>>>> that matches its version specification.
>>>>>>>>   - If a requirement is not in the global requirements list, then
>>>>>>>> Fuel
>>>>>>>> Requirements list should be used to check whether all Fuel’s
>>>>>>>> components
>>>>>>>> require the same version of a library/package.
>>>>>>>>       - OSCI mirror should contain the maximum version of a
>>>>>>>> requirement
>>>>>>>> that matches its version specification.
>>>>>>>>   - If a requirement that previously was only in Fuel Requirements
>>>>>>>> is
>>>>>>>> merged to Global Requirements, it should be removed from Global
>>>>>>>> Requirements
>>>>>>>> - Set up CI jobs in both OpenStack CI and FuelCI to check all
>>>>>>>> patches
>>>>>>>> against both Global Requirements and Fuel Requirements and block, if
>>>>>>>> either
>>>>>>>> of checks doesn’t pass
>>>>>>>> - Set up CI jobs to notify OSCI team if either Global Requirements
>>>>>>>> or
>>>>>>>> Fuel Requirements are changed.
>>>>>>>> - Set up requirements proposal jobs that will automatically propose
>>>>>>>> changes to all fuel projects once either of requirements lists was
>>>>>>>> changed,
>>>>>>>> just like it’s done for OpenStack projects.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> These steps may look terribly hard, but most of the job is already
>>>>>>>> done in
>>>>>>>> OpenStack projects and therefore it can be reused for Fuel.
>>>>>>>> Looking forward for your feedback folks!
>>>>>>>> 
>>>>>>>> 
>>>>>>>> - romcheg
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> __________________________________________________________________________
>>>>>>>> OpenStack Development Mailing List (not for usage questions)
>>>>>>>> Unsubscribe:
>>>>>>>> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
>>>>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> __________________________________________________________________________
>>>>>>> OpenStack Development Mailing List (not for usage questions)
>>>>>>> Unsubscribe:
>>>>>>> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
>>>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Dmitry Borodaenko
>>>>>> 
>>>>>> 
>>>>>> __________________________________________________________________________
>>>>>> OpenStack Development Mailing List (not for usage questions)
>>>>>> Unsubscribe:
>>>>>> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
>>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>> 
>>>>> 
>>>>> __________________________________________________________________________
>>>>> OpenStack Development Mailing List (not for usage questions)
>>>>> Unsubscribe:
>>>>> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>> 
>>>> 
>>>> 
>>>> __________________________________________________________________________
>>>> OpenStack Development Mailing List (not for usage questions)
>>>> Unsubscribe:
>>>> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>> 
>>> 
>>> __________________________________________________________________________
>>> OpenStack Development Mailing List (not for usage questions)
>>> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> 
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
> 
> 
> 
> --
> Dmitry Borodaenko
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to